curl 'https://drug-database.com/v1/drugs/lookup\ ?system=pharmacode&code=1234567' \ -H 'Authorization: Bearer ms_live_…'
Pharmacode Lookup API
Pharmacode Lookup API for Swiss drugs
Turn a Swiss Pharmacode into a full drug product in one call. GET /v1/drugs/lookup?system=pharmacode&code=… does a single indexed read and returns the canonical drug row — ATC code, manufacturer, Swissmedic dispensing category, BAG-SL reimbursement flag — plus the matched alias with its pack size and public price.
Because every product carries a Swissmedic-No and a set of aliases, a Pharmacode lookup is also your bridge to GTIN and Swissmedic-No: resolve once, then read the full record to cross-walk to any other identifier system for the same pack.
{
"drug": {
"id": "3f8a1c2d-1b4e-4c7a-9d2f-0a1b2c3d4e5f",
"swissmedic_no": "65187",
"product_name": "Aspirin Cardio 100 mg",
"atc_code": "B01AC06",
"manufacturer": "Bayer (Schweiz) AG",
"dispensing_cat": "B",
"is_reimbursed": true,
"country_code": "CH",
"last_synced_at": "2026-06-08T02:14:00Z"
},
"matched_alias": {
"drug_id": "3f8a1c2d-…",
"system": "pharmacode",
"code": "1234567",
"pack_size": 30,
"public_price": 14.35,
"currency": "CHF",
"is_primary": true
},
"_meta": { "sources": [ "bag_sl", "oddb" ] }
}What you get
One indexed read
Single lookup on (system, code) — the hot path of every Swiss dispense flow.
GTIN / Swissmedic-No bridge
Resolved product carries swissmedic_no and all aliases, so you can cross-walk identifier systems.
Pack-level detail
The matched alias returns pack_size, public_price, and currency for the exact Pharmacode.
Frequently asked
What is a Pharmacode?
Pharmacode is the Swiss pharmaceutical article number maintained in the Refdata register. It identifies a specific pack on the Swiss market. The lookup endpoint maps it to the canonical drug row in one indexed read.
Can I bridge from Pharmacode to GTIN or Swissmedic-No?
Yes. The resolved drug carries its swissmedic_no, and the full record (GET /v1/drugs/:id) lists every alias — GTIN, Swissmedic-No, and others — for the same product, so you can cross-walk between identifier systems.
Which other identifier systems does the same endpoint accept?
The same /v1/drugs/lookup endpoint resolves gtin, pharmacode, cip13, pzn, swissmedic_no, ean, ndc11, and dmd_amppid — just change the system parameter.
Start free — 100 requests/day
Free tier: 100 requests/day, no card. Lookups need the drugs:read scope. The same endpoint resolves GTIN, NDC, PZN, CIP13, EAN, and Swissmedic-No — see the docs.