# GOV.UK API

> GOV.UK returns travel advice, bank holidays, and sanctions matches as a workflow and API.

GOV.UK travel advice methods return country-specific travel warnings, entry rules, and safety information; provide a destination country. GOV.UK bank holiday methods return holidays for a UK region and year; region and year can be selected. GOV.UK sanctions methods return possible name matches and designation details; provide a name to check.

- Page: https://fous.com/workflows/gov-uk
- Handle: `@gov-uk`
- Category: [Government](https://fous.com/workflows/category/government)
- Source website: https://gov.uk
- Last verified: Sep 30, 2026
- Fous is not affiliated with GOV.UK.

## Methods

### Check sanctions

Operation `check_sanctions`, version 1. 1 credit per call.

Check a name against the current UK Sanctions List and return possible matches in the site’s best-match order, with designation details. Results may also include entries that mention the name in their reasons; check each entry before identifying a person or organisation. Returns up to max_results matches.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `name` | string | yes | `"Oleg Deripaska"` | Name to check, for example Oleg Deripaska. |
| `type` | string | no | `"person"` | Kind of entry to check, for example person. |
| `max_results` | integer | no | `2` | Maximum number of possible matches to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Name to check, for example Oleg Deripaska.",
      "examples": [
        "Oleg Deripaska",
        "Rosneft",
        "xzqvnonentity984201"
      ]
    },
    "type": {
      "enum": [
        "any",
        "person",
        "organisation",
        "ship"
      ],
      "type": "string",
      "default": "any",
      "description": "Kind of entry to check, for example person.",
      "examples": [
        "person",
        "organisation",
        "ship"
      ]
    },
    "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,
      "examples": [
        2,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "name": "Oleg Deripaska",
      "type": "person",
      "max_results": 2
    },
    {
      "name": "Rosneft",
      "type": "organisation",
      "max_results": 3
    },
    {
      "name": "xzqvnonentity984201"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `matches` | array |  |  |
| `matches[].name` | string | `"EZUBOV Pavel"` |  |
| `matches[].type` | string | `"Person"` | Person, Organisation or Ship. |
| `matches[].aliases` | array |  |  |
| `matches[].position` | string or null | `"Associate of Oleg Deripaska"` |  |
| `matches[].entry_link` | string | `"https://search-uk-sanctions-list.service.gov.uk/designations/RUS1333/Individual"` |  |
| `matches[].nationality` | string or null | `"Cyprus, Russia, Israel"` |  |
| `matches[].date_of_birth` | string or null | `"1975-08-12"` |  |
| `matches[].date_designated` | string or null | `"2022-04-13"` |  |
| `matches[].sanctions_regime` | string or null | `"Russia"` |  |
| `matches[].sanctions_imposed` | array |  |  |
| `matches[].reasons_for_designation` | string or null | `"ROSNEFT MARINE (UK) LIMITED is an involved person under the Russia (Sanctions) (EU Exit) Regulations 2019 on the ground` |  |
| `matches[].uk_sanctions_list_reference` | string or null | `"RUS1333"` |  |
| `summary` | string | `"75 possible matches (showing first 2)"` |  |
| `match_found` | boolean | `true` | Whether the search found any possible matches. |

**Example input**

```json
{
  "name": "Oleg Deripaska",
  "type": "person",
  "max_results": 2
}
```

**Example output**

```json
{
  "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 …",
      "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…",
      "uk_sanctions_list_reference": "RUS0269"
    }
  ],
  "summary": "75 possible matches (showing first 2)",
  "match_found": true
}
```

### Get travel advice

Operation `get_travel_advice`, version 1. 1 credit per call.

Get current UK government travel warnings, entry rules for British passport holders, safety, health and emergency information for a country. Summaries are shortened; read the linked advice for full details.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"Thailand"` | Destination country or common name, for example Thailand, USA or Turkey. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Destination country or common name, for example Thailand, USA or Turkey.",
      "examples": [
        "Thailand",
        "USA",
        "Turkey"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "Thailand"
    },
    {
      "country": "USA"
    },
    {
      "country": "Turkey"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `link` | string | `"https://www.gov.uk/foreign-travel-advice/thailand"` |  |
| `health` | string or null |  |  |
| `country` | string | `"Thailand"` |  |
| `terrorism` | string or null |  |  |
| `date_updated` | string or null | `"2026-09-28"` |  |
| `warning_status` | string | `"FCDO advises against all but essential travel to parts of the country. Thailand-Malaysia border: FCDO advises against a` |  |
| `emergency_numbers` | string or null | `"Emergency services in Thailand: Telephone: 191 (ambulance, fire, police) Ambulance: 1669 Fire: 199 Police: 191 Tourist ` |  |
| `entry_requirements` | string or null |  |  |
| `safety_and_security` | string or null |  |  |
| `latest_update_summary` | string or null | `"Information on Severe Flooding ('Warnings and Insurance’ page)"` |  |
| `local_laws_and_customs` | string or null |  |  |

**Example input**

```json
{
  "country": "Thailand"
}
```

**Example output**

```json
{
  "link": "https://www.gov.uk/foreign-travel-advice/thailand",
  "health": "Vaccine recommendations and health risks: At least 8 weeks before your trip: check the latest information on vaccinations and health risks in TravelHealthPro’s Thailand guide see where to get vaccines…",
  "country": "Thailand",
  "terrorism": "Terrorism: There is a high threat of terrorist attack globally affecting UK interests and British nationals, including from groups and individuals who view the UK and British nationals as targets. Sta…",
  "date_updated": "2026-09-28",
  "warning_status": "FCDO advises against all but essential travel to parts of the country. Thailand-Malaysia border: FCDO advises against all but essential travel to parts of the south, near the Thailand-Malaysia border:…",
  "emergency_numbers": "Emergency services in Thailand: Telephone: 191 (ambulance, fire, police) Ambulance: 1669 Fire: 199 Police: 191 Tourist police: 1155 The Tourist Police have developed a new application called Thailand …",
  "entry_requirements": "Passport validity requirements: To enter Thailand, your passport must have an ‘expiry date’ at least 6 months after the date you arrive and have at least 1 blank page. Check with your travel provider …",
  "safety_and_security": "Political situation: The political situation can be unpredictable and has led to periods of civil and political unrest. Avoid protests, political gatherings, demonstrations and marches. Crime: Protect…",
  "latest_update_summary": "Information on Severe Flooding ('Warnings and Insurance’ page)",
  "local_laws_and_customs": "Laws and cultural differences: The British Embassy in Bangkok’s video talks about what to be aware of when living or travelling in Thailand: Facebook – visiting Thailand video X – visiting Thailand vi…"
}
```

### List bank holidays

Operation `list_bank_holidays`, version 1. 1 credit per call.

List bank holidays for a UK region and year, including substitute days, notes, and the next upcoming holiday. Years not published by GOV.UK return an empty list with available years.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2027` | Calendar year, for example 2027. Defaults to the current year. |
| `region` | string | no | `"scotland"` | UK region, for example scotland. Defaults to england_and_wales. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 9999,
      "minimum": 1,
      "description": "Calendar year, for example 2027. Defaults to the current year.",
      "examples": [
        2027,
        2026,
        2035
      ]
    },
    "region": {
      "enum": [
        "england_and_wales",
        "scotland",
        "northern_ireland"
      ],
      "type": "string",
      "default": "england_and_wales",
      "description": "UK region, for example scotland. Defaults to england_and_wales.",
      "examples": [
        "scotland",
        "england_and_wales",
        "northern_ireland"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "year": 2027,
      "region": "scotland"
    },
    {
      "year": 2026,
      "region": "england_and_wales"
    },
    {
      "year": 2035,
      "region": "northern_ireland"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `link` | string | `"https://www.gov.uk/bank-holidays#scotland"` | GOV.UK bank holiday page for the selected region. |
| `note` | string or null | `"Bank holidays for 2035 are not published for northern ireland. Available years: 2019, 2020, 2021, 2022, 2023, 2024, 202` | Available published years when the requested year is unavailable. |
| `year` | integer | `2027` | Year requested. |
| `region` | string | `"scotland"` | Region requested. |
| `holidays` | array |  | Bank holidays for the year in date order. |
| `holidays[].date` | string | `"2027-01-01"` | Holiday date. |
| `holidays[].link` | string | `"https://www.gov.uk/bank-holidays#scotland"` | GOV.UK page for this holiday’s region. |
| `holidays[].note` | string or null | `"Substitute day"` | Any note shown by GOV.UK, or null. |
| `holidays[].day_of_week` | string | `"Friday"` | Day of the week. |
| `holidays[].holiday_name` | string | `"New Year’s Day"` | Name of the bank holiday. |
| `holidays[].substitute_day` | string | `"no"` | Whether this is a substitute day. |
| `next_upcoming_bank_holiday` | any |  | Next bank holiday on or after today, regardless of the selected year, if published. |

**Example input**

```json
{
  "year": 2027,
  "region": "scotland"
}
```

**Example output**

```json
{
  "link": "https://www.gov.uk/bank-holidays#scotland",
  "note": null,
  "year": 2027,
  "region": "scotland",
  "holidays": [
    {
      "date": "2027-01-01",
      "link": "https://www.gov.uk/bank-holidays#scotland",
      "note": null,
      "day_of_week": "Friday",
      "holiday_name": "New Year’s Day",
      "substitute_day": "no"
    },
    {
      "date": "2027-01-04",
      "link": "https://www.gov.uk/bank-holidays#scotland",
      "note": "Substitute day",
      "day_of_week": "Monday",
      "holiday_name": "2nd January",
      "substitute_day": "yes"
    },
    {
      "date": "2027-03-26",
      "link": "https://www.gov.uk/bank-holidays#scotland",
      "note": null,
      "day_of_week": "Friday",
      "holiday_name": "Good Friday",
      "substitute_day": "no"
    }
  ],
  "next_upcoming_bank_holiday": {
    "date": "2026-11-30",
    "link": "https://www.gov.uk/bank-holidays#scotland",
    "note": null,
    "day_of_week": "Monday",
    "holiday_name": "St Andrew’s Day",
    "substitute_day": "no"
  }
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@gov-uk",
  "visibility": "public",
  "operation": "check_sanctions",
  "version": 1,
  "input": {
    "name": "Oleg Deripaska",
    "type": "person",
    "max_results": 2
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@gov-uk\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_sanctions\",\n  \"version\": 1,\n  \"input\": {\n    \"name\": \"Oleg Deripaska\",\n    \"type\": \"person\",\n    \"max_results\": 2\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@gov-uk",
  "visibility": "public",
  "operation": "check_sanctions",
  "version": 1,
  "input": {
    "name": "Oleg Deripaska",
    "type": "person",
    "max_results": 2
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@gov-uk","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Prepare travel guidance for customers visiting a destination.
- Plan staffing around regional bank holidays.
- Review possible sanctions matches during name screening.
- Check entry rules before booking international travel.
- Track upcoming bank holidays for a UK region.

## FAQ

### Is Fous affiliated with GOV.UK?

No. Fous is not affiliated with GOV.UK. This workflow reads the public gov.uk website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a GOV.UK account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from gov.uk when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 30, 2026.

### What travel warnings apply to a destination?

Use Get travel advice with a country to return travel warnings and other destination advice.

### Which bank holidays fall in a region and year?

Use List bank holidays with a region and year to return the holidays and the next upcoming published holiday.

### Does a name have possible sanctions matches?

Use Check sanctions with a name to return possible matches and designation details. Review each entry before identifying a person or organisation.

## Related

- [US State Department API](https://fous.com/workflows/us-state-department.md): US State Department provides current travel advisories, entry rules, embassy and consulate contacts, and published monthly visa bulletin dates; guidance may be incomplete; consular agencies are excluded.
- [EU Sanctions Map API](https://fous.com/workflows/eu-sanctions-map.md): EU Sanctions Map returns regimes, consolidated financial listings, name matches and linked acts, plus country measures and available counts; linked acts may be later amendments.
- [UN Security Council Sanctions API](https://fous.com/workflows/un-security-council-sanctions.md): Check names against the UN Security Council Consolidated List.
- [OFAC API](https://fous.com/workflows/ofac.md): U.S. Treasury sanctions list search for SDN and non-SDN entries.
- [Companies House API](https://fous.com/workflows/companies-house.md): Companies House returns UK public-register company details, officers, people with significant control and recent filings; records may be incomplete, and ceased entries are optional.
- [CDC API](https://fous.com/workflows/cdc.md): CDC provides disease facts, age-based vaccine guidance, current travel notices, and destination-specific travel health recommendations; review dates appear only when CDC supplies them.
- [legislation.gov.uk API](https://fous.com/workflows/legislation-gov-uk.md): legislation.gov.uk provides official legislation, latest available revised section text or contents, and title or topic search results; some older Acts lack structured text.
- [Nager.Date API](https://fous.com/workflows/nager-date.md): Nager.Date returns annual holiday calendars, long weekends, holiday or weekend checks, country details, and up to 50 upcoming holidays within 365 days; coverage varies.
- [All Government workflows](https://fous.com/workflows/category/government)
