NHS API: Get guidance for a health condition
Gets 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.
Unofficial. Not affiliated with or endorsed by NHS.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Condition, required
condition The health condition in plain words, for example chickenpox.
type 2 diabetes
Input as JSON
{ "condition": "type 2 diabetes"}Output
{ "causes": "Who is more likely to get type 2 diabetes\nSome people have a higher risk of developing type 2 diabetes. You may be more at risk if:\nyou're white and over 40 years old or over 25 years old and from a South Asian, Chinese, Black African or Black Caribbean ethnic background\na parent, or your brother or…", "overview": "Type 2 diabetes is when a hormone called insulin does not work properly or there is not enough of it. This causes the level of glucose (sugar) in your blood to become too high. It affects adults and sometimes children.\n\nType 2 diabetes is a common condition where your body cannot make enough of a ho…", "see_a_gp": "Non-urgent advice: See a GP if:\nyou think you or your child may have type 2 diabetes\nyou or your child have a higher risk of developing type 2 diabetes\nNot everyone with type 2 diabetes has symptoms, so it's important to get checked out.", "symptoms": "Symptoms of type 2 diabetes\nThe most common symptoms of type 2 diabetes are:\nfeeling very tired\npeeing more than usual\nfeeling thirsty all the time\nlosing weight without trying to\nOther symptoms can include:\nblurred vision\ncuts or wounds taking longer to heal\nitching around your penis or vagina, or …", "page_link": "https://www.nhs.uk/conditions/type-2-diabetes/" , "treatment": "Lifestyle changes to help with type 2 diabetes\nIf you have type 2 diabetes or have been told that you may get it in the future (prediabetes), lifestyle changes can help lower your blood glucose (sugar) levels. This can help to manage diabetes and possibly avoid having to take medicine.\nLifestyle cha…", "prevention": null, "call_nhs_111": "Urgent advice: Ask for an urgent GP appointment or get help from NHS 111 if:\nyou're taking diabetes medicine and have vomiting, diarrhoea or a very high temperature\nYou can call 111 or get help from 111 online.", "condition_name": "Type 2 diabetes", "page_last_reviewed": "2025-02-10", "call_999_or_go_to_ae": null}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"nhs.uk/get_condition","input":{"condition":"type 2 diabetes"}}' # 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": "nhs.uk/get_condition" , "input": { "condition": "type 2 diabetes" }})# 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": "nhs.uk/get_condition" , "input": { "condition": "type 2 diabetes" } }), 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 nhs.uk/get_condition# with {"condition":"type 2 diabetes"}"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": [ "condition" ], "properties": { "condition": { "type": "string", "minLength": 1, "description": "The health condition in plain words, for example chickenpox." } }}Output schema
{ "type": "object", "required": [ "condition_name", "overview", "symptoms", "see_a_gp", "call_nhs_111", "call_999_or_go_to_ae", "causes", "treatment", "prevention", "page_last_reviewed", "page_link" ], "properties": { "causes": { "type": [ "string", "null" ], "description": "Causes or how it spreads." }, "overview": { "type": [ "string", "null" ], "description": "Overview of the condition." }, "see_a_gp": { "type": [ "string", "null" ], "description": "Non-urgent guidance on when to see a GP." }, "symptoms": { "type": [ "string", "null" ], "description": "Symptoms described by the NHS." }, "page_link": { "type": [ "string", "null" ], "description": "Link to the NHS condition page." }, "treatment": { "type": [ "string", "null" ], "description": "Treatment and self-care guidance." }, "prevention": { "type": [ "string", "null" ], "description": "Prevention and reducing risk." }, "call_nhs_111": { "type": [ "string", "null" ], "description": "Urgent guidance on when to get help from NHS 111." }, "condition_name": { "type": [ "string", "null" ], "description": "Name of the condition on the NHS page." }, "page_last_reviewed": { "type": [ "string", "null" ], "description": "Date the guidance was last reviewed, in YYYY-MM-DD." }, "call_999_or_go_to_ae": { "type": [ "string", "null" ], "description": "Emergency guidance on when to call 999 or go to A&E." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
nhs.uk/get_condition- Returns
- condition name, overview, symptoms, when to see a GP, when to call 111, when to call 999 or go to A&E, causes, treatment, prevention, review date, page link
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 nhs.uk/get_condition with the inputs above.
Ask your agent
- What does the NHS say about shingles symptoms and when I should see a GP?
- My toddler has a high temperature and a rash. What does nhs.uk say about scarlet fever and when to call 111 or 999?
- Look up official UK health guidance on gout: causes, treatment options and how to prevent flare-ups.
- Pull the nhs.uk page for tonsillitis and tell me when it was last reviewed, plus the link.
- I think I might have a urinary tract infection. What are the signs, and when does it become serious enough to go to A&E?
See more
All NHS methodsLooks up a medicine in the NHS medicines A to Z and returns its guidance: uses, key facts, who can take it, how to take it, 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.
nhs.uk/get_medicineFind 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.
nhs.uk/search_nearby_servicesFinds WebMD's main guide for a condition through a Bing search. Returns its overview and its symptoms, causes, diagnosis, treatment and when-to-call-a-doctor sections.
webmd.com/get_conditionFinds a Mayo Clinic disease or condition page by name and returns its overview, symptoms, causes, when to see a doctor, risk factors, complications and prevention.
mayoclinic.org/get_conditionLooks up a MedlinePlus health topic for a condition or symptom and returns its overview, related topics, and encyclopedia sections when a matching article is linked.
medlineplus.gov/get_health_topicGets CDC facts about a disease by name, including symptoms, how it spreads, prevention, treatment and higher-risk groups when covered. A review date is returned only when CDC labels one.
cdc.gov/get_disease_factsReturns 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_adviceFinds PubMed medical and life-science articles by topic, with publication details and free full-text links when PubMed confirms them.
pubmed.ncbi.nlm.nih.gov/search_articles