GoodRx Drug Prices Scraper — No Login Required avatar

GoodRx Drug Prices Scraper — No Login Required

Pricing

from $60.00 / 1,000 goodrx price pages

Go to Apify Store
GoodRx Drug Prices Scraper — No Login Required

GoodRx Drug Prices Scraper — No Login Required

Extract GoodRx prescription price comparison data by drug and ZIP. No login or cookies needed. Supports pickup and mail-order prices, pharmacy filters, retries, diagnostics, and optional coupon fields.

Pricing

from $60.00 / 1,000 goodrx price pages

Rating

0.0

(0)

Developer

Crowd Pull

Crowd Pull

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

GoodRx Drug Prices Scraper

Compare GoodRx prescription prices across nearby pharmacies by drug, ZIP, form, dosage, quantity, radius, sort order, and pickup or mail-order mode. The actor extracts structured pharmacy offer rows for price monitoring, prescription price intelligence, and local pharmacy comparison workflows.

This actor uses a real browser because GoodRx renders the price list inside a protected Next.js page. It does not call private partner APIs, does not sign in, and does not submit any SMS, email, insurance, prescription-transfer, or order flows.

Features

  • Search one or many drugs across one or many US ZIP codes.
  • Compare pickup pharmacies, mail-order offers, or both.
  • Extract coupon price, retail/list price, GoodRx Gold price when available, distance, address, and deep links.
  • Filter emitted rows by pharmacy chain after extraction.
  • Retry blocked or wrong-location pages with fresh browser and proxy sessions.
  • Save run summaries, normalized search specs, failed targets, and drug monographs to key-value storage.
  • Optionally open discovered printable coupon pages and extract public coupon fields.

Inputs

  • drugNames: Drug names such as atorvastatin, Lipitor, or Adderall XR.
  • startUrls: Direct GoodRx drug URLs, such as https://www.goodrx.com/atorvastatin.
  • zips: One or more US ZIP codes. The actor sets the GoodRx location cookie before loading each price page.
  • form, dosage, quantity, radius, sortBy, deliveryType: GoodRx price-filter controls.
  • pharmacyChains: Optional post-extraction chain filter.
  • resolveAutocomplete: Optional GoodRx autocomplete resolution. It is off by default to reduce extra protected-page navigation.
  • maxAttemptsPerTarget: Retries blocked or wrong-location pages with a fresh browser and proxy session.
  • includeCoupons: When enabled, opens discovered printable coupon URLs only and extracts public BIN/PCN/Group/Member ID fields.
  • proxyConfig: US residential proxy settings. GoodRx commonly gates datacenter or non-US traffic.

Example Input

{
"drugNames": ["atorvastatin"],
"zips": ["94110"],
"quantity": 30,
"radius": 10,
"sortBy": "lowest_price",
"deliveryType": "pickup",
"maxOffersPerDrugZip": 10,
"maxAttemptsPerTarget": 3,
"proxyConfig": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Multi-ZIP Example

{
"drugNames": ["atorvastatin", "metformin"],
"zips": ["94110", "10001", "60614"],
"deliveryType": "both",
"maxOffersPerDrugZip": 5,
"includeCoupons": false
}

Output

Each pharmacy offer row includes:

  • Drug input, resolved slug, canonical drug name, ZIP, delivery type
  • Pharmacy chain, store name, address, distance
  • GoodRx coupon price, retail/list price, savings percent, Gold price when surfaced
  • Printable coupon URL and optional coupon fields
  • GoodRx pharmacy deep link and raw audit text

Run metadata is saved to the default key-value store under SUMMARY, SEARCH_SPECS, FAILED_TARGETS, and DRUG_MONOGRAPHS.

Example Output

{
"type": "pharmacy_offer",
"source": "goodrx",
"status": "ok",
"drugInput": "atorvastatin",
"canonicalDrugName": "atorvastatin",
"zip": "94110",
"deliveryType": "pickup",
"pharmacyChain": "Costco",
"storeName": "Costco Pharmacy",
"address": "450 10th St, San Francisco, CA 94103",
"distanceMiles": 0.8,
"couponPriceUsd": 11.52,
"couponPriceText": "$11.52",
"listPriceUsd": 39.99,
"listPriceText": "$39.99",
"savingsPercent": 71,
"couponUrl": "https://www.goodrx.com/...",
"pharmacyDeepLink": "https://www.goodrx.com/atorvastatin",
"quantity": 30,
"radiusMiles": 10,
"scrapedAt": "2026-06-01T06:49:58.000Z"
}

Pricing

Primary charge: $70 per 1,000 GoodRx price pages. A price page is one drug, one ZIP code, and one delivery mode. Pharmacy offer rows are charged separately at $2.50 per 1,000 emitted rows. Optional printable coupon extraction is charged only when enabled.

Diagnostic rows for blocked pages, ambiguous names, no-offer pages, or navigation failures are not charged as successful price pages.

Limitations

  • GoodRx may change prices, availability, filters, and rendered page payloads without notice.
  • This actor depends on browser rendering and US residential proxy quality, so large jobs should keep concurrency low.
  • It does not verify prescriptions, insurance eligibility, pharmacy inventory, checkout totals, or whether a coupon will be accepted at the counter.
  • It does not sign in to GoodRx accounts or submit SMS, email, prescription-transfer, refill, or purchase flows.

Notes

The actor parses both visible price cards and GoodRx's rendered Next.js payload, then rejects Companion-only upsells and wrong-location pages. GoodRx prices can change and may vary by exact drug, form, dosage, quantity, ZIP, pharmacy, insurance status, and account state. Treat actor output as price-comparison data, not medical or pharmacy advice. Users should verify final price and medication details with the pharmacy.