Egyptian Drug Prices API
The whole Egyptian drug catalogue as one well-formed JSON: dated, up-to-date prices; ingredients, companies and categories with normalised ids; alternatives; barcodes; and a delta feed that tells your system only what changed.
GET https://api.dwaprice.com/v1/drugs/by-barcode/6221051011317
Authorization: Bearer dp_live_…
{ "data": [ { "id": "congestal-20-tabs", "trade_name_ar": "كونجستال 20 قرص",
"price": { "current": 50, "previous": 31, "unit_price": 2.5, "currency": "EGP",
"effective_date": "2024-06-06", "verified": true },
"company": { "id": "sigma", "name": "Sigma" }, "status": "listed", … } ] }Coverage today
- companies
- 3,535
- ingredients
- 4,041
What you get
One Drug object per product and pack, with stable types: numbers are numbers, unknown is null, dates are ISO 8601.
| Field | Type | Description | Example |
|---|---|---|---|
id | Type: string | Stable public id; a renamed product answers 301 to its new id | congestal-20-tabs |
trade_name_en / trade_name_ar | Type: string | null | Trade name in English and Arabic | كونجستال 20 قرص |
scientific_name | Type: string | null | Scientific/generic name as listed | Chlorpheniramine+paracetamol+… |
ingredients[] | Type: {id, name_en, name_ar, strength, atc_code}[] | Active ingredients with strength and ATC code | {"id":"paracetamol","strength":"650 mg"} |
strength | Type: string | null | Strength as listed | 650/4/60 mg |
dosage_form | Type: {class, en, ar} | Dosage form: a controlled class plus the listed text | {"class":"tablet","ar":"قرص"} |
route | Type: enum | null | Route of administration (controlled) | oral |
units_per_package | Type: integer | null | Units per pack | 20 |
price.current | Type: number | null | Current price in EGP (a number, never a string) | 50 |
price.previous | Type: number | null | Previous price | 31 |
price.unit_price | Type: number | null | Price per unit | 2.5 |
price.effective_date | Type: date | null | Date of the price on the list | 2024-06-06 |
price.updated_at | Type: timestamp | null | When we recorded the current price (sync key) | 2026-10-21T14:02:00Z |
price.verified | Type: boolean | Checked against a published source | true |
barcode | Type: string | null | EAN/GTIN | 6221051011317 |
company | Type: {id, name} | null | Normalised marketing company | {"id":"sigma","name":"Sigma"} |
manufacturer | Type: {id, name} | null | Manufacturer when different | null |
category | Type: {id, en, ar} | null | Therapeutic category as its own object | {"id":"cold"} |
atc_codes | Type: string[] | Product-level ATC codes | ["N02BE01"] |
prescription_status | Type: enum | null | prescription / otc / not_applicable | otc |
status | Type: enum | Marker of the line on the price list | listed |
updated_at | Type: timestamp | Last change of any field (for updated_since) | 2026-10-21T14:02:00Z |
links.web_url | Type: string | The public drug page | https://dwaprice.com/dawa/… |
Every field and endpoint: /api/en/docs
What sets this API apart
Delta feed
GET /price-changes?since= returns only what changed: prices, statuses, new or removed products. A POS syncs the deltas instead of reloading the catalogue.
Price history
Every recorded price of every product with its date; new changes are appended automatically.
Unit price
Price per tablet, capsule or sachet to compare pack sizes.
Verified prices
A verified flag (and date) on every price checked against a published source.
Alternatives
GET /drugs/{id}/alternatives: same ingredients and strength, cheapest first, with the price difference.
Barcode lookup
GET /drugs/by-barcode/{barcode} for the pharmacy scanner, plus typo-tolerant Arabic and English search.
Who it is for
Pharmacy POS / ERP
An up-to-date price for every item at the till, daily delta sync, matching by barcode or price-list name.
Mobile apps
Typo-tolerant Arabic search, cheaper-alternatives pages, data in Arabic and English.
E-commerce
The full catalogue with strength, form, company and category, prices updated automatically.
Insurance / TPA
Consistent claim pricing, the price at the dispensing date, lowest-cost alternatives.
Clinics and hospitals
Prescription cost before writing it, same-ingredient alternatives, listing status.
Plans and pricing
Start with the keyless sample, then pick the plan for your volume. Enterprise includes a full database export (CSV/Excel/JSON) and webhooks on price changes.
Sample
Free
- Fixed set of 50 drugs, no key
- change feed window: 7 days
- Support: docs
Starter
1,500 EGP / month
- 60 requests / min
- 50,000 requests / month
- 2 keys
- change feed window: 7 days
- Support: email, 2 business days
- Most popular
Business
6,000 EGP / month
- 300 requests / min
- 500,000 requests / month
- 5 keys
- change feed window: 90 days
- Support: email, 1 business day
Enterprise
from 20,000 EGP / month
- 1,000 requests / min
- 5,000,000 requests / month
- 100 keys
- change feed window: 365 days
- Full export (CSV/Excel/JSON)
- Webhooks on price changes
- IP allowlist
- Support: named contact, 4 h, 99.9% uptime
Billing is manual for now (bank transfer or Fawry) and recorded on your account; online payment is coming. Terms: /api/en/terms
FAQ
Where do the prices come from and how often are they updated?
We collect prices from the drug price lists published in Egypt and from manufacturers, and verify them against published sources. The database syncs every ten minutes and the API captures changes within minutes.
Is the free sample real data?
Yes: 50 real products with current prices, history and alternatives, in exactly the same shapes. The only difference from a paid key is the size of the catalogue.
How do I get a key?
Send an access request; we answer within one business day. Once activated you log in to the developer dashboard with your e-mail and create the key yourself; it is shown once and never stored.
What happens when I exceed my plan limits?
You get 429 with a Retry-After header. The per-minute limit resets every minute and the monthly quota on the first of the month; X-RateLimit and X-Quota headers on every response show what is left.
Can I download the whole database?
Yes, on the Enterprise plan: a full CSV or JSON export through a signed link valid for one hour, generated from the latest dataset version.
Do response shapes change?
We never rename or remove a field in /v1; we only add. Breaking changes ship in /v2 with /v1 kept for at least a year.
Does the API include clinical information or images?
No. The current version is catalogue and price data only: names, ingredients, forms, companies, categories, ATC codes, barcodes, prices with history, alternatives.
May I resell or republish the data?
No. The license covers use inside your product or organisation only; see the license terms.
Request access
Tell us about your use and we answer within one business day with your dashboard link.
Or through the contact page. Technical terms: since, cursor, X-RateLimit-Remaining.