Search medicines
GET/v1/drugs
Searches every record of every source in one country by name, active ingredient or identifier. Names match anywhere in the text; identifiers such as AIC, CN, NDC or DIN codes match from their first character. Matching ignores accents and case. Results rank exact matches first, then prefix matches, then other matches, each by record name.
Parameters
-
countrystring Required - Two-letter ISO 3166-1 country code, lowercase. Every search is scoped to one country.
-
qstring Required - The text to search for: a name, an active ingredient or an identifier. 3 to 120 characters, matched literally.
-
limitinteger - Number of results to return, from 1 to 50. Defaults to 20.
-
offsetinteger - Number of results to skip, from 0 to 10000. Use the nextOffset of the previous page.
-
kindsstring - Keep only these record kinds, as comma-separated sourceId:kind pairs of the requested country, at most 12. Applied before pagination.
-
useDomainenum -
Keep only records whose source classifies them for this use. human and veterinary also include products the source marks for both. Applied before pagination.
Possible values:
humanveterinarybothunknownnot-applicable -
speciesstring - Keep only records with this reviewed target species, such as dog, cat, horse or cattle. Records with unknown or unmapped species are excluded. Applied before pagination.
Returns
-
countrystring - The country searched.
-
resultsRecord[] - The matching records, best matches first.
-
nextOffsetinteger | null - The offset of the next page, or null on the last page.
Errors
400 401
403
429 503 ·
Errors and rate limits
curl -G https://api.medifontis.com/v1/drugs \
-H "Authorization: Bearer $MEDIFONTIS_API_KEY" \
--data-urlencode "country=gb" \
--data-urlencode "q=amoxicillin"const params = new URLSearchParams({ country: 'gb', q: 'amoxicillin' })
const response = await fetch(`https://api.medifontis.com/v1/drugs?${params}`, {
headers: { Authorization: `Bearer ${process.env.MEDIFONTIS_API_KEY}` },
})
if (!response.ok) throw new Error(`Medifontis ${response.status}`)
const { results, nextOffset } = await response.json()import os
import requests
response = requests.get(
"https://api.medifontis.com/v1/drugs",
params={"country": "gb", "q": "amoxicillin"},
headers={"Authorization": f"Bearer {os.environ['MEDIFONTIS_API_KEY']}"},
timeout=10,
)
response.raise_for_status()
results = response.json()["results"]
{
"country": "gb",
"results": [
{
"country": "gb",
"sourceId": "gb.nhsbsa.bnf-snomed",
"id": "gb:nhsbsa:dmd:196111000001109",
"kind": "amp",
"name": "Almodan 125mg/5ml syrup (Teva UK Ltd)",
"data": {
"name": "Almodan 125mg/5ml syrup (Teva UK Ltd)",
"pack": null,
"level": "AMP",
"bnfCode": "0501013B0BDABAJ",
"bnfName": "Almodan 125mg/5ml syrup",
"subPack": null,
"vtmCode": "774586009",
"vtmName": "Amoxicillin",
"strength": 25,
"useDomain": "unknown",
"snomedCode": "196111000001109",
"legalCategory": "not-collected",
"targetSpecies": [],
"unitOfMeasure": null,
"packDescription": null,
"useDomainEvidence": {
"basis": "unreviewed",
"field": null,
"value": null,
"version": 1,
"sourceId": "gb.nhsbsa.bnf-snomed"
},
"patientEligibility": "not-assessed",
"productDescription": "Almodan 125mg/5ml syrup (Teva UK Ltd)",
"targetSpeciesStatus": "not-reported",
"prescriptionCategory": "unknown"
},
"region": null,
"retrievedAt": "2026-10-20T02:32:49.259Z",
"sourceUrl": "https://www.nhsbsa.nhs.uk/prescription-data/understanding-our-data/bnf-snomed-mapping",
"licence": {
"id": "OGL-UK-3.0",
"url": "https://www.nhsbsa.nhs.uk/our-policies/terms-and-conditions",
"scope": "NHSBSA monthly BNF–SNOMED mapping file; not the TRUD dm+d release",
"reviewedAt": "2026-09-28",
"attribution": "BNF SNOMED Mapping data, NHSBSA Copyright 2026. This information is licenced under the terms of the Open Government Licence.",
"documentsIncluded": false
},
"limitations": [
"Every VMP, VMPP, AMP and AMPP row of NHSBSA’s published BNF–SNOMED mapping, which follows dm+d; the full TRUD dm+d release (legal category, availability, prices) is not collected.",
"No legal category (POM, P, GSL) is published in this file, so the prescription classification stays unknown.",
"Rows without a BNF code are typically parallel imports or secondary-care products, as NHSBSA notes.",
"dm+d identifiers are SNOMED CT UK Drug Extension concept IDs as NHSBSA publishes them; no SNOMED CT release content is included.",
"A mapping row does not establish marketing, availability, reimbursement or patient eligibility."
],
"names": [
"Almodan 125mg/5ml syrup (Teva UK Ltd)",
"Almodan 125mg/5ml syrup",
"Amoxicillin"
],
"identifiers": [
{
"value": "196111000001109",
"scheme": "dmd"
},
{
"value": "0501013B0BDABAJ",
"scheme": "bnf"
},
{
"value": "774586009",
"scheme": "vtm"
}
]
}
],
"nextOffset": 2
}