engpass.radarSchweizer Medikamenten-Engpässe
Zur Übersicht

API Dokumentation

v1 — öffentlich

Freier Zugang zu allen Schweizer Arzneimittel-Lieferengpässen. Kein API-Key, kein Login erforderlich. Bitte fair nutzen — max. ~300 Requests/Tag empfohlen.

Base URL

https://engpassradar.ch/api/v1

Alle Antworten sind UTF-8 JSON. CORS ist aktiviert (Access-Control-Allow-Origin: *).

Endpunkte

GET/api/v1/shortages
GET/api/v1/shortages/:gtin
GET/api/v1/stats
GET/api/v1/timeline
GET/api/alternatives
POST/api/alternatives/batch
GET/api/export/csv
GET/api/health
GET

/api/v1/shortages

Gibt eine paginierte, filterbare Liste aller gemeldeten Engpässe zurück.

ParameterTypPflichtBeschreibungBeispiel
searchstringVolltextsuche auf Bezeichnung, Firma, ATC-Codepregabalin
statusstringStatus-Code(s) 1–5, kommagetrennt1,4
firmastringExakter FirmennameSandoz
atcstringATC-Code-PräfixC09
neuintegerNur Engpässe ≤ 7 Tage alt1
pageintegerSeitennummer (Standard: 1)2
perPageintegerEinträge pro Seite (max: 200)100
sortstringfeld:asc oder feld:desctageSeitMeldung:desc
curl "https://engpassradar.ch/api/v1/shortages?atc=C09&status=1,4&perPage=20"

{
  "data": [
    {
      "id": 4821,
      "gtin": "7680654320016",
      "bezeichnung": "Olmesartan Mepha Lactab 20 mg",
      "firma": "Mepha Pharma AG",
      "atcCode": "C09CA08",
      "statusCode": 1,
      "statusText": "Direkt gemeldet",
      "tageSeitMeldung": 183,
      "isActive": true,
      "datumLieferfahigkeit": "31.12.2026",
      ...
    }
  ],
  "total": 68,
  "page": 1,
  "perPage": 20,
  "meta": { "generatedAt": "2026-04-19T10:00:00Z", "source": "engpassradar.ch" }
}
GET

/api/v1/shortages/:gtin

Vollständige Details zu einem einzelnen Produkt inklusive Severity Score Breakdown.

ParameterTypPflichtBeschreibungBeispiel
gtinstringjaGTIN des Produkts (7–14 Ziffern), im URL-Pfad7680654320016
curl "https://engpassradar.ch/api/v1/shortages/7680654320016"

{
  "data": {
    "gtin": "7680654320016",
    "bezeichnung": "Olmesartan Mepha Lactab 20 mg",
    "firma": "Mepha Pharma AG",
    "atcCode": "C09CA08",
    "statusCode": 1,
    "tageSeitMeldung": 183,
    "isActive": true,
    "isBwl": true,
    "score": {
      "total": 57,
      "label": "Mittel",
      "breakdown": {
        "transparency": 5,
        "duration": 22,
        "noAlternatives": 15,
        "critical": 15
      }
    },
    "bemerkungen": "Engpass aufgrund erhöhter Nachfrage...",
    "voraussichtlicheDauer": "Q3 2026",
    ...
  }
}
GET

/api/v1/stats

Aggregierte Kennzahlen der aktuellen Versorgungslage. Nützlich für Dashboards und Monitoring.

curl "https://engpassradar.ch/api/v1/stats"

{
  "data": {
    "active": 705,
    "uniqueAtcGroups": 148,
    "avgDaysSinceMeldung": 203,
    "lastUpdated": "2026-04-19T03:15:00Z",
    "duration": {
      "under2Weeks": 42,
      "weeks2to6": 89,
      "weeks6to26": 201,
      "months6to12": 178,
      "over1Year": 195
    },
    "regulatory": {
      "bwl": 87,
      "pflichtlager": 112,
      "kassenpflichtig": 534
    },
    "topAtcGroups": [
      { "atc": "N02", "bezeichnung": "Analgetika", "count": 54 },
      ...
    ]
  }
}
GET

/api/v1/timeline

