GOV.UK API: Check a name against the UK Sanctions List
Checks a name against the current UK Sanctions List and returns possible matches in the site's best-match order, with designation details. Results may include entries that only mention the name in their reasons, so check each entry before identifying anyone.
Unofficial. Not affiliated with or endorsed by GOV.UK.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Name, required
name Name to check, for example Oleg Deripaska.
Oleg Deripaska
- Type optional
type Kind of entry to check, for example person.
person
One of
any,person,organisation,ship. Defaultany.- Max Results optional
max_results Maximum number of possible matches to return, for example 20.
2
Whole number from 1 to 100. Default
20.
Input as JSON
{ "name": "Oleg Deripaska", "type": "person", "max_results": 2}Output
{ "matches": [ { "name": "EZUBOV Pavel", "type": "Person", "aliases": [ "EZOUBOV Pavel Alexeevich" ], "position": "Associate of Oleg Deripaska", "entry_link": "https://search-uk-sanctions-list.service.gov.uk/designations/RUS1333/Individual" , "nationality": "Cyprus, Russia, Israel", "date_of_birth": "1975-08-12", "date_designated": "2022-04-13", "sanctions_regime": "Russia", "sanctions_imposed": [ "Asset freeze", "Director Disqualification Sanction", "Travel Ban" ], "reasons_for_designation": "The Secretary of State considers that there are reasonable grounds to suspect that Pavel EZUBOV is an involved person on the basis of the following grounds: (1) Pavel EZUBOV is associated with Alexey Petrovich EZUBOV, his father, who was designated under the Russia (Sanctions) (EU Exit) Regulations …", "uk_sanctions_list_reference": "RUS1333" }, { "name": "DERIPASKA Oleg Vladimirovich", "type": "Person", "aliases": [ "DERIPASKA Oleg" ], "position": "Shareholder at EN+ GROUP", "entry_link": "https://search-uk-sanctions-list.service.gov.uk/designations/RUS0269/Individual" , "nationality": "Russia", "date_of_birth": "1968-01-02", "date_designated": "2022-03-10", "sanctions_regime": "Russia", "sanctions_imposed": [ "Asset freeze", "Director Disqualification Sanction", "Transport sanctions: see \"Other information\"" ], "reasons_for_designation": "Oleg Vladimirovich DERIPASKA (hereafter DERIPASKA) is an involved person under the Russia (Sanctions) (EU Exit) Regulations 2019 on the basis of the following grounds: (1) DERIPASKA is associated with a person who is and has been involved in destabilising Ukraine and undermining and threatening the …", "uk_sanctions_list_reference": "RUS0269" } ], "summary": "75 possible matches (showing first 2)", "match_found": true}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"gov.uk/check_sanctions","input":{"name":"Oleg Deripaska","type":"person","max_results":2}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "gov.uk/check_sanctions" , "input": { "name": "Oleg Deripaska", "type": "person", "max_results": 2 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "gov.uk/check_sanctions" , "input": { "name": "Oleg Deripaska", "type": "person", "max_results": 2 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run gov.uk/check_sanctions# with {"name":"Oleg Deripaska","type":"person","max_results":2}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "description": "Name to check, for example Oleg Deripaska." }, "type": { "enum": [ "any", "person", "organisation", "ship" ], "type": "string", "default": "any", "description": "Kind of entry to check, for example person." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of possible matches to return, for example 20.", "x-fous-developer": true } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "match_found", "summary", "matches" ], "properties": { "matches": { "type": "array", "items": { "type": "object", "required": [ "name", "type", "sanctions_regime", "date_designated", "aliases", "nationality", "date_of_birth", "position", "reasons_for_designation", "sanctions_imposed", "entry_link", "uk_sanctions_list_reference" ], "properties": { "name": { "type": "string" }, "type": { "type": "string", "description": "Person, Organisation or Ship." }, "aliases": { "type": "array", "items": { "type": "string" } }, "position": { "type": [ "string", "null" ] }, "entry_link": { "type": "string" }, "nationality": { "type": [ "string", "null" ] }, "date_of_birth": { "type": [ "string", "null" ], "format": "date" }, "date_designated": { "type": [ "string", "null" ], "format": "date" }, "sanctions_regime": { "type": [ "string", "null" ] }, "sanctions_imposed": { "type": "array", "items": { "type": "string" } }, "reasons_for_designation": { "type": [ "string", "null" ] }, "uk_sanctions_list_reference": { "type": [ "string", "null" ], "x-fous-developer": true } }, "additionalProperties": false } }, "summary": { "type": "string" }, "match_found": { "type": "boolean", "description": "Whether the search found any possible matches." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
gov.uk/check_sanctions- Returns
- possible matches with name, type, regime, designation date, aliases, nationality, date of birth, position, reasons, sanctions imposed and list reference
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method gov.uk/check_sanctions with the inputs above.
Ask your agent
- Is there anyone called Viktor Medvedchuk on the UK sanctions list?
- Check whether the name Aleksandr Lukashenko appears as a ship or organisation entry in the UK Sanctions List, showing up to 10 matches
- Search the gov.uk sanctions list for individuals named Mohammed Al-Bashir and return their designation dates and aliases
- Look up any person entries matching Kim Jong Un in the current UK sanctions designations
- Find UK sanctioned organisations with names similar to Wagner Group, limit results to 5
See more
All GOV.UK methodsReturns current UK government (FCDO) travel warnings, entry requirements for British passport holders, safety, health and emergency information for a country. Summaries are shortened; follow the link for full details.
gov.uk/get_travel_adviceLists GOV.UK bank holidays for a UK region and year, including substitute days and notes, plus the next upcoming holiday. Years GOV.UK does not publish return an empty list and the published years.
gov.uk/list_bank_holidaysChecks a person or organisation name against the EU consolidated financial sanctions list (asset freezes) on the EU Sanctions Map, returning likely matches with their regime, aliases, listing details and linked legal act. Name similarity is a screening aid, not identity confirmation.
sanctionsmap.eu/check_sanctionsChecks a person or organisation name against the current UN Security Council Consolidated List and returns ranked possible matches.
scsanctions.un.org/check_sanctionsScreens a name against the OFAC SDN and non-SDN sanctions lists. Returns scored entries with identifying details. Similar names are potential matches, not confirmed identities.
sanctionssearch.ofac.treas.gov/check_sanctionsSearch UK legislation by topic or title, with optional type and year filters. Closest title matches appear first; broader text matches fill remaining places.
legislation.gov.uk/search_legislationLists EU Sanctions Map regimes concerning a country, with measures, EUR-Lex legal acts, amendment dates and listed person and entity counts.
sanctionsmap.eu/get_country_sanctionsSearches the UK Companies House register by company name and returns each company's status, type, incorporation date and registered office address, in result order.
find-and-update.company-information.service.gov.uk/search_companies