REFERENCE

Search

GET/v1/medicines/search

The best matches for a person typing a name, best match first. Each word of q matches the start of a brand, alternate name, generic or manufacturer word. When q is an ID in any profile, an old ID or a UUID, the answer is that one medicine. There is no cursor: to page every match, use List medicines with q.

Requestcurl
curl -G https://api.oushodh.dev/v1/medicines/search \
  -d q=MED-012933 \
  -H "Authorization: Bearer $OUSHODH_KEY"

Query parameters

q is required.
  • qstring, required
    What the person typed: brand, generic, manufacturer or alternate-name words, or an ID.
  • limitinteger
    Most medicines to return. 1 to 50. Default 20.

Response

The best matches.
  • itemslist
    The best matches first, at most limit. Each is a medicine object.
  • totalinteger
    How many medicines match, including those past limit.
Response200
{
  "items": [
    {
      "id": "MED-012933",
      "uuid": "01a1ba6f-f4d6-7143-ac84-9376f520eef8",
      "brand": "Napa",
      "category": null,
      "product_name": "Napa 500 mg Tablet",
      "product_image": null,
      "unit": null,
      "size": null,
      "price": 1.2,
      "price_per": "unit",
      "price_source": "dgda_price",
      "description_en": null,
      "description_bn": null,
      "dosage_form": "Tablet",
      "strength": "500 mg",
      "generic_name": "Paracetamol",
      "manufacturer": "Beximco Pharmaceuticals PLC.",
      "source_url": "https://medex.com.bd/brands/10452/napa-500-mg-tablet",
      "last_updated": "2026-11-09T15:27:34Z",
      "dgda_listed": true,
      "medicine_type": "allopathic"
    }
  ],
  "total": 1
}

Errors

Each error has a code and a message.
  • 400 bad_requestA bad parameter, such as limit=0, a time in another form, or a missing q.
  • 401 unauthorizedNo key, an unknown key or a revoked key. The answer never says which.
  • 403 plan_expiredThe key's account has no active plan.
  • 429 rate_limitedMore requests in a minute than the key's plan allows.
  • 429 quota_exceededThe plan's requests for this month are used up.
  • 500 internalA fault on our side. The details go to our log, not the answer.