Anpheros Search: symptoms, conditions and treatments with their sources
One public catalog of 1,174 symptoms, conditions and treatments in 20 languages, each entry with its source: WHO ICD-10 and ICD-11, MedlinePlus summaries, EMA and FDA indications quoted unchanged; REST, FHIR, MCP and one JSON file.
Anpheros Search is one public catalog of 1,174 symptoms, conditions and treatments, searchable in 20 languages, where every entry says where it comes from: WHO ICD-10 codes, WHO ICD-11 codes and titles, MedlinePlus summaries, and treatment indications quoted unchanged from the European Medicines Agency (EMA) and the U.S. Food and Drug Administration (FDA). It is served as a REST API, as HL7 FHIR R4 terminology (CodeSystem, ConceptMap, $lookup), as two MCP tools for AI assistants, and as one JSON file. It is general information for everyone, the same for every reader: it does not diagnose and does not recommend a treatment.
At a glance
| Release | 2026.10.4 (every response says which) |
| Entries | 1,174: 274 symptoms and findings (SYM-…), 495 conditions (CON-…), 405 treatments (TRT-…); identifiers are never reused |
| Names | 17,947 names and synonyms in 20 languages; the official ICD-11 title and everyday names in English, everyday names in the other languages |
| Descriptions | 1,034 MedlinePlus health-topic summaries, verbatim, in English and Spanish |
| Indications | 766 approved uses quoted unchanged: EMA (EU) and FDA labels (US), each with product, date and link |
| Links | 257, each with its source: treatment → condition (indicated_for) and symptom ↔ condition (may_be_associated_with) |
| Standards | WHO ICD-10, WHO ICD-11 MMS 2025-01, RxNorm, EMA product numbers, HL7 FHIR R4 |
| Clinical review | none yet: clinical_review: false on every response |
Sources and licences
Nothing in the catalog is written by Anpheros except the names in other languages. Every entry carries an attribution list with the exact text each source asks for, and every indication carries its own.
| Source | Used for | Licence and attribution |
|---|---|---|
| WHO ICD-10 (2019) and the WHO ICD-10 → ICD-11 mapping tables (2025-01) | ICD-10 codes (the WHO ICD-10 titles are not served until WHO confirms the licence), the ICD-11 code and its English title | © WHO; ICD-11 under CC BY-ND 3.0 IGO, titles reproduced unchanged |
| MedlinePlus health topics and MedlinePlus Connect (U.S. National Library of Medicine) | the summary of a symptom or condition, English synonyms, the official Spanish title; which topic covers which ICD-10 category | public domain; "Source: MedlinePlus, National Library of Medicine." Only the health-topic summaries: no encyclopedia and no drug monographs |
| EMA medicines data (EPAR) | the active substance, the medicine names, the therapeutic indication, the therapeutic area (MeSH) | reuse with the source cited each time: "Source: European Medicines Agency (EMA), product — EPAR, date. © European Medicines Agency." |
| openFDA drug labels | the "indications and usage" section of a US label, brand names | CC0; "Data provided by the U.S. Food and Drug Administration." |
| RxNorm (NLM) | the ingredient RXCUI of each substance | NLM attribution text |
ICD-10 titles and ATC codes are not served. Until WHO confirms the ICD-10 licence, an ICD-10 code comes without its WHO title (display: null) and the official English title shown is the ICD-11 one, verbatim. ATC lookup is switched off on the whole platform. The catalog keeps the WHO ATC code of each substance internally, but no response, FHIR resource or export contains it until the WHO Collaborating Centre for Drug Statistics Methodology grants permission. Treatments are identified by substance (INN), RxNorm RXCUI and EMA product number.
Search (REST)
export API=https://platform.anpheros.com/v1
export KEY=sk_test_…
curl "$API/search?q=durere%20de%20cap&lang=ro"
/v1/search and /v1/search/{id} are public: no API key is needed, up to 60 searches a minute and 2,000 a day per IP address, answered with Cache-Control: public and an ETag, and readable from a browser on anpheros.com. With a key (a free sandbox key is enough) the usual API limits apply instead. The other endpoints below, FHIR and MCP still need a key.
q matches names and synonyms in every language (without diacritics, so durere de cap and Durere de cap are the same), brand names, ICD-10 and ICD-11 codes, RxNorm RXCUIs and Anpheros ids. type=symptom|condition|treatment narrows the search, lang chooses the language of display, limit (up to 50) and offset page through it. Results are ordered by how the text matched (the whole name, the start of a name, every word, part of a word), then alphabetically: never by popularity or by any score.
{
"data": [
{
"concept_id": "SYM-0047",
"type": "symptom",
"display": "Durere de cap (cefalee)",
"display_lang": "ro",
"system": "https://anpheros.com/fhir/CodeSystem/symptom",
"status": "active",
"matched": "durere de cap",
"codes": [
{"system": "http://hl7.org/fhir/sid/icd-10", "code": "R51", "display": null, "equivalence": "equivalent"},
{"system": "http://id.who.int/icd/release/11/mms", "code": "MB4D", "display": "Headache, not elsewhere classified", "equivalence": "equivalent"}
],
"definition": "Almost everyone has had a headache. Headache is the most common form of pain. It's a major…"
}
],
"total": 1,
"release": "2026.10.4",
"attribution": ["ICD-10 codes and titles © World Health Organization. …", "ICD-11 for Mortality and Morbidity Statistics, © World Health Organization, licensed under CC BY-ND 3.0 IGO."],
"disclaimer": "General information only. Anpheros does not diagnose and does not recommend treatment. …"
}
A search for Ozempic finds the substance semaglutide, acetaminophen finds paracetamol, E11 finds type 2 diabetes.
One entry
curl "$API/search/TRT-0310" # any type, no key needed
curl "$API/terminology/conditions?q=asthma&lang=de" -H "Authorization: Bearer $KEY"
curl "$API/terminology/treatments/TRT-0310" -H "Authorization: Bearer $KEY"
GET /v1/terminology/conditions and GET /v1/terminology/treatments list or search one type, like /v1/terminology/symptoms; GET /v1/search/{id} returns any entry in the same shape. An entry has codes, labels (the official title and everyday names, each with its review), synonyms, definition (the MedlinePlus summary, with the topic it comes from), links, attribution, disclaimer and release; a treatment also has substance and indications. An excerpt:
{
"concept_id": "TRT-0310",
"type": "treatment",
"display": "Semaglutide",
"codes": [
{"system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "1991302", "display": "semaglutide"},
{"system": "https://www.ema.europa.eu/en/medicines/product-number", "code": "EMEA/H/C/004174", "display": null}
],
"synonyms": [{"lang": "en", "text": "Ozempic"}, {"lang": "en", "text": "Rybelsus"}, {"lang": "en", "text": "Wegovy"}],
"indications": [
{
"region": "EU",
"product": "Kayshild",
"product_id": "EMEA/H/C/006426",
"text": "Kayshild is indicated in conjunction with diet and exercise for the treatment of adults with non-cirrhotic metabolic dysfunction-associated steatohepatitis (MAS…",
"url": "https://www.ema.europa.eu/en/medicines/human/EPAR/kayshild",
"document_date": "09/04/2026",
"review": "source_verified",
"attribution": "Source: European Medicines Agency (EMA), Kayshild — EPAR, 09/04/2026. © European Medicines Agency.",
"note": "Indication approved in the European Union (EMA)."
}
],
"clinical_review": false,
"release": "2026.10.4"
}
Indications are quoted exactly as the source publishes them (the excerpt above is shortened here, not in the API), EU first, then US, each group in alphabetical order of the product. Approved uses differ between countries, so each one says where it is approved.
Links between entries
A link exists only when it appears in a cited source, and it says which source and why:
indicated_for(treatment → condition), 249 links. The EMA lists a therapeutic area (MeSH heading) for each medicine. The link is made when that heading is a MeSH heading of the MedlinePlus topic of exactly one ICD-10 category, the category is not a residual one ("Other…", "…unspecified"), the two names share a word, and no more specific heading of the same medicine applies ("Diabetes Mellitus" gives way to "Diabetes Mellitus, Type 2"). Seen from the condition, the same link isindicated_treatment, and the list is alphabetical.may_be_associated_with(symptom ↔ condition), 8 links. Made when MedlinePlus lists the two topics as related and each topic names exactly that symptom or condition: for example cough and acute bronchitis, heartburn and gastro-oesophageal reflux disease, headache and migraine. It does not mean that someone with the symptom has the condition.
FHIR terminology
| Resource | Content |
|---|---|
CodeSystem/anpheros-condition |
the conditions, with icd10 and icd11 properties and names as designations |
CodeSystem/anpheros-treatment |
the substances, with rxnorm and ema_product properties (no ATC) |
ConceptMap/anpheros-condition-to-icd10, ConceptMap/anpheros-condition-to-icd11 |
condition → WHO codes, with the equivalence |
ConceptMap/anpheros-treatment-to-rxnorm |
substance → RxNorm ingredient |
CodeSystem/$lookup |
one concept by system and code, in displayLanguage |
curl "https://platform.anpheros.com/fhir/R4/CodeSystem/\$lookup?system=https://anpheros.com/fhir/CodeSystem/condition&code=CON-0129&displayLanguage=de" \
-H "Authorization: Bearer $KEY"
The symptoms keep their own CodeSystem, ValueSet and ConceptMaps, described in the Symptom data API. Descriptions, indications and links are on the REST API only, with their sources.
For AI assistants (MCP)
The Anpheros MCP server has two tools for the catalog: search_health_terms (query, optional type, language, limit) and get_health_term (an id such as SYM-0047, CON-0129 or TRT-0310). An assistant that answers a question about a symptom or a medicine can cite the entry, its codes and its sources instead of its own memory. The tools return the same disclaimer as the API.
The whole catalog as one file
https://platform.anpheros.com/site/search/anpheros-search-catalog.json (about 7 MB) has every published entry in every language, with codes, descriptions, quoted indications, links, sources and the attribution of each entry. It is the file the anpheros.com/search pages are built from, and it is regenerated with each release.
How the catalog was built
- Symptoms. The 86 concepts of the Symptom Engine, plus 188 new ones: the subcategories of ICD-10 chapter XVIII that are not residual (for example R06.0 dyspnoea, R43.0 loss of smell) and the categories R65, R75, R78, R83–R87 and R89. Deaths (R95–R99) are left out.
- Conditions. Every 3-character ICD-10 category outside chapters XVIII and XX–XXII was sent to MedlinePlus Connect, the National Library of Medicine's service that maps a code to a health topic. A category enters the catalog when its topic covers at most three categories; 495 did. The topic's summary becomes the description. The MedlinePlus title becomes the everyday English name only when it names the same thing as the WHO title.
- Treatments. Every single-substance medicine authorised centrally by the EMA whose therapeutic area matches a condition's topic (salts are merged: abiraterone acetate is abiraterone), plus 33 common medicines that are authorised nationally and have an FDA label. The RxNorm ingredient comes from RxNav.
- Names in 20 languages. English names are the source titles (
review: source), and the Spanish name is the MedlinePlus Spanish title where there is one. The other names are Anpheros translations made with AI from the English names and checked automatically for script, brackets and digits (review: ai_reviewed). Treatment names exist in 15 languages. In Japanese, Korean, Chinese, Arabic and Hindi, names were written only for 80 widely used substances; elsewhere the international name (INN) is shown.
Limits
- No clinician has reviewed the catalog. No professional medical translator has reviewed the translated names.
- EMA indications are in English. The official versions in the other EU languages are in the EMA product information and are not yet in the catalog; they will not be translated by Anpheros.
- FDA indications describe approval in the United States. EMA data covers only centrally authorised medicines, so many older medicines have only an FDA label or no indication yet.
- Links follow the sources' own classifications (the EMA therapeutic area, the MedlinePlus related topics): they are few, and they are not a complete list of uses or causes.
- "What people report" (anonymous counts from Anpheros users, at least 20 people) is not part of the catalog yet.
Related
- Anpheros Symptom Engine: methodology
- Symptom data API
- FHIR code systems
- Medical terminology API: LOINC, SNOMED, ICD-10, RxNorm
- FHIR MCP server for AI agents
Short summaries (English)
https://platform.anpheros.com/site/search/anpheros-search-summaries.en.json has 868 short English summaries, keyed by entry id. Each one is written by AI only from the entry's own cited fields (MedlinePlus summary, quoted indications, sourced links, warning signs), sentence by sentence, with the field each sentence cites, and checked against those fields. Summaries that repeated a WHO ICD-10 title were left out.