VerifyEvisa
POST/verify/evisa
Verify a person's UK eVisa using their Home Office share code.
This endpoint allows you to verify a person's immigration status, right to work, or right to rent eVisa
by providing their share code and date of birth. The share code is obtained by
the individual from the UK Home Office online service.
Supported verification types:
ImmigrationStatus- Check a person's immigration status (e.g., Settled, Skilled Worker, Youth Mobility Scheme)RightToWork- Check a person's right to work in the UKRightToRent- Check a person's right to rent property in the UK
Share code format:
Each share code begins with a letter that identifies its type. Submitting a code whose prefix does not
match the requested sub_type returns HTTP 400 with a payload.share_code error detail.
| sub_type | Expected prefix |
|---|---|
ImmigrationStatus | S |
RightToWork | W |
RightToRent | R |
Request behaviour: This is a synchronous endpoint. It can take up to 20 seconds.
Response summary:
| HTTP Status | Meaning | Action |
|---|---|---|
200 | Verification completed | Check the outcome field (pass, fail, or inconclusive) |
422 | Share code locked out by GOV.UK | Retry with a new share code |
503 | Service temporarily unavailable | Retry with exponential backoff |
Billing:
An API call is billable when the eVisa was found on GOV.UK, regardless of whether the verification
outcome is pass, fail, or inconclusive. If the share_code or date_of_birth is invalid and no eVisa can be
retrieved, the response will have billable: false and you will not be charged.
Error responses (HTTP 422, HTTP 503) are also not billable and return an Error response body.
Artefacts: On a successful response, artefacts are returned inline with pre-signed download URLs. You have 30 minutes to download them before the URLs expire.
Sandbox testing: Use these share codes in sandbox mode to test different outcomes:
Sandbox codes are exempt from the prefix check — they work with any
sub_type.
PASS12345- Returns a successful verification with "Pass" outcomeFAIL12345- Returns a failed verification (e.g. expired status)INC123456- Returns an inconclusive verification (unrecognised indefinite immigration status)ERROR1234- Returns an error responseBADCODE12- Returns a non-billable failed verification (e.g. invalid share code)WRONGDOB1- Returns a non-billable failed verification (e.g. wrong date of birth) Response fields by outcome:pass: all fields for the sub-type will be populated.fail:extracted_detailsmay be partially populated or empty depending on which validation step failed.inconclusive: all identity fields are populated but date-based validations could not be performed.
Inconclusive outcome (ImmigrationStatus only):
Some immigration statuses are indefinite (i.e. they have no expiry date or start date on GOV.UK) but are not yet on our recognised list. In this case the eVisa is successfully retrieved and all identity details are returned, but the date validations (evisa_started, evisa_not_expired) cannot be performed. The response will have:
outcome: "inconclusive"evisa_startedandevisa_not_expiredboth withstatus: "inconclusive"andfailed_reasons: ["UNRECOGNISED_INDEFINITE_STATUS"]expiration_date: nullandvalid_from: nullinextracted_details
eVisa conditions:
This feature is experimental and only available for
RightToWorkeVisas. Theevisa_conditionsobject (within theextracted_detailsobject) contains certain employment conditions extracted verbatim from the eVisa text ornullif that condition could not be extracted from the eVisa.
Always check extraction_success before using the object:
true: conditions were successfully extracted — each non-null value is a verbatim quote from the eVisafalse: extraction could not be performed — manually review the conditions on the eVisa
Available fields:
-
max_weekly_hours(string | null): verbatim phrase stating a limit on weekly working hours, ornullif uncapped. Covers both primary job caps (e.g. student term-time limit) and additional part-time caps (e.g. sponsored workers). -
no_self_employment(string | null): verbatim phrase prohibiting running a business or being self-employed, ornullif no such prohibition is stated.
Request
Responses
- 200
- 400
- 401
- 403
- 422
- 503
Verification completed
Bad request - invalid payload or share code format
Unauthorised
Trial expired or feature not available on your plan
Unprocessable entity - share code has been locked out by GOV.UK
Service temporarily unavailable