PharmacyChecker Scraper — Drug Price Offers
Pricing
from $10.00 / 1,000 pharmacychecker price offers
PharmacyChecker Scraper — Drug Price Offers
Scrape PharmacyChecker drug price offers with pharmacy, strength, quantity, unit price, total price, shipping fees, and accreditation links.
Pricing
from $10.00 / 1,000 pharmacychecker price offers
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Extract public international prescription-drug price offers from PharmacyChecker into a clean dataset for medication cost research, price monitoring, pharmacy comparison, and AI-agent workflows. Each result represents one visible offer—not a page dump—and includes the drug and strength, accredited pharmacy profile, package quantity, unit and total prices, shipping terms, and source URL.
This Actor is designed for researchers, patient-support organizations, health-cost analysts, and developers who need structured public pricing data. It does not buy medication, submit a prescription, click affiliate checkout links, scrape authenticated areas, or provide medical advice.
What data can I extract from PharmacyChecker?
| Field group | Included data |
|---|---|
| Medication | Drug name, related generic name, brand/generic flag, strength, formulation |
| Pharmacy | Displayed pharmacy name and domain, PharmacyChecker profile URL, Tier 1 marker |
| Price | Unit price, price unit, package quantity, total package price, USD currency |
| Shipping | Parsed standard shipping cost, destination scope, displayed origin countries, shipping notes |
| Provenance | Page rank, stable offer ID, lowest-unit-price flag, exact source URL, scrape timestamp |
The dataset contains only international online-pharmacy price offers shown on public PharmacyChecker drug pages. It intentionally excludes local U.S. coupon searches that require a ZIP code, private APIs, patient data, editorial articles, and unrelated page content.
When should I use this PharmacyChecker Scraper?
Use it to compare international mail-order package prices, watch public price changes for a shortlist of medications, create structured inputs for an affordability analysis, or give an AI agent a predictable list of current offers. Do not use it as a substitute for PharmacyChecker's own verification portal, a clinician, a pharmacist, or legal advice about prescription importation.
PharmacyChecker states that price information can be submitted by participating pharmacies and updated over time. Treat every record as a point-in-time observation. Open sourceUrl and pharmacyProfileUrl before making a consequential decision.
Input
The default run searches Eliquis, sorts by unit price, and returns at most 25 offers. The Console prefill lowers that to 10 offers for a quick test.
{"drugNames": ["Eliquis", "Synthroid"],"strength": "","sortBy": "unitPrice","maxResults": 25,"maxConcurrency": 1,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
For an exact strength, either set one strength for all drugNames or provide exact public pages:
{"startUrls": [{ "url": "https://www.pharmacychecker.com/eliquis/5+mg/" },{ "url": "https://www.pharmacychecker.com/synthroid/100+mcg/" }],"sortBy": "totalPrice","maxResults": 50}
When startUrls is non-empty it replaces drugNames and strength. Only public https://www.pharmacychecker.com/{drug}/ and /{strength}/ pages are accepted. Unsupported or external URLs are ignored with a warning; a run with no usable inputs exits cleanly without result charges.
Output
One dataset item is one public international pharmacy offer:
{"offerId": "0b17e465bb1ae1de9c73b03e","rank": 1,"drugName": "Eliquis","genericName": "apixaban","drugType": "brand","strength": "5 mg","formulation": "tablet","pharmacyName": "CanadianPrescriptionDrugstore.com","pharmacyDomain": "canadianprescriptiondrugstore.com","pharmacyProfileUrl": "https://www.pharmacychecker.com/pharmacies/canadianprescriptiondrugstore.com/225/","pharmacyCheckerAccredited": true,"tierOne": false,"priceCategory": "international-online-pharmacy","unitPrice": 0.7,"unit": "tablet","quantity": 180,"quantityUnit": "tablets","totalPrice": 126,"currency": "USD","shippingCost": 14.95,"shippingInfo": "Ships worldwide except Canada from India Standard shipping: $14.95 (Free for first order)","shippingScope": "worldwide except Canada","dispensingCountries": ["India"],"shippingNotes": ["Free shipping for first order"],"isLowestUnitPrice": true,"queryLabel": "Eliquis","sourceUrl": "https://www.pharmacychecker.com/eliquis/5+mg/?sort=cost_per_unit","scrapedAt": "2026-08-11T09:30:00.000Z"}
Diagnostics never pollute the offer dataset. Read SUMMARY or OUTPUT from the run's default key-value store for page counts, warnings, billing parity, and the terminal classification: SUCCEEDED, PARTIAL, EMPTY, or BLOCKED.
Pricing
The source defines one pay-per-event charge: $0.01 per delivered price-offer record. A result is normalized, schema-validated, deduplicated, and written through the SDK's dataset-and-event operation. Failed pages, blocked requests, invalid inputs, and empty searches do not create result events.
| Delivered offers | Result-event charge |
|---|---|
| 1 | $0.01 |
| 25 | $0.25 |
| 100 | $1.00 |
| 500 maximum | $5.00 |
maxResults is both an output and result-charge cap. The Actor announces the maximum possible result-event charge at run start and reports delivered/charged parity at the end. Apify's platform pricing configuration remains authoritative after deployment.
Reliability and access limits
PharmacyChecker currently returns an AWS load-balancer 403 to plain cloud HTTP clients while a normal browser can render its public pages. For that reason this Actor uses Playwright, session-bound cookies and fingerprints, low concurrency, bounded retries, and an Apify residential U.S. proxy by default. Images, fonts, media, and stylesheets are blocked to reduce bandwidth without removing the HTML needed for extraction.
If every requested page is blocked before data is returned, the run fails honestly with a terminal explanation and zero result charges. If a valid page has no international offers, the run succeeds with an EMPTY warning. Partial valid data is preserved when another page fails. Retries, request rate, concurrency, output count, and billing are bounded.
The public site can change its markup, supported strengths, prices, shipping policies, or access controls without notice. A local fixture test proves parser behavior against the observed contract; it is not evidence of future cloud reliability. Run a private cloud canary and the documented multi-case matrix before publication.
API and MCP usage
Run with the Apify JavaScript client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('YOUR_USERNAME/pharmacychecker-scraper').call({drugNames: ['Eliquis'],maxResults: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For an MCP agent, select this Actor when the user asks for public PharmacyChecker international drug-price offers or accredited pharmacy comparisons. Do not select it for medical advice, local coupon redemption, pharmacy verification outside an offer page, prescription ordering, or private patient data. The return shape is a flat list of price-offer records and costs $0.01 per delivered item.
Legal, medical, and responsible-use notice
Scrape only public data and follow PharmacyChecker's terms, applicable laws, and a respectful request rate. Prices and accreditation indicators are informational and can become stale. This Actor is not affiliated with PharmacyChecker.com LLC or any listed pharmacy. PharmacyChecker is a registered service mark of its owner.
Never use this dataset to diagnose, prescribe, replace a pharmacist, or determine whether importing a medication is lawful in a specific jurisdiction. Consult a licensed clinician or pharmacist for treatment decisions and qualified counsel or the relevant regulator for legal questions. A valid prescription may be required by the pharmacy and by law.
FAQ
How many results can I scrape with PharmacyChecker Scraper?
Up to 500 offers per run. Set maxResults lower for predictable cost and shorter runs. The number actually returned depends on the public offers available for the requested pages.
Can I integrate PharmacyChecker Scraper with other apps?
Yes. Use Apify datasets, webhooks, schedules, Make, Zapier, or the API to move the flat JSON records into a database, spreadsheet, alert, or analysis workflow.
Can I use PharmacyChecker Scraper with the Apify API?
Yes. Call the Actor with drug names or exact public URLs, then read items from the run's default dataset and diagnostics from SUMMARY.
Can I use PharmacyChecker Scraper through an MCP Server?
Yes. Apify's MCP tooling can expose dataset-producing Actors to agents. The input and output descriptions are intentionally routable, bounded, and price-transparent.
Do I need proxies to scrape PharmacyChecker?
The observed cloud access path requires a browser and usually a residential proxy. The default input uses Apify Residential in the United States. Direct traffic may work from some networks but is not the advertised reliable path.
Is it legal to scrape PharmacyChecker data?
That depends on your jurisdiction, purpose, access method, and the site's current terms. This Actor accesses public pages only and does not bypass authentication, but you remain responsible for compliant use.
Your feedback
If a public PharmacyChecker page changes or a field is missing, share the run ID, redacted input, source URL, and final status message. Do not include patient, prescription, payment, or account data.