Exporter des fiches en CSV
GET/v1/drugs/export
Télécharge les fiches d’un pays sous forme de fichier CSV : soit toutes les fiches qui portent un nom exact, soit un type entier de fiches d’une source. Les exportations font partie des forfaits Pro et Business, et celles de sources entières du forfait Business. Seules les sources publiées sous licence ouverte sont exportées ; les fiches de toute autre source sont exclues. Un fichier contient jusqu’à 5 000 fiches, et l’en-tête de réponse X-Medifontis-Next fournit le curseur du fichier suivant.
Paramètres
-
countrystring Obligatoire - Code pays ISO 3166-1 à deux lettres, en minuscules. Chaque recherche porte sur un seul pays.
-
namestring - Exporte les fiches qui portent ce nom exact, de 3 à 120 caractères. Les accents et la casse sont ignorés. Utilisez soit name, soit sourceId et kind.
-
kindsstring - Avec name : ne conserve que ces types de fiches, sous forme de paires sourceId:kind du pays demandé, séparées par des virgules, 12 au maximum.
-
sourceIdstring - Exporte une source entière du pays demandé, par exemple it.aifa.packages. Nécessite kind.
-
kindstring - Avec sourceId : le type de fiche à exporter, par exemple packages.
-
afterstring - Le curseur fourni par l’en-tête X-Medifontis-Next du fichier précédent. Omettez-le pour le premier fichier.
Renvoie
-
bodytext/csv - Une ligne d’en-tête et une ligne par fiche, en UTF-8 : country, source_id, record_id, kind, name, other_names, identifiers, holder, administrative_status, prescription_category, retrieved_at, source_url, licence et attribution. Les identifiants sont écrits sous la forme scheme=value, séparés par des barres verticales.
-
X-Medifontis-Rowsheader - Le nombre de fiches contenues dans ce fichier.
-
X-Medifontis-Nextheader - Le curseur du fichier suivant. Absent lorsque ce fichier est le dernier.
Erreurs
400 401
403 404
429 503 ·
Erreurs et limites de requêtes
curl -G https://api.medifontis.com/v1/drugs/export \
-H "Authorization: Bearer $MEDIFONTIS_API_KEY" \
--data-urlencode "country=it" \
--data-urlencode "name=TACHIPIRINA" \
-o medicines.csvimport { writeFile } from 'node:fs/promises'
const params = new URLSearchParams({ country: 'it', name: 'TACHIPIRINA' })
let csv = ''
for (let after; ; ) {
if (after) params.set('after', after)
const response = await fetch(`https://api.medifontis.com/v1/drugs/export?${params}`, {
headers: { Authorization: `Bearer ${process.env.MEDIFONTIS_API_KEY}` },
})
if (!response.ok) throw new Error(`Medifontis ${response.status}`)
const page = await response.text()
// Later files repeat the header row.
csv += csv ? page.slice(page.indexOf('\n') + 1) : page
after = response.headers.get('x-medifontis-next')
if (!after) break
}
await writeFile('medicines.csv', csv)import os
import requests
params = {"country": "it", "name": "TACHIPIRINA"}
pages = []
while True:
response = requests.get(
"https://api.medifontis.com/v1/drugs/export",
params=params,
headers={"Authorization": f"Bearer {os.environ['MEDIFONTIS_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
text = response.text
# Later files repeat the header row.
pages.append(text if not pages else text.split("\n", 1)[1])
cursor = response.headers.get("X-Medifontis-Next")
if not cursor:
break
params["after"] = cursor
with open("medicines.csv", "w", encoding="utf-8", newline="") as file:
file.write("".join(pages))
country,source_id,record_id,kind,name,other_names,identifiers,holder,administrative_status,prescription_category,retrieved_at,source_url,licence,attribution
it,it.aifa.packages,it:aifa:packages:012745016,packages,TACHIPIRINA,PARACETAMOLO,aic=012745016 | atc=N02BE01,AZIENDE CHIMICHE RIUNITE ANGELINI FRANCESCO A.C.R.A.F. S.P.A.,Autorizzata,non-prescription,2026-11-09T03:30:49.159Z,https://drive.aifa.gov.it/farmaci/confezioni_fornitura.csv,CC-BY-4.0,Agenzia Italiana del Farmaco (AIFA)