Solution · Pharmacode lookup
Pharmacode Lookup API for Swiss drugs.
Resolve a Swiss Pharmacode to the canonical drug product in one indexed read — with ATC, dispensing, reimbursement, and the GTIN / Swissmedic-No bridge.
GET /api/v1/drugs/lookup?system=pharmacode
What you get
The job, end to end
Turn a Swiss Pharmacode into a full drug product in one call. GET /api/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.
GTIN / Swissmedic-No bridge
Pack-level detail
In code
A representative call
One indexed lookup on system=pharmacode returns the canonical drug plus the exact pack that matched.
curl 'https://drug-database.com/api/v1/drugs/lookup\
?system=pharmacode&code=1234567' \
-H 'Authorization: Bearer dd_live_…'{
"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-27T02: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"] }
}Coverage & sourcing
- The same endpoint resolves gtin, pharmacode, cip13, pzn, swissmedic_no, ean, ndc11 and dmd_amppid.
- Pharmacode and pack data are data sourced from oddb and BAG-SL.
- Each resolved row carries last_synced_at for pack-level freshness.
- We are not affiliated with or endorsed by Refdata, oddb or BAG.
- · Lookups need the drugs:read scope.
- · The same endpoint resolves GTIN, NDC, PZN, CIP13, EAN and Swissmedic-No — see the docs.
FAQ
Common questions
Ready when you are
Ship pharmacode lookup on data that stays fresh.
Free to test — 100 requests/day, no card. Upgrade only when you need the throughput.
Free tier · 100 requests/day · No card required