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.
Empfohlen
Basic
CHF 29/Mo
5’000 Req/Tag · API-Key
- Alle Endpoints
- Suche & Filter
- E-Mail Support
Pro
CHF 79/Mo
50’000 Req/Tag · API-Key
- Alles aus Basic
- Französisch (lang=fr)
- CSV-Export
- Webhooks
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
▾
| Parameter | Typ | Pflicht | Beschreibung | Beispiel |
|---|---|---|---|---|
| search | string | – | Volltextsuche | amoxicillin |
| firma | string | – | Exakter Firmenname | Sandoz Pharmaceuticals AG |
| atc | string | – | ATC-Code Präfix | C09 |
| status | string | – | Status-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 |
| mutatedSince | string | – | Nur Einträge, deren letzte Mutation >= Datum ist (Format ISO YYYY-MM-DD). Ideal für inkrementelle Syncs. | 2026-05-01 |
| reportedSince | string | – | Nur Einträge, deren Erstmeldung >= Datum ist (Format ISO YYYY-MM-DD). Für das Tracking von Neuzugängen. | 2026-05-01 |
| page | integer | – | Seitennummer (Standard: 1) | 2 |
| perPage | integer | – | Einträge pro Seite (Standard: 200, max: 200) | 200 |
| sort | string | – | feld:asc oder feld:desc | tage:desc |
| lang | string | Pro | Sprache (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
▾
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| weeks | integer | – | Wochen 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>in=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
| Code | Bedeutung |
|---|---|
| 1 | aktuell keine Lieferungen |
| 2 | angekündigter Engpass |
| 3 | Lieferungen kontingentiert / eingeschränkt |
| 4 | für Spitäler verfügbar; Retail nicht verfügbar |
| 5 | für Spitäler verfügbar; Retail eingeschränkt |
| 6 | Spitäler eingeschränkt; Retail nicht verfügbar |
| 7 | registriert – nicht mehr im Verkauf |
| 8 | abregistriert – ausser Handel (auch via Trade = AH gekennzeichnet) |
| 9 | abgeschlossen |
| 10 | Versorgung erfolgt mit Pflichtlagerware |
| 11 | Grossist 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.
