Immigration status
POST https://checksharecode.co.uk/api/check/immigration-status checks a person's UK immigration status on gov.uk, for a bank, lender, university, council or anyone else who needs it. Everything you send to this endpoint is here, and only that. A live check usually takes 15 to 40 seconds, so set your timeout to at least 60 seconds, or use the async endpoint.
What you send
rtw_test_… keys return sandbox data. rtw_live_… keys run a real check.Bearer rtw_live_…AB1CD2EF31990-01-01Example Bank, Leeds branchAccount opening officerdriving_licence, student_loan, education_or_training, health_insurance_card, personal_finance, homelessness_or_council_housing, travel, other. gov.uk records its own words for it, which come back in purpose.personal_financepurpose is other, and refused otherwise.Eligibility for a hardship grantgov.uk shows a status rather than a yes or no, so outcome is always ACCEPTED and the answer is in status, valid_until, activities and restrictions; see the fields. Don’t send checker_type: it is for right to rent, and is refused here with 400 INVALID_INPUT. You don’t need check either. If you send it, it must be immigration_status.
Save the photo and PDF if you need a record: we keep a copy of the check for up to 7 days only to investigate problems, then delete it.
curl https://checksharecode.co.uk/api/check/immigration-status \
-H "authorization: Bearer $CHECKSHARECODE_API_KEY" \
-H "content-type: application/json" \
-d '{
"share_code": "AB1CD2EF3",
"date_of_birth": "1990-01-01",
"company_name": "Example Bank, Leeds branch",
"job_title": "Account opening officer",
"purpose": "personal_finance"
}'{
"outcome": "ACCEPTED",
"title": "Immigration status",
"name": "JANE EXAMPLE DOE",
"date_of_birth": "1990-01-01",
"nationality": "CAN",
"status": "Skilled Worker",
"valid_from": "2024-01-01",
"valid_until": "2027-01-01",
"activities": [
"live in the UK until 1 January 2027",
"study, subject to Academic Technology Approved Scheme (ATAS) conditions",
"travel in and out of the country"
],
"restrictions": ["They cannot access public funds."],
"reference": "SC-EXAMPLE-12",
"company_name": "Example Bank, Leeds branch",
"job_title": "Account opening officer",
"purpose": "Personal finance (including bank and building society accounts, loans, credit cards and mortgages)",
"check_date": "2026-10-02",
"share_code": "AB1CD2EF3",
"photo_data_url": "data:image/jpeg;base64,/9j/4AAQ…",
"pdf_data_url": "data:application/pdf;base64,JVBERi0…",
"checked_at": "2026-10-02T10:14:03.000Z"
}Try it
The same for every check
These are written once, for this endpoint, right to work and right to rent alike.