GoodRx API endpoint
Returns one dedicated GoodRx drug guide. side-effects: common and less common side effects with reported frequencies, serious and reported side effects, and the label source. dosage: coupon price per dosage and quantity for each dosage form, and typical dosing. interactions: interacting drugs grouped by severity (not_recommended, usually_not_recommended, increased_risk), with GoodRx slugs where linked. Includes reviewer, last-reviewed date, and related guides. Use pairs from /goodrx/drug-guides; a drug without that guide returns 404. Requests use US egress because GoodRx is US-only.
/goodrx/drug-guideQuery parameters:
slug (required): drug slug from /api/v1/goodrx/drug-guides (for example torsemide).topic (required): one of side-effects, dosage, interactions.Returns the guide title, drug name, reviewed_by and last_reviewed when present, summary paragraphs, sections (each with an optional title, paragraphs, and lists of items), price_tables on dosage guides, the label source_url on side-effects guides, and related guides.
frequency when shown (for example 82%); reported and serious side effects carry a detail after the effect name, and lists keep their intro sentence as label (for example Cream:).price_tables has one table per dosage form with rows of dosage, quantity, coupon price, unit_price, and the price_url of the matching price page; a "Typical dosage" section holds the dosing text. Some guides have no price table.severity of not_recommended, usually_not_recommended, or increased_risk and GoodRx's own wording as label; items linked to a GoodRx drug page include its slug. Some drugs have no listed interactions and return only summary.A drug without a dedicated guide for that topic returns 404 (use /api/v1/goodrx/drug-info for the drug's general page). Invalid slug or topic values return 400.
Recent results are reused: a verified response is served for up to 30 minutes, and GoodRx refuses automated traffic for an hour or more at times. When every live attempt is refused, the last verified response (at most about a day old) is returned instead of an error, with X-Availability-Mode: stale and its age in X-Availability-Last-Success-Age-Seconds. Check those headers to tell a retained copy from a live one. A response returned as stale is billed 1 credit instead of the endpoint's full price.
| Field | In the sample | Value in the sample |
|---|---|---|
| slug | Has a value | |
| topic | Has a value | “interactions” |
| title | Has a value | “Torsemide Interactions” |
| drug | Has a value | “Torsemide” |
| url | Has a value | goodrx.com |
| summary | Has a value | 1 entry |
| sections | Has a value | 1 entry |
| related | Has a value | 4 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Drug slug from /goodrx/drug-guides | torsemide | |
| topic | string | Yes | Guide topic Allowed values: side-effects, dosage, interactions. | side-effects | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/goodrx/drug-guide?slug=torsemide&topic=side-effects" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 0,
"message": "success",
"data": {
"slug": "torsemide",
"topic": "interactions",
"title": "Torsemide Interactions",
"drug": "Torsemide",
"url": "https://www.goodrx.com/torsemide/interactions",
"summary": [
"Torsemide may interact with certain medications or supplements."
],
"sections": [
{
"paragraphs": [],
"lists": [
{
"label": "Using this medicine with any of the following medicines is not recommended.",
"severity": "not_recommended",
"items": [
{
"name": "Desmopressin",
"slug": "desmopressin"
}
]
}
]
}
],
"related": [
{
"title": "Torsemide side effects",
"slug": "torsemide",
"topic": "side-effects",
"url": "https://www.goodrx.com/torsemide/side-effects"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/goodrx.drugGuideResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | goodrx.DrugGuideResponse | No | ||||
| data.drug | string | No | ||||
| data.last_reviewed | string | No | ||||
| data.price_tables | array | No | ||||
| data.price_tables[].form | string | No | ||||
| data.price_tables[].rows | array | No | ||||
| data.price_tables[].rows[].dosage | string | No | ||||
| data.price_tables[].rows[].price | number | No | ||||
| data.price_tables[].rows[].price_url | string | No | ||||
| data.price_tables[].rows[].quantity | string | No | ||||
| data.price_tables[].rows[].unit_price | number | No | ||||
| data.related | array | No | ||||
| data.related[].last_modified | string | No | ||||
| data.related[].slug | string | No | ||||
| data.related[].title | string | No | ||||
| data.related[].topic | string | No | side-effects, dosage, interactions | |||
| data.related[].url | string | No | ||||
| data.reviewed_by | array | No | ||||
| data.sections | array | No | ||||
| data.sections[].lists | array | No | ||||
| data.sections[].lists[].items | array | No | ||||
| data.sections[].lists[].items[].detail | string | No | ||||
| data.sections[].lists[].items[].frequency | string | No | ||||
| data.sections[].lists[].items[].name | string | No | ||||
| data.sections[].lists[].items[].slug | string | No | ||||
| data.sections[].lists[].label | string | No | ||||
| data.sections[].lists[].severity | string | No | not_recommended, usually_not_recommended, increased_risk | |||
| data.sections[].paragraphs | array | No | ||||
| data.sections[].title | string | No | ||||
| data.slug | string | No | ||||
| data.source_url | string | No | ||||
| data.summary | array | No | ||||
| data.title | string | No | ||||
| data.topic | string | No | side-effects, dosage, interactions | |||
| data.url | string | No |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/goodrx/drug-guide?slug=torsemide&topic=side-effects" \
-H "x-api-key: $CRAWLORA_API_KEY"