---
title: "Sanctions lists and the versions screened"
method: GET
path: "/sanctions/lists"
tags: ["Sanctions"]
---

# Sanctions lists and the versions screened

`GET /sanctions/lists`

## Request

- Base URL: `https://api.companystack.co.uk`
- URL: `https://api.companystack.co.uk/sanctions/lists`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Every list CompanyStack screens against: the version served, the list's own date, when it last changed (loaded_at) and was last checked (checked_at; lists are checked hourly), its jurisdiction and licence, and why a list is stale or not loaded.

## Response `200`

Lists

- object
  - `lists` object[]
    - `id` 'uk_fcdo' | 'un_sc' | 'eu_fsf' | 'us_ofac_sdn' | 'us_ofac_cons' | 'ca_sema' | 'au_dfat' | 'nz_mfat' | 'jp_mof' | 'fr_tresor' | 'us_trade_csl' | 'ch_seco', required: Lists CompanyStack screens when a copy is loaded: uk_fcdo, eu_fsf, us_ofac_sdn, us_ofac_cons, ca_sema, au_dfat, nz_mfat, jp_mof, fr_tresor, us_trade_csl. A list with no copy loaded has status `not_loaded` and was not screened.
    - `name` string, required
    - `short_name` string: Short label (added 2026-10-20)
    - `jurisdiction` string: Who imposes the sanctions (added 2026-10-20)
    - `publisher` string
    - `status` 'current' | 'stale' | 'not_loaded', required: `stale`: loaded, but not checked successfully for 48 hours (the version screened is still shown); `not_loaded`: this list was not screened
    - `published_at` string, date, nullable, required: The list's own date: the publication or generation date the file states; for a file that states none (Canada, New Zealand), the date the publisher last changed it
    - `loaded_at` string, date-time, nullable, required: When CompanyStack loaded the version screened (when the list last changed)
    - `checked_at` string, date-time, nullable, required: When CompanyStack last checked the list for changes successfully (hourly; the French register every three hours)
    - `entries` integer, nullable: People and entities in the version screened (ships and aircraft are not loaded)
    - `info_url` string, uri
    - `licence` string
    - `note` string, nullable: Why the list is stale or not loaded
    - `version_id` integer, nullable
  - `stale_after_hours` integer
  - `generated_at` string, date-time

## Other responses

- `401`: API key missing, malformed or revoked
- `403`: The key's plan does not include this endpoint (`code: plan_upgrade_required`, with `upgrade_url`), the key may not call it, or the key is beyond the plan's key limit after a downgrade (`code: key_limit_exceeded`: the newest keys are paused until keys are deleted or the plan upgraded)
- `429`: Per-minute or per-day limit reached (`code: rate_limited`, `window: minute|day`). Wait `Retry-After` seconds; when both windows are full the day is reported. A refused request does not count against either limit. A bulk lookup (`POST /company/bulk`) counts each company number in it as one request, so one that is more than you have left is refused whole, and the body adds `requested` and `fits`.
- `503`: Sanctions screening is not available yet

---

[API](https://skmtc.dev/companystack/apis/companystack-api.md) · [All operations](https://skmtc.dev/companystack/apis/companystack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companystack/apis/companystack-api/revisions/8f3234237d2d?raw)
