# Moving to api.checksharecode.co.uk

> The API has its own address, `https://api.checksharecode.co.uk/v1`. The old one, `https://checksharecode.co.uk/api`, keeps working. Moving is a change to the base URL and nothing else.

Base URL: `https://api.checksharecode.co.uk` · Auth: `authorization: Bearer <key>` · Web version: https://checksharecode.co.uk/docs/guides/moving-to-api

- **Today**: Both addresses work. Same keys, same answers, the same server behind both.
- **The old address**: `Deprecation: @1792195200`. On every API response there, plus a `Link` header to this page, so your logs can find old calls.
- **Turn-off date**: None. If that ever changes, you get at least 6 months of notice: by email, on this page and in a `Sunset` header.

## The change

Swap the base URL. The path after it stays the same, with `/v1` in place of `/api`:

Base URL:

```diff
- https://checksharecode.co.uk/api
+ https://api.checksharecode.co.uk/v1

- POST https://checksharecode.co.uk/api/check/right-to-work
+ POST https://api.checksharecode.co.uk/v1/check/right-to-work
```

## What stays the same

- Your API keys, sandbox and live.
- Request bodies, responses, error codes and rate limits.
- Webhooks, their payloads and their signing secrets.
- Your allowance and billing: a check counts once, whichever address it came to.
- The IP addresses: both names point at the same server, so an allowlist by IP needs no change.

> **A firewall that allows outbound traffic by hostname?** Add `api.checksharecode.co.uk` before you move.

## Test it first

Send a sandbox check to the new address with a test key. It answers at once with fixed test data and uses none of your allowance.

cURL:

```bash
curl https://api.checksharecode.co.uk/v1/check/right-to-work \
  -H "Authorization: Bearer $CHECKSHARECODE_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"share_code":"AA1AA1AA1","date_of_birth":"1990-01-01","company_name":"Acme Ltd"}'
```

An asynchronous check on the new address answers with a `Location` header on that address too, under `/v1`. Follow it as it is rather than building the URL yourself.

## Find calls you missed

### In your code

Search for `checksharecode.co.uk/api`. Responses from the old address carry a `Deprecation` header, so logging it shows any call you missed.

Node.js:

```js
const res = await fetch(url, init);
if (res.headers.get('deprecation')) {
  log.warn('deprecated endpoint', { url });
}
```

### In your dashboard

[Usage](https://checksharecode.co.uk/app/usage) names each key that called the old address in the last 30 days, with how many times. The notice goes away by itself once every call arrives on the new one.

## Checklist

- Every call goes to `https://api.checksharecode.co.uk/v1/...`.
- Firewalls that allow by hostname include `api.checksharecode.co.uk`.
- Checks are read from the `Location` header, not a URL you build.
- No `Deprecation` header in your logs for a week.

See also: [Moving off POST /api/check](https://checksharecode.co.uk/docs/guides/moving-off-api-check.md) · [Build with an agent](https://checksharecode.co.uk/docs/agents.md)
