# NHS API

> NHS workflow and API: condition, medicine and nearby services. Returns causes, overview, see a gp and symptoms as JSON.

NHS data from nhs.uk: condition, medicine and nearby services.

- Page: https://fous.com/workflows/nhs
- Handle: `@nhs`
- Category: [Health](https://fous.com/workflows/category/health)
- Source website: https://nhs.uk
- Last verified: Sep 29, 2026
- Fous is not affiliated with NHS.

## Methods

### Get condition

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

Get NHS guidance for a named health condition, including symptoms, when to seek help, causes, treatment and prevention. Sections not shown on NHS pages are null. For conditions with several guidance pages, the review date is the latest among the pages used.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `condition` | string | yes | `"sciatica"` | The health condition in plain words, for example chickenpox. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "condition"
  ],
  "properties": {
    "condition": {
      "type": "string",
      "description": "The health condition in plain words, for example chickenpox.",
      "examples": [
        "sciatica",
        "chickenpox",
        "type 2 diabetes"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "condition": "sciatica"
    },
    {
      "condition": "chickenpox"
    },
    {
      "condition": "type 2 diabetes"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `causes` | string or null | `"Causes of sciatica\nSciatica happens when something presses or rubs on the sciatic nerve.\nCauses include:\na slipped d` | Causes or how it spreads. |
| `overview` | string or null | `"Sciatica happens when the sciatic nerve, which runs from your lower back to your feet, is irritated or compressed. It u` | Overview of the condition. |
| `see_a_gp` | string or null | `"Non-urgent advice: See a GP if:\nYou have sciatica and the pain:\nhas not improved after trying home treatments for a f` | Non-urgent guidance on when to see a GP. |
| `symptoms` | string or null |  | Symptoms described by the NHS. |
| `page_link` | string or null | `"https://www.nhs.uk/conditions/sciatica/"` | Link to the NHS condition page. |
| `treatment` | string or null |  | Treatment and self-care guidance. |
| `prevention` | string or null | `"How to stop sciatica coming back\nIf you have sciatica, or have had it in the past, there's a chance you could get it a` | Prevention and reducing risk. |
| `call_nhs_111` | string or null | `"Urgent advice: Ask for an urgent GP appointment or get help from NHS 111 if:\nyou're taking diabetes medicine and have ` | Urgent guidance on when to get help from NHS 111. |
| `condition_name` | string or null | `"Sciatica"` | Name of the condition on the NHS page. |
| `page_last_reviewed` | string or null | `"2024-12-03"` | Date the guidance was last reviewed, in YYYY-MM-DD. |
| `call_999_or_go_to_ae` | string or null | `"Immediate action required: Call 999 or go to A&E now if:\nyou or your child are confused, drowsy, or have difficulty sp` | Emergency guidance on when to call 999 or go to A&E. |

**Example input**

```json
{
  "condition": "sciatica"
}
```

**Example output**

```json
{
  "causes": "Causes of sciatica\nSciatica happens when something presses or rubs on the sciatic nerve.\nCauses include:\na slipped disc, when a soft cushion of tissue between the bones in your spine pushes out – this…",
  "overview": "Sciatica happens when the sciatic nerve, which runs from your lower back to your feet, is irritated or compressed. It usually gets better in a few weeks to a few months but can last longer.",
  "see_a_gp": "Non-urgent advice: See a GP if:\nYou have sciatica and the pain:\nhas not improved after trying home treatments for a few weeks\nis getting worse\nis stopping you doing your normal activities\nRefer yourse…",
  "symptoms": "Symptoms of sciatica\nThe symptoms of sciatica usually affect your bottom and the back of one leg, often including your foot and toes.\nYou may feel:\na sharp, burning pain down the back of the leg\ntingl…",
  "page_link": "https://www.nhs.uk/conditions/sciatica/",
  "treatment": "How you can ease sciatica pain yourself\nSciatica usually gets better in a few weeks to a few months, but it can sometimes last longer. It can also return if you've had it before.\nTo help relieve your …",
  "prevention": "How to stop sciatica coming back\nIf you have sciatica, or have had it in the past, there's a chance you could get it again. But there are some things you can do to reduce your chance of this happening…",
  "call_nhs_111": null,
  "condition_name": "Sciatica",
  "page_last_reviewed": "2024-12-03",
  "call_999_or_go_to_ae": "Immediate action required: Go to A&E or call 999 if you:\nhave sciatica on both sides\nhave weakness or numbness in both legs that's severe or getting worse\nhave numbness around or under your genitals, …"
}
```

### Get medicine

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

Get NHS medicine guidance by name, including uses, dosing, side effects, pregnancy and interactions. Sections absent from NHS guidance are null; a plain name with separate adult and child pages selects the adult page.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `medicine` | string | yes | `"sertraline"` | Name of the medicine, such as sertraline or ibuprofen. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "medicine"
  ],
  "properties": {
    "medicine": {
      "type": "string",
      "description": "Name of the medicine, such as sertraline or ibuprofen.",
      "examples": [
        "sertraline",
        "ibuprofen",
        "amoxicillin"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "medicine": "sertraline"
    },
    {
      "medicine": "ibuprofen"
    },
    {
      "medicine": "amoxicillin"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `key_facts` | string or null |  | Key facts. |
| `page_link` | string | `"https://www.nhs.uk/medicines/sertraline/"` | NHS medicine page link. |
| `brand_names` | string or null | `"Lustral"` | Brand names. |
| `medicine_name` | string | `"Sertraline"` | Name used on the NHS medicine page. |
| `what_it_is_for` | string or null | `"Sertraline can be used to treat mental health conditions such as:\ndepression\nobsessive compulsive disorder (OCD)\npan` | What it is for. |
| `common_side_effects` | string or null |  | Common side effects. |
| `serious_side_effects` | string or null |  | Serious side effects. |
| `how_and_when_to_take_it` | string or null |  | How and when to take it. |
| `who_can_and_cannot_take_it` | string or null |  | Who can and cannot take it. |
| `pregnancy_and_breastfeeding` | string or null |  | Pregnancy and breastfeeding. |
| `taking_with_other_medicines_and_herbal_remedies` | string or null |  | Taking with other medicines and herbal remedies. |

**Example input**

```json
{
  "medicine": "sertraline"
}
```

**Example output**

```json
{
  "key_facts": null,
  "page_link": "https://www.nhs.uk/medicines/sertraline/",
  "brand_names": "Lustral",
  "medicine_name": "Sertraline",
  "what_it_is_for": "Sertraline can be used to treat mental health conditions such as:\ndepression\nobsessive compulsive disorder (OCD)\npanic disorder\npost-traumatic stress disorder (PTSD)\nsocial anxiety disorder\nIt's a typ…",
  "common_side_effects": "Common side effects of sertraline include:\nheadaches\nfeeling sick (nausea) and being sick (vomiting)\ndizziness or drowsiness\ndry mouth\ndiarrhoea\nproblems sleeping\nsexual problems, such as low sex driv…",
  "serious_side_effects": "Sertraline can sometimes cause more serious side effects, although most of them are rare.\nPossible serious side effects of sertraline include:\nan allergic reaction (anaphylaxis) – causing symptoms suc…",
  "how_and_when_to_take_it": "Sertraline usually comes as tablets that you swallow. How much you need to take depends on why you're taking it.\nAlways check the packet or leaflet that comes with your medicine. Ask a pharmacist or d…",
  "who_can_and_cannot_take_it": "Most adults can take sertraline.\nChildren aged 6 to 17 can take it for obsessive compulsive disorder (OCD). It's also sometimes used to treat severe depression in children aged 12 to 17.\nSertraline is…",
  "pregnancy_and_breastfeeding": "Tell your doctor if you're breastfeeding.\nSertraline can often be used while breastfeeding, but it's best to check because the medicine can pass into your breast milk in small amounts.\nYou'll usually …",
  "taking_with_other_medicines_and_herbal_remedies": "There are some medicines, remedies and supplements that may not mix well with sertraline.\nThis includes some types of:\nanticoagulants, such as warfarin and apixaban\nnon-steroidal anti-inflammatory dru…"
}
```

### Search nearby services

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

Find nearby NHS service listings from a UK postcode or town, nearest first. NHS service search covers England; urgent_care returns A&E listings. Hours, patient availability and websites are null when not shown.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `service` | string | yes | `"pharmacy"` | Service to find, for example pharmacy. |
| `location` | string | yes | `"SW1A 1AA"` | UK postcode or town, for example SW1A 1AA or Leeds. |
| `max_results` | integer | no | `3` | Maximum listings to return, for example 10 (up to 50). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "location",
    "service"
  ],
  "properties": {
    "service": {
      "enum": [
        "gp_surgery",
        "pharmacy",
        "dentist",
        "urgent_care",
        "hospital",
        "optician"
      ],
      "type": "string",
      "description": "Service to find, for example pharmacy.",
      "examples": [
        "pharmacy",
        "dentist",
        "gp_surgery"
      ]
    },
    "location": {
      "type": "string",
      "description": "UK postcode or town, for example SW1A 1AA or Leeds.",
      "examples": [
        "SW1A 1AA",
        "Leeds"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum listings to return, for example 10 (up to 50).",
      "x-fous-developer": true,
      "examples": [
        3,
        2
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "service": "pharmacy",
      "location": "SW1A 1AA",
      "max_results": 3
    },
    {
      "service": "dentist",
      "location": "SW1A 1AA",
      "max_results": 2
    },
    {
      "service": "gp_surgery",
      "location": "Leeds",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `services` | array |  |  |
| `services[].name` | string | `"Boots"` |  |
| `services[].phone` | string or null | `"020 7828 6013"` |  |
| `services[].address` | string or null | `"5 CATHEDRAL WALK, VICTORIA, LONDON, SW1E 5JH"` |  |
| `services[].website` | string or null | `"https://www.boots.com/"` |  |
| `services[].postcode` | string or null | `"SW1E 5JH"` |  |
| `services[].nhs_page_link` | string | `"https://www.nhs.uk/services/pharmacy/boots/XFHV67"` |  |
| `services[].distance_miles` | number or null | `0.3` |  |
| `services[].opening_hours_today` | string or null | `"7:30am to 8pm"` |  |
| `services[].accepting_new_patients` | boolean or null | `true` |  |

**Example input**

```json
{
  "service": "pharmacy",
  "location": "SW1A 1AA",
  "max_results": 3
}
```

**Example output**

```json
{
  "services": [
    {
      "name": "Boots",
      "phone": "020 7828 6013",
      "address": "5 CATHEDRAL WALK, VICTORIA, LONDON, SW1E 5JH",
      "website": "https://www.boots.com/",
      "postcode": "SW1E 5JH",
      "nhs_page_link": "https://www.nhs.uk/services/pharmacy/boots/XFHV67",
      "distance_miles": 0.3,
      "opening_hours_today": "7:30am to 8pm",
      "accepting_new_patients": null
    },
    {
      "name": "Boots",
      "phone": "020 7834 5792",
      "address": "107 VICTORIA STREET, LONDON, SW1E 6RA",
      "website": "https://www.boots.com/",
      "postcode": "SW1E 6RA",
      "nhs_page_link": "https://www.nhs.uk/services/pharmacy/boots/XFQT75",
      "distance_miles": 0.3,
      "opening_hours_today": "8am to 7pm",
      "accepting_new_patients": null
    },
    {
      "name": "Dolphins Pharmacy",
      "phone": "020 7222 1828",
      "address": "9-11 THE BROADWAY, LONDON, SW1H 0AZ",
      "website": null,
      "postcode": "SW1H 0AZ",
      "nhs_page_link": "https://www.nhs.uk/services/pharmacy/dolphins-pharmacy/XFKE09",
      "distance_miles": 0.4,
      "opening_hours_today": "9am to 5:30pm",
      "accepting_new_patients": null
    }
  ]
}
```

## 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": "@nhs",
  "visibility": "public",
  "operation": "get_condition",
  "version": 1,
  "input": {
    "condition": "sciatica"
  },
  "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\": \"@nhs\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_condition\",\n  \"version\": 1,\n  \"input\": {\n    \"condition\": \"sciatica\"\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": "@nhs",
  "visibility": "public",
  "operation": "get_condition",
  "version": 1,
  "input": {
    "condition": "sciatica"
  },
  "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":"@nhs","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.

## FAQ

### Is Fous affiliated with NHS?

No. Fous is not affiliated with NHS. This workflow reads the public nhs.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 NHS account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from nhs.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 29, 2026.

## Related

- [WebMD API](https://fous.com/workflows/webmd.md): Plain-language health condition and symptom guides from WebMD.
- [Mayo Clinic API](https://fous.com/workflows/mayo-clinic.md): Mayo Clinic provides health information from public condition pages, including condition overviews and, where available, diagnosis, treatment, home care, alternative medicine, and appointment preparation.
- [Drugs.com API](https://fous.com/workflows/drugs-com.md): Drugs.com provides public medicine guides, interaction and food or lifestyle warnings for 2–10 medicines, pill matches by imprint, color, or shape, and listed US cash prices by strength, form, and quantity.
- [Postcodes.io API](https://fous.com/workflows/postcodes-io.md): Postcodes.io provides UK postcode, location and administrative information; nearby postcode results include distance and coordinates, while retired postcodes lack administrative details.
- [MedlinePlus API](https://fous.com/workflows/medlineplus.md): MedlinePlus provides health information from the U.S. National Library of Medicine, including condition and symptom overviews and explanations of tests with matching pages.
- [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.
- [FDA API](https://fous.com/workflows/fda.md): FDA provides drug safety data, latest matching drug labels, common reported side effects, and newest-first drug, food, and device recalls; recent drug and device recalls may be missing, and weekly food statuses may lag.
- [ClinicalTrials.gov API](https://fous.com/workflows/clinicaltrials-gov.md): ClinicalTrials.gov helps users find studies and view public trial records, including sponsor-run or funded studies; site distances are approximate, and contacts, eligibility, or exact dates may be missing.
- [All Health workflows](https://fous.com/workflows/category/health)
