Systemintegration; Zugang zu den Daten

API v1 · öffentlich

drugshortage.ch API

Direkter, strukturierter Zugriff auf alle Schweizer Arzneimittel-Lieferengpässe. Echtdaten, täglich aktualisiert, zweisprachig DE/FR. Kein Scraping – saubere REST-API mit Rate Limiting.

BASE URL drugshortage.ch/api/v1/drugshortage.php?endpoint=
💰
Zugang & Preise
⚠️ Bitte akzeptieren Sie die Nutzungsbedingungen.
Free
CHF 0
100 Req/Tag · kein Key
  • Alle Basis-Endpoints
  • JSON · Paginierung
API ausprobieren →
Pro
CHF 79/Mo
50’000 Req/Tag · API-Key
  • Alles aus Basic
  • Französisch (lang=fr)
  • CSV-Export
  • Webhooks
Enterprise
Anfrage
Unlimitiert · dediziert
  • Alles aus Pro
  • SLA · White-Label
  • Direktsupport
Anfragen →
🔑
Authentifizierung
bash
# Mit API-Key (Bearer Token)
curl -H "Authorization: Bearer IHR_API_KEY"   "https://www.drugshortage.ch/api/v1/drugshortage.php?endpoint=shortages"

# Alternativ als Parameter
curl "https://www.drugshortage.ch/api/v1/drugshortage.php?endpoint=shortages&api_key=IHR_KEY"

# Response-Header
X-RateLimit-Limit:     5000
X-RateLimit-Remaining: 4847
X-Api-Tier:           basic
Endpoints
GET shortages Paginierte Liste aller Lieferengpässe
ParameterTypPflichtBeschreibungBeispiel
searchstringVolltextsucheamoxicillin
firmastringExakter FirmennameSandoz Pharmaceuticals AG
atcstringATC-Code PräfixC09
statusstringStatus-Codes 1–11, kommagetrennt. Ohne Angabe werden abgeschlossene (9), nicht mehr im Verkauf (7) und ausser Handel (8 sowie Trade = AH) ausgeblendet; mit Angabe werden exakt diese Codes geliefert (status=8 umfasst auch Trade = AH).1,2
mutatedSincestringNur Einträge, deren letzte Mutation >= Datum ist (Format ISO YYYY-MM-DD). Ideal für inkrementelle Syncs.2026-05-01
reportedSincestringNur Einträge, deren Erstmeldung >= Datum ist (Format ISO YYYY-MM-DD). Für das Tracking von Neuzugängen.2026-05-01
pageintegerSeitennummer (Standard: 1)2
perPageintegerEinträge pro Seite (Standard: 200, max: 200)200
sortstringfeld:asc oder feld:desctage:desc
langstringProSprache (de/fr)fr
bash
curl "...?endpoint=shortages&atc=C09&perPage=3"

{
  "data": [{
    "id": 4821, "gtin": "7680654320016",
    "bezeichnung": "Olmesartan Mepha Lactab 20 mg",
    "firma": "Mepha Pharma AG", "atcCode": "C09CA08",
    "statusCode": 1, "statusText": "1 aktuell keine Lieferungen",
    "lieferfaehigkeitDate": "15.07.2026",
    "ersteMeldungDate": "20.04.2026",
    "ersteInfoFirmaDate": "20.04.2026",
    "dauer": "langer Engpass (> 6 Wochen)",
    "datumLetzteMutation": "05.05.2026",
    "isBwl": true, "bewertung": 1
  }],
  "total": 55, "page": 1, "perPage": 3, "pages": 19
}
GET shortages/{gtin} Einzelprodukt nach GTIN
bash
curl "...?endpoint=shortages/7680654320016"
GET stats Aggregierte Kennzahlen der Versorgungslage
bash
curl "...?endpoint=stats"

{ "data": { "active": 719, "uniqueAtcGroups": 294,
  "avgDaysSinceMeldung": 178.8, "regulatory": { "bwl": 133, "who": 214 },
  "topAtcGroups": [{ "atc": "N05", "count": 63 }, ...] } }
GET timeline Wöchentliche Zeitreihe neuer Meldungen
ParameterTypPflichtBeschreibung
weeksintegerWochen zurück (4–260, Standard: 52)
GET supply Versorgungsengpässe nach Wirkstoff/Dosierung exklusiv drugshortage.ch

Wirkstoffe/Dosierungen bei denen 50–100% aller Präparate nicht lieferbar sind. Dieser Endpoint ist exklusiv bei drugshortage.ch.

bash
curl "...?endpoint=supply"
GET alternatives?gtin= Alternativen für ein Produkt
bash
curl "...?endpoint=alternatives&gtin=7680654320016"

{ "gleicheFirma": [], "coMarketing": [...], "alleAlternativen": [...] }
GET company/{firma} Firmenprofil mit Bewertung
bash
curl "...?endpoint=company/Sandoz%20Pharmaceuticals%20AG"
GET export/csv Gefilterter CSV-Export Pro+
python
import pandas as pd
df = pd.read_csv("...?endpoint=export/csv&atc=N06", encoding="utf-8-sig")
GET health System-Health-Check
json
{ "status": "healthy", "database": { "healthy": true, "latencyMs": 1.1 } }
🏷️
Status-Codes
CodeBedeutung
1aktuell keine Lieferungen
2angekündigter Engpass
3Lieferungen kontingentiert / eingeschränkt
4für Spitäler verfügbar; Retail nicht verfügbar
5für Spitäler verfügbar; Retail eingeschränkt
6Spitäler eingeschränkt; Retail nicht verfügbar
7registriert – nicht mehr im Verkauf
8abregistriert – ausser Handel (auch via Trade = AH gekennzeichnet)
9abgeschlossen
10Versorgung erfolgt mit Pflichtlagerware
11Grossist eingeschränkt; Direktbezug bei Firma
Bitte leiten Sie den Zustand „abgeschlossen“ nicht aus dem Fehlen eines Eintrags in der Standardliste ab. Ein Eintrag kann aus mehreren Gründen fehlen (z. B. Code 7, 8 oder 9, oder ausser Handel via Trade = AH). Fragen Sie abgeschlossene Engpässe gezielt mit status=9 ab, nicht mehr verkaufte Produkte mit status=7. Ausser Handel befindliche Produkte erhalten Sie mit status=8 – dies liefert sowohl Einträge mit Status 8 als auch solche mit Trade = AH (die dauerhafte Kennzeichnung; Status 8 dient nur als Übergangslösung).
📡
HTTP Status Codes
200 Erfolgreich
400 Ungültige Parameter
401 Ungültiger API-Key
404 Nicht gefunden
429 Rate Limit überschritten
500 Serverfehler

Fragen zur API?

Wir helfen gerne bei der Integration.

Kontakt aufnehmen →