Right to Work Check API
gov.uk has no official API for right-to-work checks. If your ATS, HR platform, or staffing pipeline needs to verify a candidate's share code programmatically instead of by hand, here is what that actually takes.
There is no official gov.uk API
gov.uk offers exactly one route to check a right-to-work share code: a human filling in the three-page form at gov.uk/view-right-to-work, one applicant at a time. There is no REST endpoint, no webhook, no bulk upload.
Teams that need the result inside their own software, such as an ATS, an onboarding flow, or a compliance queue, are left with two options: have someone do it by hand and re-key the result, or automate the form themselves.
What automating it actually requires
- Driving a real browser session through gov.uk's form, share code plus date of birth. There is no request you can POST straight to gov.uk.
- Parsing HTML that gov.uk can change without notice, not a stable JSON contract.
- Producing evidence you can keep on file: the outcome, any conditions or restrictions, an expiry date for time-limited permissions, the applicant's photo, and the gov.uk-issued reference number.
- Doing all of the above without leaving personal data sitting in your systems longer than you need it.
See the full field-by-field response shape in the docs.
How teams handle this today
| Approach | What it looks like | Trade-off |
|---|---|---|
| Manual, by hand | Someone opens gov.uk, types the code and date of birth, saves the result | Does not scale past a handful of checks a week, and leaves no structured record |
| Build your own scraper | An in-house script drives gov.uk's form | Breaks silently when gov.uk changes markup, and you own the PII handling and the uptime |
| A full identity-verification platform | An end-to-end identity provider covering document checks, right to work, and right to rent through its own portal | Heavier to adopt if a share-code check is the only thing you need |
| Check Share Code API | One POST /api/check call, sandbox-first | Purpose-built for the share-code check specifically, so you keep the rest of your stack |
One API call
Send the share code, the applicant's date of birth, and your company name. Get back structured JSON.
const res = await fetch('https://checksharecode.co.uk/api/check', {
method: 'POST',
headers: {
'content-type': 'application/json',
authorization: 'Bearer rtw_test_...',
},
body: JSON.stringify({
share_code: 'AB1CD2EF3',
date_of_birth: '1990-01-01',
company_name: 'Acme Ltd',
}),
});
const data = await res.json();
// { outcome: 'ACCEPTED', name: 'JANE EXAMPLE DOE', conditions: [], reference: 'WE-EXAMPLE-12', ... }Sandbox first
rtw_test_… keys return deterministic sandbox fixtures for every outcome (accepted, rejected, not found, date-of-birth mismatch), so you can build and test the integration without touching gov.uk or waiting on a real applicant. Flip to a rtw_live_… key when you are ready.
Walk through it in the Node.js quickstart or read how to handle errors and retries.
Who this is for
- Recruitment and ATS platforms running onboarding checks at volume
- HR and onboarding tools that need the result inside the candidate record
- Gig and marketplace platforms verifying workers before they go live
- Staffing agencies checking on behalf of multiple end-clients
- Compliance teams that need an audit trail, not a screenshot
Get started
The free tier covers 10 checks a month with no card required. See pricing for paid tiers, or read the full API docs and sign up to get a key.