Doku / Erste Schritte

Schnellstart

Holen Sie sich einen API-Schlüssel, suchen Sie ein Arzneimittel und lesen Sie das Ergebnis. Das dauert etwa fünf Minuten.

1. API-Schlüssel erhalten

Erstellen Sie auf der Registrierungsseite einen Schlüssel. Er beginnt mit mf_live_ und funktioniert sofort für jedes Land. Ihren API-Schlüssel erhalten.

Speichern Sie ihn in einer Umgebungsvariablen auf Ihrem Server:

export MEDIFONTIS_API_KEY="mf_live_…"

Rufen Sie GET /v1/drugs mit einem Ländercode und einem Suchbegriff auf:

GET /v1/drugs
curl -G https://api.medifontis.com/v1/drugs \
  -H "Authorization: Bearer $MEDIFONTIS_API_KEY" \
  --data-urlencode "country=de" \
  --data-urlencode "q=ozempic"

3. Antwort lesen

Jedes Ergebnis ist ein Datensatz einer Quelle. Die Felder, die Sie am häufigsten nutzen werden, sind name, identifiers, sourceId und kind, data und licence.

Erstes Ergebnis
{
  "country": "de",
  "sourceId": "de.ema.article57",
  "id": "de:ema:article57:3f301c505c8d15200fcc",
  "kind": "products",
  "name": "Ozempic",
  "data": {
    "name": "Ozempic",
    "holder": "Novo Nordisk A/S",
    "routes": [
      "Subcutaneous Use"
    ],
    "marketed": null,
    "useDomain": "unknown",
    "databaseDate": "2026-10-09",
    "sourceStatus": null,
    "supplyRegime": null,
    "listingStatus": "listed-as-authorised",
    "targetSpecies": [],
    "sourceRowCount": 1,
    "activeSubstances": [
      "Semaglutide"
    ],
    "documentRevision": "90",
    "documentReference": "EMA/518502/2018",
    "useDomainEvidence": {
      "basis": "unreviewed",
      "field": null,
      "value": null,
      "version": 1,
      "sourceId": "de.ema.article57"
    },
    "patientEligibility": "not-assessed",
    "centrallyAuthorised": true,
    "targetSpeciesStatus": "not-reported",
    "activeSubstancesText": "Semaglutide",
    "administrativeStatus": "unknown",
    "prescriptionCategory": "unknown",
    "prescriptionRequired": null,
    "authorisationTerritory": "European Union",
    "pharmacovigilanceContacts": [
      {
        "email": "SOSPON@novonordisk.com",
        "phone": "+45 4444 8888",
        "masterFileLocation": "Denmark"
      }
    ]
  },
  "region": null,
  "retrievedAt": "2026-10-20T01:00:19.432Z",
  "sourceUrl": "https://www.ema.europa.eu/en/documents/other/article-57-product-data_en.xlsx",
  "licence": {
    "id": "LicenseRef-EMA-Legal-Notice",
    "url": "https://www.ema.europa.eu/en/about-us/legal-notice",
    "scope": "rows of EMA’s public Article 57 product data authorised in Germany or centrally in the European Union",
    "reviewedAt": "2026-09-29",
    "attribution": "Source: European Medicines Agency (EMA), Article 57 product data (EMA/518502/2018), based on data submitted by marketing-authorisation holders.",
    "documentsIncluded": false
  },
  "limitations": [
    "Germany has no free, complete official bulk medicine database with PZNs: BfArM’s AMIce public search is interactive only, its § 31b reference database is supplied to commercial users on request, and the GKV-Spitzenverband and BfArM price lists are PDF-only for reasons of usage rights.",
    "EMA’s Article 57 export names every medicinal product authorised in Germany (national, mutual-recognition and decentralised procedures) and every centrally authorised EU product, as submitted by marketing-authorisation holders; submissions can lag an authorisation change.",
    "A record is one product name, active-substance text, route and marketing-authorisation holder. Strengths, forms, packs, PZNs, authorisation numbers and dates are not published, so rows EMA lists more than once for one such product are kept together with their count.",
    "The export publishes no legal category (verschreibungspflichtig, apothekenpflichtig, freiverkäuflich), so the prescription classification stays unknown; listing is not proof of current authorisation, marketing, availability or reimbursement.",
    "Active-substance names are the English xEVMPD names EMA publishes, not German INN spellings.",
    "EMA’s legal notice permits commercial and non-commercial reproduction with acknowledgement of EMA as the source; its exception for third-party content leaves the status of holder-submitted text unconfirmed."
  ],
  "names": [
    "Ozempic",
    "Semaglutide"
  ],
  "identifiers": []
}

4. Durch die Ergebnisse blättern

nextOffset ist der Offset der nächsten Seite oder null auf der letzten Seite. Übergeben Sie ihn als offset, um die nächste Seite zu lesen:

Node.js
async function* searchAll(country, q) {
  let offset = 0
  while (offset !== null) {
    const params = new URLSearchParams({ country, q, limit: '50', offset: String(offset) })
    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 page = await response.json()
    yield* page.results
    offset = page.nextOffset
  }
}

Nächste Schritte