Blink Health APIblinkhealth.com ↗
Access Blink Health medication pricing, formulations, brand/generic mappings, and nearby pharmacy data via 6 structured API endpoints.
What is the Blink Health API?
The Blink Health API exposes 6 endpoints covering medication pricing, available formulations, and participating pharmacy locations across the United States. Use get_drug_pricing to retrieve home delivery and local pickup prices for every dosage and form of a given drug, or call get_nearby_pharmacies with a ZIP code to get a list of network pharmacies with addresses, phone numbers, and distances. The full preferred drug list runs to thousands of medications.
curl -X GET 'https://api.parse.bot/scraper/1b2b7ddd-439b-4d3c-927e-58cfc448642c/get_drug_pricing?slug=metformin' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace blinkhealth-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Blink Health SDK — medication pricing, formulations, and pharmacy finder."""
from parse_apis.blink_health_api import BlinkHealth, ZipCode, DrugNotFound
client = BlinkHealth()
# Search for a medication by name
results = client.drugs.search(query="metformin", limit=3)
for drug_result in results:
print(drug_result.name, drug_result.slug, drug_result.generic_name)
# Drill into pricing for one medication
drug = client.drugs.get(slug="atorvastatin")
print(drug.drug_name, drug.generic_name)
for form in drug.forms:
print(f" Form: {form.display_form}")
for dosage in form.dosages:
print(f" {dosage.display_dosage}")
for qty in dosage.quantities:
if qty.pricing:
print(f" {qty.display_quantity}: {qty.pricing.home_delivery.price}")
# Browse formulations via sub-resource (no pricing, lighter call)
metformin = client.drug(slug="metformin")
for form in metformin.formulations.list(limit=5):
print(form.display_form, [d.display_dosage for d in form.dosages])
# Brand-to-generic mapping lookup
mapping = client.brandgenericmappings.get(slug="lipitor")
print(mapping.drug_name, mapping.generic_name, mapping.slug)
# Find pharmacies near a ZIP code
search = client.pharmacysearch(zip_code=ZipCode._10001.value)
for pharmacy in search.nearby(limit=5):
print(pharmacy.name, pharmacy.address.city, pharmacy.address.state, pharmacy.distance)
# Typed error handling for a non-existent drug
try:
client.drugs.get(slug="nonexistent-xyz-medication")
except DrugNotFound as exc:
print(f"Drug not found: {exc.slug}")
# Full drug list for discovery
catalog = client.druglists.list()
print(f"Total medications: {catalog.count}, sample: {catalog.drugs[:5]}")
print("exercised: drugs.search / drugs.get / formulations.list / brandgenericmappings.get / pharmacysearch.nearby / druglists.list")
Retrieve pricing information for a specific medication by drug name or slug. Returns pricing for home delivery, local pickup, and retail estimates across all forms and dosages. Each form contains dosages, and each dosage contains quantities with detailed pricing breakdowns.
| Param | Type | Description |
|---|---|---|
| slugrequired | string | The medication slug or name (e.g., 'metformin', 'lipitor', 'atorvastatin'). |
{
"type": "object",
"fields": {
"slug": "string — URL slug identifier",
"forms": "array of form objects containing dosages and pricing",
"drug_name": "string — display name of the medication",
"generic_name": "string or null — generic equivalent name"
},
"sample": {
"data": {
"slug": "metformin",
"forms": [
{
"dosages": [
{
"med_id": "155744",
"quantities": [
{
"pricing": {
"local_pickup": {
"price": null,
"raw_price": null,
"percent_off_retail": null
},
"home_delivery": {
"price": "$2.48",
"raw_price": 2.48,
"percent_off_retail": "52%"
},
"retail_estimated": {
"price": "$5.21",
"raw_price": 5.21112
}
},
"raw_quantity": 30,
"display_quantity": "30 Tablets",
"formatted_description": "30 Tablets, 500 mg"
}
],
"display_dosage": "500 mg"
}
],
"display_form": "Tablet"
}
],
"drug_name": "metformin",
"generic_name": "metformin hcl"
},
"status": "success"
}
}About the Blink Health API
Medication Pricing and Formulations
The get_drug_pricing endpoint accepts a slug parameter (e.g., 'metformin' or 'atorvastatin') and returns a structured response containing forms — an array of form objects each with available dosages and pricing for home delivery, local pickup, and retail estimates. The response also includes drug_name and generic_name, so you can immediately tell whether you're looking at a brand or a generic product. For cases where you only need structure without prices, get_drug_formulations returns the same forms array with dosages and available quantities but no pricing data. Note that not all drugs are supported by this endpoint; some may return an upstream error.
Drug Search and Brand/Generic Mapping
search_drug accepts a query string and returns a results array of matching medication objects, each containing name, slug, and generic_name. It performs a direct slug-based lookup, so results are limited to exact or near-exact matches; an unrecognized query returns an empty results array. The get_brand_to_generic_mapping endpoint takes a slug and works in both directions — pass 'lipitor' and get atorvastatin as the generic_name, or pass a generic slug to confirm its brand relationship.
Pharmacy Lookup and Drug Catalog
get_nearby_pharmacies takes a 5-digit US zip_code (leading zeros preserved, e.g., '02134') and returns a pharmacies array with each entry's name, address, phone, distance, and network_status. For a full inventory of supported medications, get_preferred_drug_list requires no inputs and returns count (an integer) plus a drugs array of every medication slug available on Blink Health — useful for building autocomplete indexes or bulk pricing jobs.
The Blink Health API is a managed, monitored endpoint for blinkhealth.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when blinkhealth.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official blinkhealth.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Compare home delivery vs. local pickup prices for a specific medication using
get_drug_pricingresponse fields. - Build a pharmacy locator tool that surfaces network pharmacies and distances from a user-supplied ZIP code.
- Map brand-name prescriptions to generic equivalents using
get_brand_to_generic_mappingto identify cost-saving alternatives. - Populate a drug autocomplete search field by indexing the full medication catalog from
get_preferred_drug_list. - Display all available dosages and quantities for a drug using
get_drug_formulationsbefore showing pricing. - Track retail price estimates across dosages for a medication to identify the most cost-effective formulation.
- Validate whether a drug name is supported on Blink Health before making pricing calls using
search_drug.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Blink Health have an official developer API?+
What does `get_drug_pricing` return beyond a single price?+
forms array covering every available form of the drug (e.g., tablet, capsule, extended-release). Each form object contains dosages and pricing broken out by delivery method — home delivery, local pickup, and retail estimate — so you can compare options across the full product surface for a given medication.Does `get_drug_formulations` always return data for every medication?+
forms array. For those cases, get_drug_pricing may still succeed and implicitly expose form and dosage structure through its response.Does the API return insurance coverage details or co-pay information?+
Is pharmacy data available outside the United States?+
get_nearby_pharmacies accepts 5-digit US ZIP codes and returns participating pharmacies within the Blink Health network. Non-US locations are not covered. You can fork this API on Parse and revise it if you need to target a different regional pharmacy data source.