{"id":21674,"date":"2026-06-08T13:30:53","date_gmt":"2026-06-08T11:30:53","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21674"},"modified":"2026-06-17T19:52:17","modified_gmt":"2026-06-17T17:52:17","slug":"documentation-api-2","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/documentation-api-2\/","title":{"rendered":"Documentation-API"},"content":{"rendered":"\n<!-- ============================================================\n     drugshortage.ch API Dokumentation \u2013 neu gestaltet (FR)\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\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 public<\/div>\n      <h1>drugshortage.ch <span>API<\/span><\/h1>\n      <p>Acc\u00e8s direct et structur\u00e9 \u00e0 toutes les p\u00e9nuries de m\u00e9dicaments en Suisse. Donn\u00e9es r\u00e9elles, mises \u00e0 jour quotidiennement, bilingue DE\/FR. Pas de scraping \u2013 API REST propre avec 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  <!-- Authentification -->\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\">Authentification<\/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)\">copier<\/button>\n      <\/div>\n      <pre class=\"d2-pre\"><span class=\"cm\"># Avec cl\u00e9 API (Bearer Token)<\/span>\ncurl -H <span class=\"str\">\"Authorization: Bearer VOTRE_CLE_API\"<\/span>   <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages\"<\/span>\n\n<span class=\"cm\"># Alternativement en param\u00e8tre<\/span>\ncurl <span class=\"str\">\"https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages&amp;api_key=VOTRE_CLE\"<\/span>\n\n<span class=\"cm\"># En-t\u00eates de r\u00e9ponse<\/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\">Liste pagin\u00e9e de toutes les p\u00e9nuries<\/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>Param\u00e8tre<\/th><th>Type<\/th><th>Requis<\/th><th>Description<\/th><th>Exemple<\/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>Recherche plein texte<\/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>Nom exact de l&#8217;entreprise<\/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>Pr\u00e9fixe code ATC<\/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>Codes statut 1\u201311, s\u00e9par\u00e9s par virgule. Sans param\u00e8tre, les codes 9 (termin\u00e9), 7 (plus en vente) et 8 (hors commerce, ainsi que <code>Trade = AH<\/code>) sont masqu\u00e9s ; avec le param\u00e8tre, exactement ces codes sont retourn\u00e9s (<code>status=8<\/code> inclut aussi <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>Uniquement les entr\u00e9es dont la derni\u00e8re mutation est &gt;= \u00e0 la date (format ISO YYYY-MM-DD). Id\u00e9al pour les synchronisations incr\u00e9mentales.<\/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>Uniquement les entr\u00e9es dont la premi\u00e8re annonce est &gt;= \u00e0 la date (format ISO YYYY-MM-DD). Pour suivre les nouvelles entr\u00e9es.<\/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>Num\u00e9ro de page (d\u00e9faut: 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>Entr\u00e9es par page (d\u00e9faut: 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>champ:asc ou champ: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>Langue (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 actuellement pas de livraisons\",\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\">Produit individuel par 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\">Indicateurs agr\u00e9g\u00e9s de la situation<\/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\">S\u00e9rie temporelle hebdomadaire<\/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>Param\u00e8tre<\/th><th>Type<\/th><th>Requis<\/th><th>Description<\/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>Semaines en arri\u00e8re (4\u2013260, d\u00e9faut: 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\">P\u00e9nuries d&#8217;approvisionnement par principe actif<\/span>\n        <span class=\"d2-exclusive-tag\">exclusif 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;\">Principes actifs\/dosages dont 50\u2013100% des pr\u00e9parations ne sont pas livrables. Endpoint exclusif \u00e0 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\">Alternatives pour un produit<\/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\">Profil entreprise avec \u00e9valuation<\/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\">Export CSV filtr\u00e9<\/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\">V\u00e9rification de l&#8217;\u00e9tat du syst\u00e8me<\/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\">Codes de statut<\/span>\n    <\/div>\n    <table class=\"d2-status\">\n      <thead><tr><th class=\"d2-status-code\">Code<\/th><th>Signification<\/th><\/tr><\/thead>\n      <tbody>\n        <tr><td class=\"d2-status-code\">1<\/td><td>actuellement pas de livraisons<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">2<\/td><td>p\u00e9nurie annonc\u00e9e<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">3<\/td><td>quota de livraisons<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">4<\/td><td>livrable pour h\u00f4pitaux, pas pour retail<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">5<\/td><td>livrable pour h\u00f4pitaux, quota pour retail<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">6<\/td><td>quota pour h\u00f4pitaux, pas de livraisons en retail<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">7<\/td><td>enregistr\u00e9 mais plus en vente<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">8<\/td><td>hors commerce (\u00e9galement signal\u00e9 via <code>Trade = AH<\/code>)<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">9<\/td><td>p\u00e9nurie termin\u00e9e<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">10<\/td><td>approvisionnement par la r\u00e9serve obligatoire<\/td><\/tr>\n        <tr><td class=\"d2-status-code\">11<\/td><td>grossiste limit\u00e9, achat direct aupr\u00e8s de l&#8217;entreprise<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n    <div class=\"d2-note\">Veuillez ne pas d\u00e9duire l&#8217;\u00e9tat \u00ab termin\u00e9 \u00bb de l&#8217;absence d&#8217;une entr\u00e9e dans la liste standard. Une entr\u00e9e peut \u00eatre absente pour plusieurs raisons (p. ex. code 7, 8 ou 9, ou hors commerce via <code>Trade = AH<\/code>). Interrogez les p\u00e9nuries termin\u00e9es avec <code>status=9<\/code>, les produits qui ne sont plus en vente avec <code>status=7<\/code>. Les produits hors commerce s&#8217;obtiennent avec <code>status=8<\/code> \u2013 ceci retourne aussi bien les entr\u00e9es avec statut 8 que celles avec <code>Trade = AH<\/code> (le marquage permanent ; le statut 8 ne sert que de solution transitoire).<\/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\">Codes de statut HTTP<\/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> Succ\u00e8s<\/div>\n      <div class=\"d2-http-item d2-http-400\"><span class=\"d2-http-code\">400<\/span> Param\u00e8tres invalides<\/div>\n      <div class=\"d2-http-item d2-http-401\"><span class=\"d2-http-code\">401<\/span> Cl\u00e9 API invalide<\/div>\n      <div class=\"d2-http-item d2-http-404\"><span class=\"d2-http-code\">404<\/span> Non trouv\u00e9<\/div>\n      <div class=\"d2-http-item d2-http-429\"><span class=\"d2-http-code\">429<\/span> Limite d\u00e9pass\u00e9e<\/div>\n      <div class=\"d2-http-item d2-http-500\"><span class=\"d2-http-code\">500<\/span> Erreur serveur<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- CTA -->\n  <div class=\"d2-cta\">\n    <div>\n      <h3>Des questions sur l&#8217;API?<\/h3>\n      <p>Nous vous aidons volontiers pour l&#8217;int\u00e9gration.<\/p>\n    <\/div>\n    <a href=\"https:\/\/www.drugshortage.ch\/index.php\/kontakt\/\" class=\"d2-cta-btn\">Nous contacter \u2192<\/a>\n  <\/div>\n\n<\/div>\n\n<script>\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 copi\u00e9';\n    setTimeout(() => btn.textContent = 'copier', 2000);\n  });\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>API v1 \u00b7 public drugshortage.ch API Acc\u00e8s direct et structur\u00e9 \u00e0 toutes les p\u00e9nuries de m\u00e9dicaments en Suisse. Donn\u00e9es r\u00e9elles, mises \u00e0 jour quotidiennement, bilingue DE\/FR. Pas de scraping \u2013 API REST propre avec rate limiting. BASE URL drugshortage.ch\/api\/v1\/drugshortage.php?endpoint= &#x1f511; Authentification bash copier # Avec cl\u00e9 API (Bearer Token) curl -H &#8222;Authorization: Bearer VOTRE_CLE_API&#8220; &#8222;https:\/\/www.drugshortage.ch\/api\/v1\/drugshortage.php?endpoint=shortages&#8220;&#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-21674","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21674","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=21674"}],"version-history":[{"count":8,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21674\/revisions"}],"predecessor-version":[{"id":21761,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21674\/revisions\/21761"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}