# Check UK share codes and driving licences from your own software

> Four checks, an endpoint each. Send a share code and date of birth to `POST /v1/check/right-to-work`, `POST /v1/check/right-to-rent` or `POST /v1/check/immigration-status` and get gov.uk's answer back as JSON: the outcome or status, dates, conditions, the person's photo and the gov.uk PDF. Send a licence number and the driver's check code to `POST /v1/check/driving-licence` and get DVLA's record: status, points, the vehicles they can drive and DVLA's PDF.

Base URL: `https://api.checksharecode.co.uk` · Auth: `authorization: Bearer <key>` · Web version: https://checksharecode.co.uk/docs · Sign up: https://checksharecode.co.uk/signup?ref=md

## Four checks, an endpoint each

### Right to work

Employers, staffing and HR platforms. Check a candidate can work in the UK before their first day.

- You send: `share_code`, `date_of_birth`, `company_name`
- Code from: [gov.uk/prove-right-to-work](https://www.gov.uk/prove-right-to-work)
- Check again: When their permission ends
- Endpoint: `POST https://api.checksharecode.co.uk/v1/check/right-to-work`
- [Right to work reference](https://checksharecode.co.uk/docs/api/right-to-work.md)

### Right to rent

Landlords and letting agents in England. Check a tenant can rent in England before the tenancy starts.

- You send: `share_code`, `date_of_birth`, `checker_name` (landlord or company), `checker_type`
- Code from: [gov.uk/prove-right-to-rent](https://www.gov.uk/prove-right-to-rent)
- Check again: The later of when their permission ends and one year after this check
- Endpoint: `POST https://api.checksharecode.co.uk/v1/check/right-to-rent`
- [Right to rent reference](https://checksharecode.co.uk/docs/api/right-to-rent.md)

### Immigration status

Banks, lenders, universities, councils and others. Check a person’s UK immigration status, for an account, a loan, a course, housing or a licence.

- You send: `share_code`, `date_of_birth`, `company_name`, `job_title`, `purpose`
- Code from: [gov.uk/view-prove-immigration-status](https://www.gov.uk/view-prove-immigration-status)
- Check again: When their permission ends, `valid_until`. `null` when there is no limit
- Endpoint: `POST https://api.checksharecode.co.uk/v1/check/immigration-status`
- [Immigration status reference](https://checksharecode.co.uk/docs/api/immigration-status.md)

### Driving licence

Employers, fleets, hire firms and anyone who lets people drive. Check a driver’s licence before they drive for you: status, points and the vehicles they can drive.

- You send: `licence_number`, `check_code`
- Code from: [gov.uk/view-driving-licence](https://www.gov.uk/view-driving-licence)
- Check again: With a new code from the driver: a code works once. `flags` warn 90 days before the licence or a category ends
- Endpoint: `POST https://api.checksharecode.co.uk/v1/check/driving-licence`
- [Driving licence reference](https://checksharecode.co.uk/docs/api/driving-licence.md)

Right to work: POST /v1/check/right-to-work:

```json
{
  "share_code": "AB1CD2EF3",
  "date_of_birth": "1990-01-01",
  "company_name": "Acme Ltd"
}
```

Driving licence: POST /v1/check/driving-licence:

```json
{
  "licence_number": "MORGA753116SM9IJ",
  "check_code": "Hb Rh fp 7g"
}
```

Right to rent: POST /v1/check/right-to-rent:

```json
{
  "share_code": "AB1CD2EF3",
  "date_of_birth": "1990-01-01",
  "checker_name": "Acme Property Ltd",
  "checker_type": "landlord"
}
```

Immigration status: POST /v1/check/immigration-status:

```json
{
  "share_code": "AB1CD2EF3",
  "date_of_birth": "1990-01-01",
  "company_name": "Example Bank, Leeds branch",
  "job_title": "Account opening officer",
  "purpose": "personal_finance"
}
```

## Start here

- [Quickstart](https://checksharecode.co.uk/docs/quickstart.md): Your first check in 10 seconds, for any check. Your sandbox key is already in the code, and it never uses a check.
- [API reference](https://checksharecode.co.uk/docs/api/check.md): Every field, response and error code, for synchronous and asynchronous checks.
- [Build with an agent](https://checksharecode.co.uk/docs/agents.md): A prompt for Claude Code, Cursor or Copilot, plus Markdown copies of every page.

## Quickstart in your language

- [cURL](https://checksharecode.co.uk/docs/quickstart.md?lang=curl): Try it from a terminal
- [Node.js](https://checksharecode.co.uk/docs/quickstart.md?lang=node): fetch, no SDK needed
- [Python](https://checksharecode.co.uk/docs/quickstart.md?lang=python): requests

## Guides

- [Test codes](https://checksharecode.co.uk/docs/quickstart.md#test-codes): Sandbox share codes and check codes, one for each outcome and error, for every check.
- [Going live](https://checksharecode.co.uk/docs/quickstart.md#go-live): Swap to a live key and check a real applicant.
- [Handling errors](https://checksharecode.co.uk/docs/api/check.md#errors): What each error code means and what to do next.
- [Results by webhook](https://checksharecode.co.uk/docs/webhooks.md): Queue a check, and we post the signed result to your URL.
- [Quota and billing](https://checksharecode.co.uk/tutorials/quota-and-billing): Every check draws from the same monthly allowance.
- [Moving off POST /api/check](https://checksharecode.co.uk/docs/guides/moving-off-api-check.md): Still works for right to work. The move is a one-line change.
- [Moving to api.checksharecode.co.uk](https://checksharecode.co.uk/docs/guides/moving-to-api.md): The API has its own address. The old one keeps working.

> **Reading this as an LLM or agent?** Start at [/llms.txt](https://checksharecode.co.uk/llms.txt) for an index, or [/llms-full.txt](https://checksharecode.co.uk/llms-full.txt) for the whole integration in one file. Add `.md` to any docs URL for plain Markdown. Tell your agent which check you need: it picks the endpoint, and sends the fields only that check takes, such as `checker_type` for right to rent, `purpose` for immigration status or `check_code` for a driving licence.

See also: [Quickstart](https://checksharecode.co.uk/docs/quickstart.md)
