{"id":21586,"date":"2026-06-03T23:30:03","date_gmt":"2026-06-03T21:30:03","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21586"},"modified":"2026-06-04T00:14:23","modified_gmt":"2026-06-03T22:14:23","slug":"systemintegration-zugang-zu-den-daten","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/systemintegration-zugang-zu-den-daten\/","title":{"rendered":"Systemintegration; Zugang zu den Daten"},"content":{"rendered":"\n<!-- ============================================================\n     drugshortage.ch API Dokumentation\n     Seite: \"api-dokumentation\" (\u00f6ffentlich)\n     ============================================================ -->\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600&family=DM+Sans:wght@300;400;500;600;700&display=swap');\n\n:root {\n  --red:    #e53e3e;\n  --red-d:  #c53030;\n  --navy:   #1a202c;\n  --slate:  #2d3748;\n  --muted:  #718096;\n  --border: #e2e8f0;\n  --bg:     #f7fafc;\n  --white:  #ffffff;\n  --green:  #276749;\n  --mono:   'IBM Plex Mono', monospace;\n  --sans:   'DM Sans', sans-serif;\n}\n\n#apidoc * { box-sizing: border-box; margin: 0; padding: 0; }\n#apidoc { font-family: var(--sans); color: var(--slate); line-height: 1.6; font-size: 15px; }\n\n\/* Hero *\/\n.doc-hero {\n  background: var(--navy);\n  color: #fff;\n  padding: 48px 32px 40px;\n  border-radius: 12px;\n  margin-bottom: 32px;\n  position: relative;\n  overflow: hidden;\n}\n.doc-hero::before {\n  content: '';\n  position: absolute;\n  top: -60px; right: -60px;\n  width: 300px; height: 300px;\n  background: var(--red);\n  border-radius: 50%;\n  opacity: .08;\n}\n.doc-hero-tag {\n  display: inline-block;\n  background: var(--red);\n  color: #fff;\n  font-family: var(--mono);\n  font-size: 11px;\n  font-weight: 600;\n  padding: 3px 10px;\n  border-radius: 4px;\n  letter-spacing: .5px;\n  margin-bottom: 14px;\n}\n.doc-hero h1 {\n  font-size: 28px;\n  font-weight: 700;\n  color: #fff;\n  margin-bottom: 10px;\n  line-height: 1.2;\n}\n.doc-hero p {\n  color: #a0aec0;\n  font-size: 14px;\n  max-width: 600px;\n  line-height: 1.7;\n}\n.doc-base-url {\n  margin-top: 20px;\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  background: rgba(255,255,255,.07);\n  border: 1px solid rgba(255,255,255,.12);\n  border-radius: 8px;\n  padding: 10px 16px;\n  font-family: var(--mono);\n  font-size: 13px;\n  color: #e2e8f0;\n}\n.doc-base-url span { color: #fc8181; }\n\n\/* Tiers *\/\n.doc-tiers {\n  display: flex;\n  gap: 14px;\n  flex-wrap: wrap;\n  margin-bottom: 32px;\n}\n.doc-tier {\n  flex: 1;\n  min-width: 160px;\n  border: 1px solid var(--border);\n  border-radius: 10px;\n  padding: 18px 20px;\n  background: var(--white);\n}\n.doc-tier-name {\n  font-size: 11px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: .8px;\n  color: var(--muted);\n  margin-bottom: 6px;\n}\n.doc-tier-price {\n  font-size: 22px;\n  font-weight: 700;\n  color: var(--navy);\n  margin-bottom: 6px;\n}\n.doc-tier-req {\n  font-size: 12px;\n  color: var(--muted);\n  margin-bottom: 10px;\n}\n.doc-tier-features { list-style: none; }\n.doc-tier-features li {\n  font-size: 12px;\n  color: var(--slate);\n  padding: 2px 0;\n}\n.doc-tier-features li::before { content: '\u2713 '; color: var(--green); font-weight: 700; }\n.doc-tier.featured {\n  border-color: var(--red);\n  box-shadow: 0 0 0 1px var(--red);\n}\n.doc-tier.featured .doc-tier-name { color: var(--red); }\n\n\/* Section *\/\n.doc-section {\n  margin-bottom: 28px;\n}\n.doc-section-title {\n  font-size: 13px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: .8px;\n  color: var(--muted);\n  margin-bottom: 14px;\n  padding-bottom: 8px;\n  border-bottom: 1px solid var(--border);\n}\n\n\/* Endpoint Cards *\/\n.doc-endpoint {\n  border: 1px solid var(--border);\n  border-radius: 10px;\n  overflow: hidden;\n  margin-bottom: 12px;\n  background: var(--white);\n}\n.doc-endpoint-header {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  padding: 14px 18px;\n  cursor: pointer;\n  user-select: none;\n  transition: background .15s;\n}\n.doc-endpoint-header:hover { background: var(--bg); }\n.doc-method {\n  font-family: var(--mono);\n  font-size: 11px;\n  font-weight: 600;\n  padding: 3px 8px;\n  border-radius: 4px;\n  min-width: 42px;\n  text-align: center;\n}\n.doc-method-get  { background: #ebf8ff; color: #2b6cb0; }\n.doc-method-post { background: #f0fff4; color: #276749; }\n.doc-endpoint-path {\n  font-family: var(--mono);\n  font-size: 13px;\n  color: var(--navy);\n  font-weight: 600;\n  flex: 1;\n}\n.doc-endpoint-desc {\n  font-size: 12px;\n  color: var(--muted);\n}\n.doc-endpoint-badge {\n  font-size: 10px;\n  font-weight: 600;\n  padding: 2px 7px;\n  border-radius: 10px;\n  background: #fefcbf;\n  color: #744210;\n}\n.doc-endpoint-body {\n  display: none;\n  border-top: 1px solid var(--border);\n  padding: 18px;\n}\n.doc-endpoint-body.open { display: block; }\n\n\/* Params Table *\/\n.doc-params { width: 100%; border-collapse: collapse; margin-bottom: 16px; font-size: 12px; }\n.doc-params th {\n  text-align: left;\n  padding: 6px 10px;\n  background: var(--navy);\n  color: #fff;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .3px;\n}\n.doc-params td {\n  padding: 7px 10px;\n  border-bottom: 1px solid var(--border);\n  vertical-align: top;\n}\n.doc-params tr:last-child td { border-bottom: none; }\n.doc-params tr:nth-child(even) td { background: var(--bg); }\n.doc-param-name { font-family: var(--mono); color: var(--navy); font-weight: 600; }\n.doc-param-type { font-family: var(--mono); color: #6b46c1; font-size: 11px; }\n.doc-param-req  { color: var(--red); font-weight: 700; font-size: 11px; }\n.doc-param-opt  { color: var(--muted); font-size: 11px; }\n\n\/* Code Block *\/\n.doc-code-block {\n  background: var(--navy);\n  border-radius: 8px;\n  overflow: hidden;\n  margin-bottom: 14px;\n}\n.doc-code-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 8px 14px;\n  background: rgba(255,255,255,.05);\n  font-size: 11px;\n  color: #a0aec0;\n  font-family: var(--mono);\n}\n.doc-code-copy {\n  cursor: pointer;\n  color: #68d391;\n  font-size: 11px;\n  border: none;\n  background: none;\n  font-family: var(--mono);\n}\n.doc-code-copy:hover { color: #fff; }\npre.doc-pre {\n  padding: 14px 16px;\n  overflow-x: auto;\n  font-family: var(--mono);\n  font-size: 12px;\n  line-height: 1.6;\n  color: #e2e8f0;\n  white-space: pre;\n}\n.doc-pre .kw  { color: #fc8181; }\n.doc-pre .str { color: #68d391; }\n.doc-pre .key { color: #90cdf4; }\n.doc-pre .num { color: #fbd38d; }\n.doc-pre .cm  { color: #718096; }\n\n\/* HTTP Codes *\/\n.doc-http-codes { display: flex; gap: 10px; flex-wrap: wrap; }\n.doc-http-code {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 8px 14px;\n  border-radius: 8px;\n  font-size: 12px;\n  border: 1px solid var(--border);\n}\n.doc-http-num { font-family: var(--mono); font-weight: 700; font-size: 13px; }\n.doc-http-200 .doc-http-num { color: var(--green); }\n.doc-http-400 .doc-http-num { color: #d69e2e; }\n.doc-http-401 .doc-http-num { color: var(--red); }\n.doc-http-404 .doc-http-num { color: var(--red); }\n.doc-http-429 .doc-http-num { color: #d69e2e; }\n.doc-http-500 .doc-http-num { color: var(--red); }\n\n\/* Rate limit headers *\/\n.doc-headers { font-family: var(--mono); font-size: 12px; background: var(--bg); border-radius: 8px; padding: 14px; }\n.doc-headers div { padding: 2px 0; }\n.doc-headers .hk { color: #2b6cb0; }\n.doc-headers .hv { color: var(--green); }\n\n\/* CTA *\/\n.doc-cta {\n  background: linear-gradient(135deg, var(--navy) 0%, #2d3748 100%);\n  border-radius: 12px;\n  padding: 32px;\n  text-align: center;\n  color: #fff;\n  margin-top: 32px;\n}\n.doc-cta h3 { font-size: 20px; margin-bottom: 8px; }\n.doc-cta p  { color: #a0aec0; font-size: 13px; margin-bottom: 20px; }\n.doc-cta-btn {\n  display: inline-block;\n  background: var(--red);\n  color: #fff;\n  padding: 11px 28px;\n  border-radius: 8px;\n  font-weight: 600;\n  font-size: 14px;\n  text-decoration: none;\n  transition: background .2s;\n}\n.doc-cta-btn:hover { background: var(--red-d); }\n\n\/* Exclusive badge *\/\n.doc-exclusive {\n  display: inline-block;\n  background: linear-gradient(135deg, #e53e3e, #c53030);\n  color: #fff;\n  font-size: 10px;\n  font-weight: 700;\n  padding: 2px 7px;\n  border-radius: 4px;\n  letter-spacing: .3px;\n  vertical-align: middle;\n}\n\n@media (max-width: 768px) {\n  .doc-hero { padding: 28px 20px; }\n  .doc-hero h1 { font-size: 22px; }\n  .doc-tiers { flex-direction: column; }\n}\n<\/style>\n\n<div id=\"apidoc\">\n\n  <!-- Hero -->\n  <div class=\"doc-hero\">\n    <div class=\"doc-hero-tag\">API v1 \u2014 \u00f6ffentlich<\/div>\n    <h1>drugshortage.ch API<\/h1>\n    <p>Direkter Zugriff auf alle Schweizer Arzneimittel-Lieferengp\u00e4sse. Echtdaten, t\u00e4glich aktualisiert. Zweisprachig (DE\/FR). Kein Scraping \u2013 saubere JSON-API mit Rate Limiting.<\/p>\n    <div class=\"doc-base-url\">\n      <span>GET<\/span>\n      https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=<span>{endpoint}<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Tiers -->\n  <div class=\"doc-section\">\n    <div class=\"doc-section-title\">Zugang &#038; Preise<\/div>\n    <div class=\"doc-tiers\">\n      <div class=\"doc-tier\">\n        <div class=\"doc-tier-name\">Free<\/div>\n        <div class=\"doc-tier-price\">CHF 0<\/div>\n        <div class=\"doc-tier-req\">100 Req\/Tag \u00b7 kein Key<\/div>\n        <ul class=\"doc-tier-features\">\n          <li>Alle Basis-Endpoints<\/li>\n          <li>JSON-Format<\/li>\n          <li>Paginierung<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"doc-tier featured\">\n        <div class=\"doc-tier-name\">Basic<\/div>\n        <div class=\"doc-tier-price\">CHF 29\/Mo<\/div>\n        <div class=\"doc-tier-req\">5&#8217;000 Req\/Tag \u00b7 API-Key<\/div>\n        <ul class=\"doc-tier-features\">\n          <li>Alle Endpoints<\/li>\n          <li>Rate-Limit-Header<\/li>\n          <li>Suche &#038; Filter<\/li>\n          <li>Support via E-Mail<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"doc-tier\">\n        <div class=\"doc-tier-name\">Pro<\/div>\n        <div class=\"doc-tier-price\">CHF 79\/Mo<\/div>\n        <div class=\"doc-tier-req\">50&#8217;000 Req\/Tag \u00b7 API-Key<\/div>\n        <ul class=\"doc-tier-features\">\n          <li>Alles aus Basic<\/li>\n          <li>Franz\u00f6sische Namen (lang=fr)<\/li>\n          <li>CSV-Export<\/li>\n          <li>Versorgungsengp\u00e4sse<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"doc-tier\">\n        <div class=\"doc-tier-name\">Enterprise<\/div>\n        <div class=\"doc-tier-price\">auf Anfrage<\/div>\n        <div class=\"doc-tier-req\">Unlimitiert \u00b7 dedizierter Key<\/div>\n        <ul class=\"doc-tier-features\">\n          <li>Alles aus Pro<\/li>\n          <li>SLA-Garantie<\/li>\n          <li>White-Label m\u00f6glich<\/li>\n          <li>Direktsupport<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Authentifizierung -->\n  <div class=\"doc-section\">\n    <div class=\"doc-section-title\">Authentifizierung<\/div>\n    <div class=\"doc-code-block\">\n      <div class=\"doc-code-header\">\n        <span>curl \u2013 mit API-Key<\/span>\n        <button class=\"doc-code-copy\" onclick=\"kopiere(this, 'curl -H \\\"Authorization: Bearer IHR_API_KEY\\\" \\\\\\n  \\\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages\\\"')\">kopieren<\/button>\n      <\/div>\n      <pre class=\"doc-pre\"><span class=\"cm\"># Bearer Token Header (empfohlen)<\/span>\ncurl -H <span class=\"str\">\"Authorization: Bearer IHR_API_KEY\"<\/span> \\\n  <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages\"<\/span>\n\n<span class=\"cm\"># Alternativ als Query-Parameter<\/span>\ncurl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages&amp;api_key=IHR_API_KEY\"<\/span><\/pre>\n    <\/div>\n    <div class=\"doc-headers\">\n      <div><span class=\"hk\">X-RateLimit-Limit:<\/span>     <span class=\"hv\">5000<\/span><\/div>\n      <div><span class=\"hk\">X-RateLimit-Remaining:<\/span>  <span class=\"hv\">4847<\/span><\/div>\n      <div><span class=\"hk\">X-RateLimit-Reset:<\/span>      <span class=\"hv\">1746057600<\/span><\/div>\n      <div><span class=\"hk\">X-Api-Tier:<\/span>             <span class=\"hv\">basic<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Endpoints -->\n  <div class=\"doc-section\">\n    <div class=\"doc-section-title\">Endpoints<\/div>\n\n    <!-- \/shortages -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">shortages<\/span>\n        <span class=\"doc-endpoint-desc\">Paginierte Liste aller Lieferengp\u00e4sse<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <table class=\"doc-params\">\n          <thead><tr><th>Parameter<\/th><th>Typ<\/th><th>Pflicht<\/th><th>Beschreibung<\/th><th>Beispiel<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td class=\"doc-param-name\">search<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Volltextsuche auf Bezeichnung, Firma, ATC, GTIN<\/td><td>amoxicillin<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">firma<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Exakter Firmenname<\/td><td>Sandoz Pharmaceuticals AG<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">atc<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>ATC-Code Pr\u00e4fix<\/td><td>C09<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">status<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Status-Code(s) 1\u201311, kommagetrennt<\/td><td>1,2<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">neu<\/td><td class=\"doc-param-type\">integer<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Nur Engp\u00e4sse \u2264 7 Tage alt (1 = aktiv)<\/td><td>1<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">page<\/td><td class=\"doc-param-type\">integer<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Seitennummer (Standard: 1)<\/td><td>2<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">perPage<\/td><td class=\"doc-param-type\">integer<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Eintr\u00e4ge pro Seite (max: 200)<\/td><td>50<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">sort<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>feld:asc oder feld:desc<\/td><td>tage:desc<\/td><\/tr>\n            <tr><td class=\"doc-param-name\">lang<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-opt\">Pro<\/td><td>Sprache der Bezeichnung (de\/fr)<\/td><td>fr<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages&atc=C09&perPage=3\"<\/span>\n\n<span class=\"cm\">{\n  \"data\": [\n    {\n      \"id\": 4821,\n      \"gtin\": \"7680654320016\",\n      \"bezeichnung\": \"Olmesartan Mepha Lactab 20 mg\",\n      \"firma\": \"Mepha Pharma AG\",\n      \"atcCode\": \"C09CA08\",\n      \"statusCode\": 1,\n      \"statusText\": \"1 aktuell keine Lieferungen\",\n      \"isBwl\": true,\n      \"isWho\": false,\n      \"bewertung\": 1,\n      \"lieferfaehigkeitDate\": \"31.12.2026\"\n    }\n  ],\n  \"total\": 55,\n  \"page\": 1,\n  \"perPage\": 3,\n  \"pages\": 19\n}<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/shortages\/:gtin -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">shortages\/{gtin}<\/span>\n        <span class=\"doc-endpoint-desc\">Einzelprodukt nach GTIN<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <table class=\"doc-params\">\n          <thead><tr><th>Parameter<\/th><th>Typ<\/th><th>Pflicht<\/th><th>Beschreibung<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td class=\"doc-param-name\">gtin<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-req\">ja<\/td><td>GTIN des Produkts (7\u201314 Ziffern), im URL-Pfad<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages\/7680654320016\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/stats -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">stats<\/span>\n        <span class=\"doc-endpoint-desc\">Aggregierte Kennzahlen der Versorgungslage<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <p style=\"font-size:13px;color:var(--muted);margin-bottom:12px;\">Keine Parameter. Gibt \u00dcbersicht \u00fcber aktive Engp\u00e4sse, Dauer-Verteilung, BWL\/WHO-Zahlen und Top-ATC-Gruppen.<\/p>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=stats\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/timeline -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">timeline<\/span>\n        <span class=\"doc-endpoint-desc\">W\u00f6chentliche Zeitreihe neuer Meldungen<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <table class=\"doc-params\">\n          <thead><tr><th>Parameter<\/th><th>Typ<\/th><th>Pflicht<\/th><th>Beschreibung<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td class=\"doc-param-name\">weeks<\/td><td class=\"doc-param-type\">integer<\/td><td class=\"doc-param-opt\">\u2013<\/td><td>Anzahl Wochen zur\u00fcck (4\u2013260, Standard: 52)<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <!-- \/supply (exklusiv) -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">supply<\/span>\n        <span class=\"doc-endpoint-desc\">Versorgungsengp\u00e4sse nach Wirkstoff\/Dosierung<\/span>\n        <span class=\"doc-exclusive\">exklusiv drugshortage.ch<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <p style=\"font-size:13px;color:var(--muted);margin-bottom:12px;\">Zeigt Wirkstoffe\/Dosierungen bei denen 50\u2013100% aller Pr\u00e4parate nicht lieferbar sind. Dieser Endpoint ist exklusiv bei drugshortage.ch verf\u00fcgbar.<\/p>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=supply\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/alternatives -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">alternatives<\/span>\n        <span class=\"doc-endpoint-desc\">Alternativen f\u00fcr ein Produkt<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <table class=\"doc-params\">\n          <thead><tr><th>Parameter<\/th><th>Typ<\/th><th>Pflicht<\/th><th>Beschreibung<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td class=\"doc-param-name\">gtin<\/td><td class=\"doc-param-type\">string<\/td><td class=\"doc-param-req\">ja<\/td><td>GTIN des Produkts im Engpass<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=alternatives&gtin=7680654320016\"<\/span>\n\n<span class=\"cm\">{\n  \"gleicheFirma\": [],\n  \"coMarketing\": [ { \"bezeichnung\": \"...\", \"firma\": \"...\", \"gtin\": \"...\" } ],\n  \"alleAlternativen\": [ ... ]\n}<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/company -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">company\/{firma}<\/span>\n        <span class=\"doc-endpoint-desc\">Firmenprofil mit Bewertung<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\">curl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=company\/Sandoz%20Pharmaceuticals%20AG\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/export\/csv -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">export\/csv<\/span>\n        <span class=\"doc-endpoint-desc\">Gefilterter CSV-Export<\/span>\n        <span class=\"doc-endpoint-badge\">Pro+<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <p style=\"font-size:13px;color:var(--muted);margin-bottom:12px;\">Gleiche Filter wie \/shortages. Gibt eine UTF-8 CSV-Datei zur\u00fcck (mit BOM f\u00fcr Excel-Kompatibilit\u00e4t).<\/p>\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Python Beispiel<\/span><\/div>\n          <pre class=\"doc-pre\"><span class=\"kw\">import<\/span> pandas <span class=\"kw\">as<\/span> pd\ndf = pd.read_csv(\n    <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=export\/csv&atc=N06\"<\/span>,\n    header=<span class=\"num\">0<\/span>,\n    encoding=<span class=\"str\">\"utf-8-sig\"<\/span>\n)<\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \/health -->\n    <div class=\"doc-endpoint\">\n      <div class=\"doc-endpoint-header\" onclick=\"toggleEndpoint(this)\">\n        <span class=\"doc-method doc-method-get\">GET<\/span>\n        <span class=\"doc-endpoint-path\">health<\/span>\n        <span class=\"doc-endpoint-desc\">System-Health-Check<\/span>\n        <span style=\"color:#a0aec0;font-size:18px;\">\uff0b<\/span>\n      <\/div>\n      <div class=\"doc-endpoint-body\">\n        <div class=\"doc-code-block\">\n          <div class=\"doc-code-header\"><span>Response<\/span><\/div>\n          <pre class=\"doc-pre\"><span class=\"cm\">{\n  \"status\": \"healthy\",\n  \"timestamp\": \"2026-06-03T20:50:17Z\",\n  \"database\": { \"healthy\": true, \"latencyMs\": 1.1 },\n  \"source\": \"drugshortage.ch\"\n}<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- HTTP Codes -->\n  <div class=\"doc-section\">\n    <div class=\"doc-section-title\">HTTP Status Codes<\/div>\n    <div class=\"doc-http-codes\">\n      <div class=\"doc-http-code doc-http-200\"><span class=\"doc-http-num\">200<\/span> Erfolgreich<\/div>\n      <div class=\"doc-http-code doc-http-400\"><span class=\"doc-http-num\">400<\/span> Ung\u00fcltige Parameter<\/div>\n      <div class=\"doc-http-code doc-http-401\"><span class=\"doc-http-num\">401<\/span> Ung\u00fcltiger API-Key<\/div>\n      <div class=\"doc-http-code doc-http-404\"><span class=\"doc-http-num\">404<\/span> Nicht gefunden<\/div>\n      <div class=\"doc-http-code doc-http-429\"><span class=\"doc-http-num\">429<\/span> Rate Limit \u00fcberschritten<\/div>\n      <div class=\"doc-http-code doc-http-500\"><span class=\"doc-http-num\">500<\/span> Serverfehler<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- CTA -->\n  <div class=\"doc-cta\">\n    <h3>API-Key beantragen<\/h3>\n    <p>F\u00fcr mehr als 100 Requests\/Tag oder den CSV-Export kontaktieren Sie uns f\u00fcr einen API-Key.<\/p>\n    <a href=\"https:\/\/www.drugshortage.ch\/index.php\/kontakt\/\" class=\"doc-cta-btn\">API-Key anfragen \u2192<\/a>\n  <\/div>\n\n<\/div>\n\n<script>\nfunction toggleEndpoint(header) {\n  const body = header.nextElementSibling;\n  const icon = header.querySelector('span:last-child');\n  body.classList.toggle('open');\n  icon.textContent = body.classList.contains('open') ? '\uff0d' : '\uff0b';\n}\n\nfunction kopiere(btn, text) {\n  navigator.clipboard.writeText(text).then(() => {\n    btn.textContent = '\u2713 kopiert';\n    setTimeout(() => btn.textContent = 'kopieren', 2000);\n  });\n}\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>API v1 \u2014 \u00f6ffentlich drugshortage.ch API Direkter Zugriff auf alle Schweizer Arzneimittel-Lieferengp\u00e4sse. Echtdaten, t\u00e4glich aktualisiert. Zweisprachig (DE\/FR). Kein Scraping \u2013 saubere JSON-API mit Rate Limiting. GET https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint={endpoint} Zugang &#038; Preise Free CHF 0 100 Req\/Tag \u00b7 kein Key Alle Basis-Endpoints JSON-Format Paginierung Basic CHF 29\/Mo 5&#8217;000 Req\/Tag \u00b7 API-Key Alle Endpoints Rate-Limit-Header Suche &#038; Filter&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-21586","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/comments?post=21586"}],"version-history":[{"count":1,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21586\/revisions"}],"predecessor-version":[{"id":21587,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21586\/revisions\/21587"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}