{"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-12T11:36:28","modified_gmt":"2026-06-12T09:36:28","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 \u2013 Doku & Tarife (DE)\n     ============================================================ -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800&amp;family=JetBrains+Mono:wght@400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<style>\n:root {\n  --primary:   #e53e3e;\n  --primary-d: #c53030;\n  --navy:      #0f172a;\n  --slate:     #334155;\n  --muted:     #64748b;\n  --border:    #e2e8f0;\n  --bg:        #f8fafc;\n  --white:     #ffffff;\n  --green:     #16a34a;\n  --blue:      #2563eb;\n  --amber:     #d97706;\n  --mono:      'JetBrains Mono', monospace;\n  --sans:      'Outfit', sans-serif;\n}\n\n#apidoc2 * { box-sizing:border-box; margin:0; padding:0; }\n#apidoc2 { font-family:var(--sans); color:var(--slate); line-height:1.6; }\n\n\/* \u2500\u2500 Hero \u2500\u2500 *\/\n.d2-hero {\n  background: var(--white);\n  border:1px solid var(--border);\n  border-radius:16px;\n  padding:48px 40px;\n  margin-bottom:28px;\n  position:relative;\n  overflow:hidden;\n}\n.d2-hero::after {\n  content:'';\n  position:absolute;\n  top:0; right:0; bottom:0;\n  width:40%;\n  background: linear-gradient(135deg, #fff5f5 0%, #fef2f2 50%, #fff 100%);\n  z-index:0;\n}\n.d2-hero-content { position:relative; z-index:1; max-width:580px; }\n.d2-hero-eyebrow {\n  display:inline-flex; align-items:center; gap:6px;\n  background:#fef2f2; border:1px solid #fecaca;\n  color:var(--primary); font-size:11px; font-weight:600;\n  padding:4px 12px; border-radius:20px; letter-spacing:.5px;\n  text-transform:uppercase; margin-bottom:16px;\n}\n.d2-hero-eyebrow::before { content:'\u25cf'; font-size:8px; }\n.d2-hero h1 {\n  font-size:36px; font-weight:800; color:var(--navy);\n  line-height:1.15; margin-bottom:12px; letter-spacing:-.5px;\n}\n.d2-hero h1 span { color:var(--primary); }\n.d2-hero p { color:var(--muted); font-size:15px; line-height:1.7; margin-bottom:20px; }\n.d2-base-url {\n  display:inline-flex; align-items:center; gap:0;\n  background:var(--navy); border-radius:10px; overflow:hidden;\n  font-family:var(--mono); font-size:12px;\n}\n.d2-base-url-label {\n  background:var(--primary); color:#fff; padding:8px 14px; font-weight:600; font-size:11px;\n}\n.d2-base-url-path { color:#94a3b8; padding:8px 16px; }\n.d2-base-url-path span { color:#86efac; }\n\n\/* \u2500\u2500 Section \u2500\u2500 *\/\n.d2-section { margin-bottom:28px; }\n.d2-section-head {\n  display:flex; align-items:center; gap:10px;\n  margin-bottom:16px;\n}\n.d2-section-icon {\n  width:32px; height:32px; border-radius:8px;\n  background:var(--primary); color:#fff;\n  display:flex; align-items:center; justify-content:center;\n  font-size:15px; flex-shrink:0;\n}\n.d2-section-title { font-size:15px; font-weight:700; color:var(--navy); }\n\n\/* \u2500\u2500 Tiers \u2500\u2500 *\/\n.d2-tiers { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:12px; margin-bottom:6px; }\n.d2-tier {\n  border:1.5px solid var(--border); border-radius:12px;\n  padding:18px; background:var(--white); position:relative;\n  transition:all .2s;\n}\n.d2-tier:hover { border-color:var(--primary); transform:translateY(-1px); box-shadow:0 4px 16px rgba(229,62,62,.08); }\n.d2-tier.featured { border-color:var(--primary); }\n.d2-tier-badge {\n  position:absolute; top:-10px; left:16px;\n  background:var(--primary); color:#fff;\n  font-size:10px; font-weight:700; padding:2px 10px; border-radius:10px;\n}\n.d2-tier-name { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); margin-bottom:8px; }\n.d2-tier-price { font-size:24px; font-weight:800; color:var(--navy); margin-bottom:2px; }\n.d2-tier-price sub { font-size:12px; font-weight:400; color:var(--muted); vertical-align:baseline; }\n.d2-tier-req { font-size:11px; color:var(--muted); margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--border); }\n.d2-tier-features { list-style:none; }\n.d2-tier-features li { font-size:12px; color:var(--slate); padding:2px 0; display:flex; align-items:flex-start; gap:5px; }\n.d2-tier-features li::before { content:'\u2713'; color:var(--green); font-weight:700; flex-shrink:0; }\n\n\/* \u2500\u2500 Auth \u2500\u2500 *\/\n.d2-auth-box {\n  background:var(--navy); border-radius:12px; overflow:hidden;\n}\n.d2-code-header {\n  display:flex; justify-content:space-between; align-items:center;\n  padding:10px 16px; background:rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.08);\n}\n.d2-code-lang { font-family:var(--mono); font-size:11px; color:#64748b; }\n.d2-code-copy { font-family:var(--mono); font-size:11px; color:#4ade80; background:none; border:none; cursor:pointer; }\n.d2-code-copy:hover { color:#fff; }\npre.d2-pre {\n  padding:16px 18px; font-family:var(--mono); font-size:12px;\n  color:#cbd5e1; overflow-x:auto; line-height:1.7;\n}\n.d2-pre .cm  { color:#475569; }\n.d2-pre .kw  { color:#f87171; }\n.d2-pre .str { color:#4ade80; }\n.d2-pre .hk  { color:#7dd3fc; }\n.d2-pre .hv  { color:#86efac; }\n.d2-pre .num { color:#fbbf24; }\n\n\/* \u2500\u2500 Endpoints \u2500\u2500 *\/\n.d2-endpoint {\n  border:1.5px solid var(--border); border-radius:12px;\n  margin-bottom:10px; background:var(--white); overflow:hidden;\n  transition:border-color .2s;\n}\n.d2-endpoint:hover { border-color:#cbd5e0; }\n.d2-endpoint-header {\n  display:flex; align-items:center; gap:12px;\n  padding:14px 18px; cursor:pointer; user-select:none;\n}\n.d2-endpoint-header:hover { background:#fafafa; }\n.d2-method {\n  font-family:var(--mono); font-size:11px; font-weight:700;\n  padding:3px 9px; border-radius:6px; min-width:44px; text-align:center; flex-shrink:0;\n}\n.d2-get  { background:#dbeafe; color:#1d4ed8; }\n.d2-post { background:#dcfce7; color:#15803d; }\n.d2-path {\n  font-family:var(--mono); font-size:13px; font-weight:600;\n  color:var(--navy); flex:1;\n}\n.d2-edesc { font-size:12px; color:var(--muted); }\n.d2-pro-tag {\n  background:#fef9c3; color:#854d0e; font-size:10px;\n  font-weight:700; padding:2px 8px; border-radius:6px;\n}\n.d2-exclusive-tag {\n  background:linear-gradient(135deg,#e53e3e,#c53030); color:#fff;\n  font-size:10px; font-weight:700; padding:2px 8px; border-radius:6px;\n}\n.d2-chevron { color:#cbd5e1; font-size:14px; transition:transform .2s; flex-shrink:0; }\n.d2-chevron.open { transform:rotate(180deg); }\n.d2-endpoint-body {\n  display:none; border-top:1.5px solid var(--border);\n  padding:18px;\n}\n.d2-endpoint-body.open { display:block; }\n\n\/* \u2500\u2500 Params \u2500\u2500 *\/\n.d2-params { width:100%; border-collapse:collapse; margin-bottom:14px; font-size:12px; }\n.d2-params th {\n  padding:7px 12px; text-align:left; background:var(--bg);\n  color:var(--muted); font-size:10px; font-weight:700;\n  text-transform:uppercase; letter-spacing:.5px; border-bottom:2px solid var(--border);\n}\n.d2-params td { padding:8px 12px; border-bottom:1px solid var(--border); vertical-align:top; }\n.d2-params tr:last-child td { border-bottom:none; }\n.d2-pname { font-family:var(--mono); font-weight:600; color:var(--navy); font-size:12px; }\n.d2-ptype { font-family:var(--mono); color:#7c3aed; font-size:11px; }\n.d2-preq  { color:var(--primary); font-weight:700; font-size:11px; }\n.d2-popt  { color:var(--muted); font-size:11px; }\n\n\/* \u2500\u2500 Status Codes \u2500\u2500 *\/\n.d2-status { width:100%; border-collapse:collapse; font-size:12px; background:var(--white); border:1.5px solid var(--border); border-radius:12px; overflow:hidden; }\n.d2-status th {\n  padding:8px 14px; text-align:left; background:var(--bg);\n  color:var(--muted); font-size:10px; font-weight:700;\n  text-transform:uppercase; letter-spacing:.5px; border-bottom:2px solid var(--border);\n}\n.d2-status td { padding:8px 14px; border-bottom:1px solid var(--border); vertical-align:top; }\n.d2-status tr:last-child td { border-bottom:none; }\n.d2-status-code { font-family:var(--mono); font-weight:700; color:var(--navy); text-align:center; width:48px; }\n.d2-note {\n  display:flex; align-items:flex-start; gap:10px;\n  background:#fffbeb; border:1.5px solid #fde68a;\n  border-radius:10px; padding:14px 16px; margin-top:14px;\n  font-size:13px; color:#78350f; line-height:1.55;\n}\n.d2-note::before { content:'&#x26a0;'; font-size:15px; flex-shrink:0; }\n\n\/* \u2500\u2500 HTTP Codes \u2500\u2500 *\/\n.d2-http-grid { display:flex; flex-wrap:wrap; gap:8px; }\n.d2-http-item {\n  display:flex; align-items:center; gap:8px;\n  padding:8px 14px; border:1.5px solid var(--border);\n  border-radius:8px; font-size:12px; background:var(--white);\n}\n.d2-http-code { font-family:var(--mono); font-weight:700; font-size:14px; }\n.d2-http-200 .d2-http-code { color:var(--green); }\n.d2-http-400 .d2-http-code { color:var(--amber); }\n.d2-http-401 .d2-http-code { color:var(--primary); }\n.d2-http-404 .d2-http-code { color:var(--primary); }\n.d2-http-429 .d2-http-code { color:var(--amber); }\n.d2-http-500 .d2-http-code { color:var(--primary); }\n\n\/* \u2500\u2500 CTA \u2500\u2500 *\/\n.d2-cta {\n  background:var(--navy); border-radius:16px;\n  padding:36px 40px; margin-top:28px;\n  display:flex; align-items:center; justify-content:space-between;\n  flex-wrap:wrap; gap:20px;\n}\n.d2-cta h3 { font-size:20px; font-weight:700; color:#fff; margin-bottom:4px; }\n.d2-cta p  { color:#64748b; font-size:13px; }\n.d2-cta-btn {\n  display:inline-block; background:var(--primary); color:#fff;\n  padding:12px 28px; border-radius:10px; font-weight:700;\n  font-size:14px; text-decoration:none; white-space:nowrap;\n  transition:background .2s;\n}\n.d2-cta-btn:hover { background:var(--primary-d); }\n\n\/* Divider *\/\n.d2-divider { height:1px; background:var(--border); margin:24px 0; }\n.d2-tier-btn {\n  display:block; width:100%; padding:10px 14px; border-radius:8px;\n  font-family:var(--sans); font-size:13px; font-weight:600; text-align:center;\n  margin-top:14px; cursor:pointer; text-decoration:none; transition:all .2s;\n  border:2px solid transparent;\n}\n.d2-tier-btn-primary { background:var(--primary); color:#fff; border-color:var(--primary); }\n.d2-tier-btn-primary:hover { background:var(--primary-d); border-color:var(--primary-d); }\n.d2-tier-btn-secondary { background:#0f172a; color:#fff; border-color:#0f172a; }\n.d2-tier-btn-secondary:hover { background:#1e293b; border-color:#1e293b; }\n.d2-tier-btn-outline { background:#fff; color:var(--slate); border-color:var(--border); }\n.d2-tier-btn-outline:hover { border-color:#94a3b8; color:var(--navy); }\n.d2-tier-btn:disabled { opacity:.4; cursor:not-allowed; }\n.d2-tos-wrap {\n  display:flex; align-items:flex-start; gap:10px;\n  background:#f8fafc; border:1.5px solid var(--border);\n  border-radius:10px; padding:14px 16px; margin-bottom:16px;\n  font-size:13px; color:var(--muted); line-height:1.5;\n}\n.d2-tos-wrap input[type=checkbox] { width:16px; height:16px; margin-top:2px; flex-shrink:0; accent-color:var(--primary); cursor:pointer; }\n.d2-tos-warn { font-size:12px; color:var(--primary); margin-top:-10px; margin-bottom:14px; display:none; }\n\n@media (max-width:768px) {\n  .d2-hero { padding:28px 20px; }\n  .d2-hero h1 { font-size:26px; }\n  .d2-hero::after { display:none; }\n  .d2-cta { flex-direction:column; padding:24px 20px; }\n}\n<\/style>\n\n<div id=\"apidoc2\">\n\n  <!-- Hero -->\n  <div class=\"d2-hero\">\n    <div class=\"d2-hero-content\">\n      <div class=\"d2-hero-eyebrow\">API v1 \u00b7 \u00f6ffentlich<\/div>\n      <h1>drugshortage.ch <span>API<\/span><\/h1>\n      <p>Direkter, strukturierter Zugriff auf alle Schweizer Arzneimittel-Lieferengp\u00e4sse. Echtdaten, t\u00e4glich aktualisiert, zweisprachig DE\/FR. Kein Scraping \u2013 saubere REST-API mit Rate Limiting.<\/p>\n      <div class=\"d2-base-url\">\n        <span class=\"d2-base-url-label\">BASE URL<\/span>\n        <span class=\"d2-base-url-path\">drugshortage.ch\/api\/v1\/drugshortage.php?<span>endpoint=<\/span><\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Tiers -->\n  <div class=\"d2-section\">\n    <div class=\"d2-section-head\">\n      <div class=\"d2-section-icon\">&#x1f4b0;<\/div>\n      <span class=\"d2-section-title\">Zugang &amp; Preise<\/span>\n    <\/div>\n    <div class=\"d2-tos-wrap\">\n      <input type=\"checkbox\" id=\"d2-tos\" onchange=\"d2toggleTos(this)\">\n      <label for=\"d2-tos\">Ich habe die <a href=\"https:\/\/www.drugshortage.ch\/index.php\/nutzungsbedingungen\/\" target=\"_blank\" style=\"color:var(--primary);\">Nutzungsbedingungen<\/a> gelesen und bin damit einverstanden.<\/label>\n    <\/div>\n    <div class=\"d2-tos-warn\" id=\"d2-tos-warn\">&#x26a0;&#xfe0f; Bitte akzeptieren Sie die Nutzungsbedingungen.<\/div>\n    <div class=\"d2-tiers\">\n      <div class=\"d2-tier\">\n        <div class=\"d2-tier-name\">Free<\/div>\n        <div class=\"d2-tier-price\">CHF 0<\/div>\n        <div class=\"d2-tier-req\">100 Req\/Tag \u00b7 kein Key<\/div>\n        <ul class=\"d2-tier-features\">\n          <li>Alle Basis-Endpoints<\/li>\n          <li>JSON \u00b7 Paginierung<\/li>\n        <\/ul>\n        <a href=\"https:\/\/www.drugshortage.ch\/index.php\/kontakt\/\" class=\"d2-tier-btn d2-tier-btn-outline\">API ausprobieren \u2192<\/a>\n      <\/div>\n      <div class=\"d2-tier featured\">\n        <div class=\"d2-tier-badge\">Empfohlen<\/div>\n        <div class=\"d2-tier-name\">Basic<\/div>\n        <div class=\"d2-tier-price\">CHF 29<sub>\/Mo<\/sub><\/div>\n        <div class=\"d2-tier-req\">5&#8217;000 Req\/Tag \u00b7 API-Key<\/div>\n        <ul class=\"d2-tier-features\">\n          <li>Alle Endpoints<\/li>\n          <li>Suche &amp; Filter<\/li>\n          <li>E-Mail Support<\/li>\n        <\/ul>\n        <button class=\"d2-tier-btn d2-tier-btn-primary\" disabled=\"\" onclick=\"d2kaufe('basic','price_1TeVGCKZkvHmj4lAxvQc8pqe',29,this)\">Basic abonnieren \u2013 CHF 29\/Mo<\/button>\n      <\/div>\n      <div class=\"d2-tier\">\n        <div class=\"d2-tier-name\">Pro<\/div>\n        <div class=\"d2-tier-price\">CHF 79<sub>\/Mo<\/sub><\/div>\n        <div class=\"d2-tier-req\">50&#8217;000 Req\/Tag \u00b7 API-Key<\/div>\n        <ul class=\"d2-tier-features\">\n          <li>Alles aus Basic<\/li>\n          <li>Franz\u00f6sisch (lang=fr)<\/li>\n          <li>CSV-Export<\/li>\n          <li>Webhooks<\/li>\n        <\/ul>\n        <button class=\"d2-tier-btn d2-tier-btn-secondary\" disabled=\"\" onclick=\"d2kaufe('pro','price_1TeVGgKZkvHmj4lAXC2JJHTj',79,this)\">Pro abonnieren \u2013 CHF 79\/Mo<\/button>\n      <\/div>\n      <div class=\"d2-tier\">\n        <div class=\"d2-tier-name\">Enterprise<\/div>\n        <div class=\"d2-tier-price\">Anfrage<\/div>\n        <div class=\"d2-tier-req\">Unlimitiert \u00b7 dediziert<\/div>\n        <ul class=\"d2-tier-features\">\n          <li>Alles aus Pro<\/li>\n          <li>SLA \u00b7 White-Label<\/li>\n          <li>Direktsupport<\/li>\n        <\/ul>\n        <a href=\"https:\/\/www.drugshortage.ch\/index.php\/kontakt\/\" class=\"d2-tier-btn d2-tier-btn-outline\">Anfragen \u2192<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"d2-divider\"><\/div>\n\n  <!-- Authentifizierung -->\n  <div class=\"d2-section\">\n    <div class=\"d2-section-head\">\n      <div class=\"d2-section-icon\">&#x1f511;<\/div>\n      <span class=\"d2-section-title\">Authentifizierung<\/span>\n    <\/div>\n    <div class=\"d2-auth-box\">\n      <div class=\"d2-code-header\">\n        <span class=\"d2-code-lang\">bash<\/span>\n        <button class=\"d2-code-copy\" onclick=\"d2kopiere(this)\">kopieren<\/button>\n      <\/div>\n      <pre class=\"d2-pre\"><span class=\"cm\"># Mit API-Key (Bearer Token)<\/span>\ncurl -H <span class=\"str\">\"Authorization: Bearer IHR_API_KEY\"<\/span>   <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages\"<\/span>\n\n<span class=\"cm\"># Alternativ als Parameter<\/span>\ncurl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages&amp;api_key=IHR_KEY\"<\/span>\n\n<span class=\"cm\"># Response-Header<\/span>\n<span class=\"hk\">X-RateLimit-Limit:<\/span>     <span class=\"hv\">5000<\/span>\n<span class=\"hk\">X-RateLimit-Remaining:<\/span> <span class=\"hv\">4847<\/span>\n<span class=\"hk\">X-Api-Tier:<\/span>           <span class=\"hv\">basic<\/span><\/pre>\n    <\/div>\n  <\/div>\n\n  <div class=\"d2-divider\"><\/div>\n\n  <!-- Endpoints -->\n  <div class=\"d2-section\">\n    <div class=\"d2-section-head\">\n      <div class=\"d2-section-icon\">&#x26a1;<\/div>\n      <span class=\"d2-section-title\">Endpoints<\/span>\n    <\/div>\n\n    <!-- shortages -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">shortages<\/span>\n        <span class=\"d2-edesc\">Paginierte Liste aller Lieferengp\u00e4sse<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <table class=\"d2-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=\"d2-pname\">search<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>Volltextsuche<\/td><td>amoxicillin<\/td><\/tr>\n            <tr><td class=\"d2-pname\">firma<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>Exakter Firmenname<\/td><td>Sandoz Pharmaceuticals AG<\/td><\/tr>\n            <tr><td class=\"d2-pname\">atc<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>ATC-Code Pr\u00e4fix<\/td><td>C09<\/td><\/tr>\n            <tr><td class=\"d2-pname\">status<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>Status-Codes 1\u201311, kommagetrennt. Ohne Angabe werden abgeschlossene (9), nicht mehr im Verkauf (7) und ausser Handel (8 sowie <code>Trade = AH<\/code>) ausgeblendet; mit Angabe werden exakt diese Codes geliefert (<code>status=8<\/code> umfasst auch <code>Trade = AH<\/code>).<\/td><td>1,2<\/td><\/tr>\n            <tr><td class=\"d2-pname\">mutatedSince<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>Nur Eintr\u00e4ge, deren letzte Mutation &gt;= Datum ist (Format ISO YYYY-MM-DD). Ideal f\u00fcr inkrementelle Syncs.<\/td><td>2026-05-01<\/td><\/tr>\n            <tr><td class=\"d2-pname\">reportedSince<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>Nur Eintr\u00e4ge, deren Erstmeldung &gt;= Datum ist (Format ISO YYYY-MM-DD). F\u00fcr das Tracking von Neuzug\u00e4ngen.<\/td><td>2026-05-01<\/td><\/tr>\n            <tr><td class=\"d2-pname\">page<\/td><td class=\"d2-ptype\">integer<\/td><td class=\"d2-popt\">\u2013<\/td><td>Seitennummer (Standard: 1)<\/td><td>2<\/td><\/tr>\n            <tr><td class=\"d2-pname\">perPage<\/td><td class=\"d2-ptype\">integer<\/td><td class=\"d2-popt\">\u2013<\/td><td>Eintr\u00e4ge pro Seite (Standard: 200, max: 200)<\/td><td>200<\/td><\/tr>\n            <tr><td class=\"d2-pname\">sort<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">\u2013<\/td><td>feld:asc oder feld:desc<\/td><td>tage:desc<\/td><\/tr>\n            <tr><td class=\"d2-pname\">lang<\/td><td class=\"d2-ptype\">string<\/td><td class=\"d2-popt\">Pro<\/td><td>Sprache (de\/fr)<\/td><td>fr<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=shortages&amp;atc=C09&amp;perPage=3\"<\/span>\n\n<span class=\"cm\">{\n  \"data\": [{\n    \"id\": 4821, \"gtin\": \"7680654320016\",\n    \"bezeichnung\": \"Olmesartan Mepha Lactab 20 mg\",\n    \"firma\": \"Mepha Pharma AG\", \"atcCode\": \"C09CA08\",\n    \"statusCode\": 1, \"statusText\": \"1 aktuell keine Lieferungen\",\n    \"lieferfaehigkeitDate\": \"15.07.2026\",\n    \"ersteMeldungDate\": \"20.04.2026\",\n    \"ersteInfoFirmaDate\": \"20.04.2026\",\n    \"dauer\": \"langer Engpass (&gt; 6 Wochen)\",\n    \"datumLetzteMutation\": \"05.05.2026\",\n    \"isBwl\": true, \"bewertung\": 1\n  }],\n  \"total\": 55, \"page\": 1, \"perPage\": 3, \"pages\": 19\n}<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- shortages\/:gtin -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">shortages\/{gtin}<\/span>\n        <span class=\"d2-edesc\">Einzelprodukt nach GTIN<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=shortages\/7680654320016\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- stats -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">stats<\/span>\n        <span class=\"d2-edesc\">Aggregierte Kennzahlen der Versorgungslage<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=stats\"<\/span>\n\n<span class=\"cm\">{ \"data\": { \"active\": 719, \"uniqueAtcGroups\": 294,\n  \"avgDaysSinceMeldung\": 178.8, \"regulatory\": { \"bwl\": 133, \"who\": 214 },\n  \"topAtcGroups\": [{ \"atc\": \"N05\", \"count\": 63 }, ...] } }<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- timeline -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">timeline<\/span>\n        <span class=\"d2-edesc\">W\u00f6chentliche Zeitreihe neuer Meldungen<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <table class=\"d2-params\">\n          <thead><tr><th>Parameter<\/th><th>Typ<\/th><th>Pflicht<\/th><th>Beschreibung<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td class=\"d2-pname\">weeks<\/td><td class=\"d2-ptype\">integer<\/td><td class=\"d2-popt\">\u2013<\/td><td>Wochen zur\u00fcck (4\u2013260, Standard: 52)<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <!-- supply -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">supply<\/span>\n        <span class=\"d2-edesc\">Versorgungsengp\u00e4sse nach Wirkstoff\/Dosierung<\/span>\n        <span class=\"d2-exclusive-tag\">exklusiv drugshortage.ch<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <p style=\"font-size:13px;color:var(--muted);margin-bottom:12px;\">Wirkstoffe\/Dosierungen bei denen 50\u2013100% aller Pr\u00e4parate nicht lieferbar sind. Dieser Endpoint ist exklusiv bei drugshortage.ch.<\/p>\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=supply\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- alternatives -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">alternatives?gtin=<\/span>\n        <span class=\"d2-edesc\">Alternativen f\u00fcr ein Produkt<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=alternatives&amp;gtin=7680654320016\"<\/span>\n\n<span class=\"cm\">{ \"gleicheFirma\": [], \"coMarketing\": [...], \"alleAlternativen\": [...] }<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- company -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">company\/{firma}<\/span>\n        <span class=\"d2-edesc\">Firmenprofil mit Bewertung<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">bash<\/span><\/div>\n          <pre class=\"d2-pre\">curl <span class=\"str\">\"...?endpoint=company\/Sandoz%20Pharmaceuticals%20AG\"<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- export\/csv -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">export\/csv<\/span>\n        <span class=\"d2-edesc\">Gefilterter CSV-Export<\/span>\n        <span class=\"d2-pro-tag\">Pro+<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">python<\/span><\/div>\n          <pre class=\"d2-pre\"><span class=\"kw\">import<\/span> pandas <span class=\"kw\">as<\/span> pd\ndf = pd.read_csv(<span class=\"str\">\"...?endpoint=export\/csv&amp;atc=N06\"<\/span>, encoding=<span class=\"str\">\"utf-8-sig\"<\/span>)<\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- health -->\n    <div class=\"d2-endpoint\">\n      <div class=\"d2-endpoint-header\" onclick=\"d2toggle(this)\">\n        <span class=\"d2-method d2-get\">GET<\/span>\n        <span class=\"d2-path\">health<\/span>\n        <span class=\"d2-edesc\">System-Health-Check<\/span>\n        <span class=\"d2-chevron\">\u25be<\/span>\n      <\/div>\n      <div class=\"d2-endpoint-body\">\n        <div class=\"d2-auth-box\">\n          <div class=\"d2-code-header\"><span class=\"d2-code-lang\">json<\/span><\/div>\n          <pre class=\"d2-pre\"><span class=\"cm\">{ \"status\": \"healthy\", \"database\": { \"healthy\": true, \"latencyMs\": 1.1 } }<\/span><\/pre>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"d2-divider\"><\/div>\n\n  <!-- Status Codes -->\n  <div class=\"d2-section\">\n    <div class=\"d2-section-head\">\n      <div class=\"d2-section-icon\">&#x1f3f7;&#xfe0f;<\/div>\n      <span class=\"d2-section-title\">Status-Codes<\/span>\n    <\/div>\n    <table class=\"d2-status\">\n      <thead><tr><th class=\"d2-status-code\">Code<\/th><th>Bedeutung<\/th><\/tr><\/thead>\n      <tbody>\n        <tr><td class=\"d2-status-code\">1<\/td><td>aktuell keine Lieferungen<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">2<\/td><td>angek\u00fcndigter Engpass<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">3<\/td><td>Lieferungen kontingentiert \/ eingeschr\u00e4nkt<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">4<\/td><td>f\u00fcr Spit\u00e4ler verf\u00fcgbar; Retail nicht verf\u00fcgbar<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">5<\/td><td>f\u00fcr Spit\u00e4ler verf\u00fcgbar; Retail eingeschr\u00e4nkt<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">6<\/td><td>Spit\u00e4ler eingeschr\u00e4nkt; Retail nicht verf\u00fcgbar<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">7<\/td><td>registriert \u2013 nicht mehr im Verkauf<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">8<\/td><td>abregistriert \u2013 ausser Handel (auch via <code>Trade = AH<\/code> gekennzeichnet)<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">9<\/td><td>abgeschlossen<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">10<\/td><td>Versorgung erfolgt mit Pflichtlagerware<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">11<\/td><td>Grossist eingeschr\u00e4nkt; Direktbezug bei Firma<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n    <div class=\"d2-note\">Bitte leiten Sie den Zustand \u201eabgeschlossen&#8220; nicht aus dem Fehlen eines Eintrags in der Standardliste ab. Ein Eintrag kann aus mehreren Gr\u00fcnden fehlen (z. B. Code 7, 8 oder 9, oder ausser Handel via <code>Trade = AH<\/code>). Fragen Sie abgeschlossene Engp\u00e4sse gezielt mit <code>status=9<\/code> ab, nicht mehr verkaufte Produkte mit <code>status=7<\/code>. Ausser Handel befindliche Produkte erhalten Sie mit <code>status=8<\/code> \u2013 dies liefert sowohl Eintr\u00e4ge mit Status 8 als auch solche mit <code>Trade = AH<\/code> (die dauerhafte Kennzeichnung; Status 8 dient nur als \u00dcbergangsl\u00f6sung).<\/div>\n  <\/div>\n\n  <div class=\"d2-divider\"><\/div>\n\n  <!-- HTTP Codes -->\n  <div class=\"d2-section\">\n    <div class=\"d2-section-head\">\n      <div class=\"d2-section-icon\">&#x1f4e1;<\/div>\n      <span class=\"d2-section-title\">HTTP Status Codes<\/span>\n    <\/div>\n    <div class=\"d2-http-grid\">\n      <div class=\"d2-http-item d2-http-200\"><span class=\"d2-http-code\">200<\/span> Erfolgreich<\/div>\n      <div class=\"d2-http-item d2-http-400\"><span class=\"d2-http-code\">400<\/span> Ung\u00fcltige Parameter<\/div>\n      <div class=\"d2-http-item d2-http-401\"><span class=\"d2-http-code\">401<\/span> Ung\u00fcltiger API-Key<\/div>\n      <div class=\"d2-http-item d2-http-404\"><span class=\"d2-http-code\">404<\/span> Nicht gefunden<\/div>\n      <div class=\"d2-http-item d2-http-429\"><span class=\"d2-http-code\">429<\/span> Rate Limit \u00fcberschritten<\/div>\n      <div class=\"d2-http-item d2-http-500\"><span class=\"d2-http-code\">500<\/span> Serverfehler<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- CTA -->\n  <div class=\"d2-cta\">\n    <div>\n      <h3>Fragen zur API?<\/h3>\n      <p>Wir helfen gerne bei der Integration.<\/p>\n    <\/div>\n    <a href=\"https:\/\/www.drugshortage.ch\/index.php\/kontakt\/\" class=\"d2-cta-btn\">Kontakt aufnehmen \u2192<\/a>\n  <\/div>\n\n<\/div>\n\n<script>\nfunction d2toggleTos(cb) {\n  const btns = document.querySelectorAll('.d2-tier-btn-primary, .d2-tier-btn-secondary');\n  btns.forEach(b => b.disabled = !cb.checked);\n  document.getElementById('d2-tos-warn').style.display = 'none';\n}\n\nasync function d2kaufe(tier, priceId, price, btn) {\n  if (!document.getElementById('d2-tos').checked) {\n    document.getElementById('d2-tos-warn').style.display = 'block';\n    return;\n  }\n  btn.disabled = true;\n  btn.textContent = '&#x23f3; Weiterleitung\u2026';\n  try {\n    const res = await fetch(\"https:\/\/www.drugshortage.ch\/ds.php?a=checkout\" + String.fromCharCode(38) + \"action=create\", {\n      method:\"POST\", headers:{\"Content-Type\":\"application\/json\",\"X-Requested-With\":\"XMLHttpRequest\"},\n      body: JSON.stringify({priceId, tier, lang: 'de'})\n    });\n    const d = await res.json();\n    if (d.url) { window.location.href = d.url; }\n    else { alert(d.error || 'Fehler'); btn.disabled=false; btn.textContent = tier.charAt(0).toUpperCase()+tier.slice(1)+' abonnieren \u2013 CHF '+price+'\/Mo'; }\n  } catch(e) { alert('Fehler: '+e); btn.disabled=false; }\n}\n\nfunction d2toggle(header) {\n  const body    = header.nextElementSibling;\n  const chevron = header.querySelector('.d2-chevron');\n  body.classList.toggle('open');\n  chevron.classList.toggle('open');\n}\nfunction d2kopiere(btn) {\n  const pre = btn.closest('.d2-auth-box').querySelector('pre');\n  navigator.clipboard.writeText(pre.textContent).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 \u00b7 \u00f6ffentlich drugshortage.ch API Direkter, strukturierter Zugriff auf alle Schweizer Arzneimittel-Lieferengp\u00e4sse. Echtdaten, t\u00e4glich aktualisiert, zweisprachig DE\/FR. Kein Scraping \u2013 saubere REST-API mit Rate Limiting. BASE URL drugshortage.ch\/api\/v1\/drugshortage.php?endpoint= &#x1f4b0; Zugang &amp; Preise Ich habe die Nutzungsbedingungen gelesen und bin damit einverstanden. &#x26a0;&#xfe0f; Bitte akzeptieren Sie die Nutzungsbedingungen. Free CHF 0 100 Req\/Tag \u00b7 kein&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_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":"","_members_access_role":[],"_members_access_error":""},"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":6,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21586\/revisions"}],"predecessor-version":[{"id":21764,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21586\/revisions\/21764"}],"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}]}}