Search medicines
GET /v1/drugs searches every record of every source in one country by name, active ingredient or identifier.
How matching works
- Names match anywhere in the text, so part of a brand name finds it.
- Identifiers match from their first character, so the beginning of a code finds every record whose code starts with it.
- Accents and case are ignored.
- The query is literal text, without wildcards or operators, and needs 3 to 120 characters.
Ranking
Exact matches come first, then records whose name starts with the query, then other matches; ties are ordered by record name.
๐ฌ๐ง Searchable identifiers
These are the identifier schemes of each source of this country (United Kingdom):
| Source | Publisher | Records | Identifiers |
|---|---|---|---|
gb.mhra.productsMHRA product licences |
Medicines and Healthcare products Regulatory Agency | 79,563 |
licence
|
gb.nhsbsa.bnf-snomeddm+d products with BNF codes |
NHS Business Services Authority | 406,290 |
dmd bnf vtm
|
gb.vmd.product-informationVeterinary medicines |
Veterinary Medicines Directorate | 6,385 |
vmd-product vmd-vm-number
|
Filter by record kind
A source can publish several kinds of records, such as packages, active ingredients or ATC classes. Pass kinds to keep only the ones your application uses. The filter applies before paging, so other kinds cannot push them off a page.
curl -G https://api.medifontis.com/v1/drugs \
-H "Authorization: Bearer $MEDIFONTIS_API_KEY" \
--data-urlencode "country=gb" \
--data-urlencode "q=amoxicillin" \
--data-urlencode "kinds=gb.nhsbsa.bnf-snomed:amp"
kinds takes up to 12 comma-separated sourceId:kind pairs, all of the requested country. A malformed pair, or one of another country, answers 400.
Filter by use and species
useDomain and species keep only human or veterinary medicines, or only those for a target species. Human and veterinary medicines.
Pagination
limit sets the page size, from 1 to 50 (default 20), and offset skips results, up to 10000. Each response carries nextOffset, the offset of the next page, or null on the last one.
Example
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)",
"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"
}
],
"data": {
"name": "Almodan 125mg/5ml syrup (Teva UK Ltd)",
"level": "AMP",
"bnfCode": "0501013B0BDABAJ",
"bnfName": "Almodan 125mg/5ml syrup",
"vtmCode": "774586009",
"vtmName": "Amoxicillin"
},
"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",
"attribution": "BNF SNOMED Mapping data, NHSBSA Copyright 2026. This information is licenced under the terms of the Open Government Licence."
}
},
{
"country": "gb",
"sourceId": "gb.nhsbsa.bnf-snomed",
"id": "gb:nhsbsa:dmd:774011000001100",
"kind": "amp",
"name": "Amix 125 oral suspension (Ashbourne Pharmaceuticals Ltd)",
"names": [
"Amix 125 oral suspension (Ashbourne Pharmaceuticals Ltd)",
"Amix 125 oral suspension",
"Amoxicillin"
],
"identifiers": [
{
"value": "774011000001100",
"scheme": "dmd"
},
{
"value": "0501013B0BFAGAS",
"scheme": "bnf"
},
{
"value": "774586009",
"scheme": "vtm"
}
],
"data": {
"name": "Amix 125 oral suspension (Ashbourne Pharmaceuticals Ltd)",
"level": "AMP",
"bnfCode": "0501013B0BFAGAS",
"bnfName": "Amix 125 oral suspension",
"vtmCode": "774586009",
"vtmName": "Amoxicillin"
},
"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",
"attribution": "BNF SNOMED Mapping data, NHSBSA Copyright 2026. This information is licenced under the terms of the Open Government Licence."
}
}
],
"nextOffset": 2
}