BDPM API: search French medicines and CIP13 codes
Search published French medicine records without maintaining your own BDPM file importer.
Search by name
Create a free key, keep it on your server, then make this request. Node.js needs no package; the Python example uses requests (pip install requests).
Get your free API keycurl -G https://api.medifontis.com/v1/drugs \
-H "Authorization: Bearer mf_live_your_api_key" \
--data-urlencode "country=fr" \
--data-urlencode "q=doliprane"const params = new URLSearchParams({ country: 'fr', q: 'doliprane' })
const response = await fetch(`https://api.medifontis.com/v1/drugs?${params}`, {
headers: { Authorization: 'Bearer mf_live_your_api_key' },
})
if (!response.ok) throw new Error(`Medifontis ${response.status}`)
const { results, nextOffset } = await response.json()import requests
response = requests.get(
"https://api.medifontis.com/v1/drugs",
params={"country": "fr", "q": "doliprane"},
headers={"Authorization": "Bearer mf_live_your_api_key"},
timeout=10,
)
response.raise_for_status()
results = response.json()["results"]
Keep specialty and presentation codes distinct
CIS identifies a specialty; CIP13 and CIP7 identify presentations. Replace q with the code you have. Identifier search matches prefixes, so compare the returned identifier with the full input before choosing a record.
Keep the record id and sourceId together with its licence, source URL and retrieval date. Do not join products by name or interpret a listed medicine as pharmacy stock.
const exact = results.filter(record =>
record.identifiers.some(id =>
id.scheme === 'cip13' && id.value === requestedCip13))
Source and scope
The BDPM source covers the published specialty, presentation, composition and dispensing-condition tables. It does not include patient leaflets or SmPC contents. Preserve attribution and source limitations in your application.
BDPM