GoodRx Drug Price Scraper
Pricing
$1.80 / 1,000 pharmacy offers
GoodRx Drug Price Scraper
Compare GoodRx pharmacy prices for medications by US ZIP code. Get pickup or mail-order offers with drug details, price types, offer links, and the time each price was found.
Pricing
$1.80 / 1,000 pharmacy offers
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
💊 Compare GoodRx drug prices by ZIP code
GoodRx Drug Price Scraper helps health apps, researchers, and price-comparison teams collect public pharmacy offers. It returns medication details, local or mail-order pharmacies, available price types, offer links, ZIP codes, and collection times in a clean dataset.
- Compare offers for a Prescription Discount Card across pharmacies.
- Check which offer may fit the Best Prescription Discount Card search for a medication and ZIP code.
- Review public prices when asking What Is the Best Free Prescription Discount Card.
- Build a Walmart Cash Price Drug List from offers that GoodRx shows for Walmart.
- Check Walmart Prescription Prices Without Insurance when matching public price types are available.
- Compare public offers for a Prescription Discount Card for Zepbound by ZIP code.
📦 Returned data
Each dataset row is one successful GoodRx pharmacy offer. It can include the resolved drug and generic names, form, dosage, quantity, pharmacy facts, distance, available cash, retail, coupon, Gold, or membership prices, public coupon IDs, source links, and the time the price was read.
The run summary lists totals, the lowest offer found for each medication, ZIP code, and delivery mode, and comparisons that returned no offers.
🚀 Running the Actor
- Add one or more medications and 5-digit US ZIP codes.
- Pick local pickup, mail order, or both.
- Add any drug, pharmacy, sorting, or result filters.
- Click Start. Open the dataset for offers or the key-value store for the run summary.
The same filters apply to each medication and ZIP code in one run. GoodRx prices can change. Check the final medication details and price with the pharmacy. This Actor gives price-comparison data, not medical, insurance, or pharmacy advice.
🧾 Input
| Field | Type | What it does |
|---|---|---|
medications | string[] | Adds drug names, GoodRx page slugs, or GoodRx drug page URLs. |
zipCodes | string[] | Adds one or more 5-digit US ZIP codes. |
form | string | Uses one form for every medication. Leave empty to use the form found by GoodRx. |
dosage | string | Uses one dosage for every medication. Leave empty to use the dosage found by GoodRx. |
quantity | integer | Sets one priced quantity for every medication. Leave empty to use the quantity found by GoodRx. |
deliveryModes | string[] | Chooses local pickup, mail order, or both. |
radiusMiles | integer | Sets the pickup search radius in miles. It is not used for mail order. |
pharmacyChains | string[] | Keeps named pharmacy chains in local pickup offers. |
sortBy | string | Orders offers by price, distance, or pharmacy name. Distance applies only to pickup. |
maxOffers | integer | Stops after this many offers for each medication, ZIP code, and delivery mode. Leaving it empty returns all available offers until the source is exhausted. |
includePrintableCouponDetails | boolean | Gets public BIN, PCN, group, and member IDs from found coupon pages. This makes the run slower. |
A successful default-input QA run used:
{"medications": ["atorvastatin"],"zipCodes": ["10001"],"deliveryModes": ["pickup"],"sortBy": "price","maxOffers": 5,"includePrintableCouponDetails": false}
📤 Output
| Field | Type | What it does |
|---|---|---|
medicationName | string | Medication name resolved by GoodRx. |
genericName | string | Generic name, when GoodRx provides it. |
form | string | Medication form used for the price. |
dosage | string | Medication strength used for the price. |
quantity | number | Medication quantity covered by the offer. |
zipCode | string | US ZIP code used for the comparison. |
deliveryMode | string | pickup or mail_order. |
pharmacyName | string | Pharmacy or mail-order service with the offer. |
pharmacyType | string | Pharmacy type shown by GoodRx. |
pharmacyLogoUrl | string | Pharmacy logo URL shown by GoodRx. |
pharmacyAddress | string | Store address, when available. |
distanceMiles | number | Distance to a pickup store, when available. |
prices | object[] | Available price choices for the offer. |
prices.type | string | Cash, retail, coupon, Gold, or membership price type. |
prices.amount | number | Price in US dollars. |
prices.savingsPercent | number | Savings percent shown by GoodRx, when available. |
prices.offerUrl | string | GoodRx coupon or offer link, when available. |
printableCoupon | object | Public coupon IDs, when requested and available. |
printableCoupon.bin | string | Coupon bank identification number. |
printableCoupon.pcn | string | Coupon processor control number. |
printableCoupon.group | string | Coupon group ID. |
printableCoupon.memberId | string | Coupon member ID. |
sourceUrl | string | GoodRx page used for the comparison. |
observedAt | string | Date and time when the price was read. |
This full row came from the current beta build:
{"medicationName": "Atorvastatin","genericName": "atorvastatin","form": "tablet","dosage": "40mg","quantity": 30,"zipCode": "10001","deliveryMode": "pickup","pharmacyName": "ShopRite","pharmacyType": "chain","pharmacyLogoUrl": "https://www.grxstatic.com/pharmacy_logos/circle_icon/23356.png","prices": [{"type": "membership","amount": 0,"savingsPercent": 100,"offerUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price"},{"type": "retail","amount": 46.59,"offerUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price"}],"sourceUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price","observedAt": "2026-07-27T18:13:23.986Z"}
💳 Pricing
This Actor uses pay per event. You are charged $0.0018 for each successful pharmacy price offer saved to the dataset. Comparisons that save no offer do not trigger that event. Asking for printable coupon details does not add a separate event charge.
🔌 Integrations
Send the dataset to Google Sheets, Make, Zapier, Slack, webhooks, or your own app with the Apify API. You can also schedule runs to check the same medication and ZIP code again.
❓ FAQ
Does this show the final price at the pharmacy?
No. It saves public prices shown by GoodRx. Price, eligibility, stock, and coupon acceptance can change, so check with the pharmacy.
Can I compare pickup and mail-order offers?
Yes. Choose either mode or both. Rows keep the delivery mode so you can compare them safely.
Can I limit results to Walmart or another chain?
Yes for local pickup offers. Add the chain name under pharmacyChains. A chain appears only when GoodRx returns a matching offer.
Do I need a GoodRx login?
The input does not ask for GoodRx credentials. The Actor reads public GoodRx price pages and does not sign in or submit order, refill, transfer, SMS, or email forms.
Is this the official GoodRx website or API?
No. This is an independent Apify Actor. It returns source URLs so you can review the matching GoodRx pages.
📝 Changelog
0.0: Initial release
- Compare GoodRx pickup and mail-order pharmacy offers by medication and US ZIP code, with price filters and optional printable coupon details.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- ICD-10 Codes Scraper — look up diagnosis codes and official code names for health data workflows.
- Hospital Price Transparency Scraper — compare public hospital cash prices and payer rates.
- CMS Open Payments Scraper — collect public provider, hospital, company, and payment data.
- CMS Nursing Home Compare Scraper — export CMS nursing home details, ratings, staffing, and penalties.
- Disease Outbreak News Scraper — collect official public-health alerts and outbreak reports.
Made with ❤️ by Maxime Dupré