Wöchentliche Zeitreihe: neue Engpässe und aktiver Bestand. Ideal für Trendanalysen.

ParameterTypPflichtBeschreibungBeispiel
weeksintegerAnzahl Wochen zurück (4–260, Standard: 52)104
curl "https://engpassradar.ch/api/v1/timeline?weeks=12"

{
  "data": [
    { "week": "2026-W14", "newShortages": 18, "activeShortages": 712 },
    { "week": "2026-W15", "newShortages": 22, "activeShortages": 705 },
    ...
  ],
  "meta": { "weeks": 12, "generatedAt": "2026-04-19T10:00:00Z" }
}
GET

/api/alternatives

Wirkstoffgleiche Alternativen für ein Produkt, aufgeteilt in gleiche Firma, Co-Marketing und alle Alternativen. Antworten werden 24 Stunden gecacht.

ParameterTypPflichtBeschreibungBeispiel
gtinstringjaGTIN des Produkts7680654320016
curl "https://engpassradar.ch/api/alternatives?gtin=7680654320016"

{
  "gleicheFirma": [],
  "coMarketing": [
    { "bezeichnung": "Olmesartan Spirig HC Lactab 20 mg", "firma": "Spirig HealthCare", "gtin": "7680591620011" }
  ],
  "alleAlternativen": [
    { "bezeichnung": "Olmesartan Sandoz Filmtabl 20 mg", "firma": "Sandoz", "gtin": "7680630420018", "typ": "G" }
  ]
}
POST

/api/alternatives/batch

Alternativenabfrage für bis zu 50 GTINs in einem einzigen Request. Deutlich effizienter als N Einzelanfragen.

curl -X POST "https://engpassradar.ch/api/alternatives/batch" \
  -H "Content-Type: application/json" \
  -d '{"gtins": ["7680654320016", "7680591620011"]}'

[
  { "gtin": "7680654320016", "data": { "alleAlternativen": [...], ... } },
  { "gtin": "7680591620011", "data": null }
]

data: null wenn für eine GTIN noch keine gecachten Alternativen vorhanden sind.

GET

/api/export/csv

Gibt alle (gefilterten) Engpässe als CSV-Datei zurück. Direkt in Excel oder Python pandas importierbar.

ParameterTypPflichtBeschreibungBeispiel
searchstringVolltextsuchepregabalin
statusstringStatus-Code(s), kommagetrennt1,4
firmastringExakter FirmennameNovartis
atcstringATC-Code-PräfixN06
# Alle Neuropharmaka-Engpässe als CSV herunterladen
curl "https://engpassradar.ch/api/export/csv?atc=N06" -o n06-engpaesse.csv

# In Python:
import pandas as pd
df = pd.read_csv("https://engpassradar.ch/api/export/csv?atc=N06")

Felder: Bezeichnung, Firma, ATC-Code, Status, Lieferbar ab, Letzte Mutation, Tage seit Meldung, GTIN, Pharmacode, Erstmals gesehen

GET

/api/health

System-Health-Check. Gibt 200 wenn alle Systeme bereit,503 bei Problemen.

curl "https://engpassradar.ch/api/health"

{
  "status": "healthy",
  "timestamp": "2026-04-19T10:00:00Z",
  "database": { "healthy": true, "latencyMs": 12 },
  "cache": { "entries": 84, "utilizationPercent": "42.0" }
}

HTTP Status Codes

200Erfolgreich
400Ungültige Parameter (z. B. falsche GTIN)
404Produkt nicht gefunden
500Interner Serverfehler
503System degradiert (nur bei /api/health)

Caching

/api/v1/shortagess-maxage: 5 minstale: 1 h
/api/v1/shortages/:gtins-maxage: 5 minstale: 1 h
/api/v1/statss-maxage: 5 minstale: 1 h
/api/v1/timelines-maxage: 1 hstale: 24 h
/api/alternativess-maxage: 1 hstale: 24 h

RSS-Feeds

/rss.xmlAlle aktuellen Engpässe
/wirkstoff/{atc}/feed.xmlEngpässe nach ATC-Gruppe (z. B. /wirkstoff/C09/feed.xml)