cvs.com APIcvs.com ↗
Search CVS pharmacy locations by ZIP, get store hours, find products with NDC codes, and check real-time inventory at specific stores.
curl -X GET 'https://api.parse.bot/scraper/8280d527-04e5-4cb9-86d9-c1d04a17953b/search_stores?limit=5&query=90210&radius=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for CVS pharmacy locations by ZIP code. Returns a list of stores with addresses, phone numbers, distance, and full weekly hours for both the store and the pharmacy (including lunch breaks).
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return |
| query | string | ZIP code to search near (e.g. '90210', '10001'). Only numeric ZIP codes reliably return results. |
| radius | integer | Search radius in miles |
{
"type": "object",
"fields": {
"storeList": "array of store objects with address, storeInfo, hours, indicators, and bannerBrand",
"statusCode": "string status code (e.g. '0000' for success)",
"totalResults": "integer total number of matching stores",
"statusDescription": "string indicating success or failure"
},
"sample": {
"data": {
"storeList": [
{
"hours": {
"timeZone": "PDT",
"departments": [
{
"name": "retail",
"regHours": [
{
"endTime": "11:00 PM",
"weekday": "MON",
"startTime": "08:00 AM"
}
]
}
]
},
"address": {
"zip": "90211",
"city": "BEVERLY HILLS",
"state": "CA",
"street": "9045 WILSHIRE BOULEVARD",
"country": "US"
},
"storeInfo": {
"storeId": "9767",
"distance": "1.12",
"latitude": "34.06741",
"longitude": "-118.38934",
"phoneNumbers": [
{
"retail": "3102735252",
"pharmacy": "3102735252"
}
]
}
}
],
"statusCode": "0000",
"statusTitle": "Success",
"totalResults": 25,
"statusDescription": "Success"
},
"status": "success"
}
}About the cvs.com API
The CVS API exposes 4 endpoints covering store discovery, store details, product search, and inventory availability. Use search_stores to find pharmacy locations near any ZIP code — including full weekly hours for both the retail store and the pharmacy — or call check_product_availability to verify a specific SKU is on-hand at a given store before making a trip.
Store Discovery and Details
search_stores accepts a numeric ZIP code, an optional radius in miles, and an optional limit. It returns a storeList array where each entry includes street address, phone numbers, storeInfo metadata, indicators for available services, and full weekly hours for both the retail floor and the pharmacy department — including lunch break windows. totalResults tells you how many locations matched regardless of the limit applied. get_store_details takes a single store_id (e.g. "9767") and returns the same shape for one store, useful when you already know the identifier and need up-to-date hours or service flags.
Product and Medication Search
search_products is a typeahead endpoint — pass any query string like "advil" or "bandaids" and the data object comes back segmented into categories: product suggestions with popularity signals, drug matches that include NDC codes plus brand and generic name pairings, healthcare entries linking to MinuteClinic services, and additional categories for articles, photo, and discover content. The metadata field returns a responseId and timeTaken so you can track latency across calls. Status is indicated by a statusCode string ("0000" for success) and a statusCodeDescription.
Inventory Availability
check_product_availability takes a sku and a store_id and returns a getATPInventoryResponse object. Inside, promiseLines contains per-store inventory detail broken into three counts: availableOnHand, pickOnHand, and storeOnHand. The responseStatus and organization fields provide request-level metadata. Note that response times can vary by store, and the endpoint reflects current inventory state rather than a historical record.
- Build a pharmacy locator that surfaces the nearest CVS stores with current pharmacy hours including lunch closures
- Alert customers when a specific product SKU is back in stock at their preferred CVS store
- Look up NDC codes and brand/generic name pairs for medications using the drug suggestions in
search_products - Display store service indicators to show which locations offer drive-through, MinuteClinic, or other services
- Pre-trip stock check: verify
availableOnHandquantity for a product before routing a customer to a store - Aggregate and compare weekly retail and pharmacy hours across multiple stores in a metro area
| 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 | 250 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 CVS have an official public developer API?+
What does `search_stores` return beyond basic address information?+
storeList includes a full seven-day hours schedule for both the retail store and the pharmacy department, with pharmacy lunch-break windows included. It also returns indicators (service flags), bannerBrand, phone numbers, and distance from the queried ZIP code.Does the ZIP code query in `search_stores` accept city names or partial strings?+
Does the API return product pricing or promotions?+
Can I retrieve a store's full service list, such as whether it has a drive-through or photo center?+
indicators field in both search_stores and get_store_details responses contains service flags for the store. The exact set of indicator keys depends on the store. Detailed descriptions of each service type beyond the flag itself are not currently returned as a separate field. You can fork this API on Parse and revise it to expand the indicators mapping.