GoodRx Drug Price Scraper avatar

GoodRx Drug Price Scraper

Pricing

$1.80 / 1,000 pharmacy offers

Go to Apify Store
GoodRx Drug Price Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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.

📦 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

  1. Add one or more medications and 5-digit US ZIP codes.
  2. Pick local pickup, mail order, or both.
  3. Add any drug, pharmacy, sorting, or result filters.
  4. 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

FieldTypeWhat it does
medicationsstring[]Adds drug names, GoodRx page slugs, or GoodRx drug page URLs.
zipCodesstring[]Adds one or more 5-digit US ZIP codes.
formstringUses one form for every medication. Leave empty to use the form found by GoodRx.
dosagestringUses one dosage for every medication. Leave empty to use the dosage found by GoodRx.
quantityintegerSets one priced quantity for every medication. Leave empty to use the quantity found by GoodRx.
deliveryModesstring[]Chooses local pickup, mail order, or both.
radiusMilesintegerSets the pickup search radius in miles. It is not used for mail order.
pharmacyChainsstring[]Keeps named pharmacy chains in local pickup offers.
sortBystringOrders offers by price, distance, or pharmacy name. Distance applies only to pickup.
maxOffersintegerStops after this many offers for each medication, ZIP code, and delivery mode. Leaving it empty returns all available offers until the source is exhausted.
includePrintableCouponDetailsbooleanGets 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

FieldTypeWhat it does
medicationNamestringMedication name resolved by GoodRx.
genericNamestringGeneric name, when GoodRx provides it.
formstringMedication form used for the price.
dosagestringMedication strength used for the price.
quantitynumberMedication quantity covered by the offer.
zipCodestringUS ZIP code used for the comparison.
deliveryModestringpickup or mail_order.
pharmacyNamestringPharmacy or mail-order service with the offer.
pharmacyTypestringPharmacy type shown by GoodRx.
pharmacyLogoUrlstringPharmacy logo URL shown by GoodRx.
pharmacyAddressstringStore address, when available.
distanceMilesnumberDistance to a pickup store, when available.
pricesobject[]Available price choices for the offer.
prices.typestringCash, retail, coupon, Gold, or membership price type.
prices.amountnumberPrice in US dollars.
prices.savingsPercentnumberSavings percent shown by GoodRx, when available.
prices.offerUrlstringGoodRx coupon or offer link, when available.
printableCouponobjectPublic coupon IDs, when requested and available.
printableCoupon.binstringCoupon bank identification number.
printableCoupon.pcnstringCoupon processor control number.
printableCoupon.groupstringCoupon group ID.
printableCoupon.memberIdstringCoupon member ID.
sourceUrlstringGoodRx page used for the comparison.
observedAtstringDate 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 🫡

Made with ❤️ by Maxime Dupré