Store locator and service-coverage research
Mit CVS-Endpunkten verwandelst du store locator and service-coverage research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Turn CVS's public retail surfaces into structured JSON — store locations by ZIP or coordinate with service indicators, the full brand and category taxonomy, keyword search and category browsing across the non-prescription (OTC) retail catalog, and per-product detail plus ingredient/label statements. US/US-territory egress only. Covers general store info and retail products, not pharmacy hours or any patient-specific data.
Find nearby CVS stores, search or browse the OTC retail catalog with brand/category taxonomy, and get product detail and ingredient labels as structured JSON.
Endpunkt-Familien
6
Dokumentierte Parameter
20
Beispiele
7
Live-Katalog-Snapshot
Aktive Endpunkte
7
Methoden
GET
Pflichtparameter
11
Schema-Referenzen
7
{
"platform": "CVS",
"endpoint": "cvs-store-locator",
"method": "GET",
"path": "/cvs/store-locator",
"auth": "apiKey"
}Use Cases
Find nearby CVS stores, search or browse the OTC retail catalog with brand/category taxonomy, and get product detail and ingredient labels as structured JSON.
Mit CVS-Endpunkten verwandelst du store locator and service-coverage research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit CVS-Endpunkten verwandelst du otc retail catalog search and pricing monitoring in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit CVS-Endpunkten verwandelst du product ingredient and label research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit CVS-Endpunkten verwandelst du local retail presence mapping in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Managed Execution
Jede Zahl unten stammt direkt aus dem Live-CVS-Endpunktkatalog — 7 Endpunkte, 20 dokumentierte Request-Parameter und 7 veröffentlichte Response-Schemas — demselben Katalog, gegen den auch Docs und Playground laufen.
7 documented CVS endpoints, grouped into 7 request families — Brands, Categories and Category, plus 4 more.
20 request parameters are documented across those CVS endpoints, 11 of them required — the full input contract is public before you write any integration code.
7 of the 7 CVS endpoints ship a recorded example response, and 7 carry a documented response schema — you can code against the real JSON before the first request.
CVS endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
7 hosted MCP tools back the CVS endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Abdeckungskarte
/cvs/brands
/cvs/categories
/cvs/category
/cvs/product/{slug}
/cvs/product-ingredients/{slug}
/cvs/search
Endpunktkatalog
/cvs/store-locatorReturns nearby CVS store locations for a ZIP code, a free-text address/city/state, or a latitude/longitude pair: address, phone, fax, distance, and retail store hours, plus a has_pharmacy existence flag and a list of general service indicators (e.g. photo, ATM, same-day delivery). Covers general store info only -- this does not return pharmacy hours, pharmacy phone, prescription data, or any patient-specific information. zip is a 5-digit US ZIP code; alternatively supply address (a free-text location such as a city, state, or street address) or latitude and longitude together. When more than one is supplied, zip wins, then address, then latitude/longitude. Optionally narrow results to stores carrying one specific service via the service param (the same code vocabulary the response's services field uses); only one service value is accepted per request. CVS.com is only available from US/US-territory egress; a request from an unsupported region returns an upstream error rather than an empty result.
Hinweise zur Response
- `store_hours` is the retail (front-of-store) weekly schedule only. - `has_pharmacy` is a plain existence flag (does this location have a pharmacy counter) — no pharmacy hours, pharmacy phone, or prescription data is returned. - `services` is the raw list of upstream service-indicator codes for the store (e.g. `PH_Photo_Ind`, `atmInd`, `RS_BOPIS_Ind`, `RS_SameDayDelivery_Ind`), passed through as-is rather than translated to friendly names. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result. - Missing `zip`, `address`, and `latitude`/`longitude`, an invalid ZIP, or a `service` value outside the allowed list returns a `400` invalid-parameter error before any upstream request is made. An `address` that doesn't resolve to a real location returns a `404` not-found error rather than a false empty result.
MCP-Tool cvs_store_locator
/cvs/brandsReturns CVS.com's full brand directory (name and path). Each brand's path is directly usable as GET /cvs/category's path parameter to browse that brand's products.
Hinweise zur Response
- Each brand's `path` is directly usable as [`cvs-category`](cvs-category.md)'s `path` query parameter to browse that brand's products. The path is derived from the brand name (lowercased, non-alphanumeric runs collapsed to a single `-`) — not copied from an upstream field, since the upstream's own `isBrandShop` flag is unpopulated for every brand. - A brand whose name has no usable letters/digits (rare) is omitted rather than given a broken path. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result.
MCP-Tool cvs_brands
/cvs/categoriesReturns CVS.com's full category/subcategory navigation taxonomy (name and path, nested to whatever depth the upstream carries). Each node's path is directly usable as GET /cvs/category's path parameter.
Hinweise zur Response
- Each node's `path` is directly usable as [`cvs-category`](cvs-category.md)'s `path` query parameter. - `children` is nested to whatever depth the upstream carries (subcategories of subcategories included); a leaf node omits `children` entirely. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result.
MCP-Tool cvs_categories
/cvs/searchPerforms a keyword search across CVS.com's non-prescription retail/OTC catalog and returns one page of results: products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other attributes, each with its selectable values and result counts) available to filter the results further. Covers the non-prescription retail catalog only. q is the search keyword or phrase, required. page is a 1-indexed page number (default 1). sort is an optional result order matching cvs-category's own Sort By values. CVS.com is only available from US and US-territory locations; a request served from an unsupported region returns an upstream error rather than an empty result.
Hinweise zur Response
- The response shape is identical to `cvs-category`'s (`total_count`, `page`, `products`, `facets`) — both endpoints normalize the same underlying product-search data. - `list_price`/`sale_price`/`currency` come from the same pricing data `cvs-category` returns; a product with no price omits these fields. - `facets` lists every filter the current search exposes: `key` is the upstream facet field name (e.g. `brand`, `e_product_type`, `d_priceBucket`), `label` is its display name, and `values` is a list of `{name, count}`. The set of facets varies per search and is not a fixed enum. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a request CVS blocks, returns a `503` upstream error rather than an empty or wrong result. - An empty or unrecognized `q`, or an unrecognized `sort` value, returns a `400` invalid-parameter error before any upstream request is made.
MCP-Tool cvs_search
/cvs/categoryReturns one page of a CVS.com OTC (over-the-counter) retail category, subcategory, or brand page's product grid: products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other category-specific attributes, each with its selectable values and result counts) available to filter the page further. Covers the non-prescription retail catalog only. path is the segment of a page URL after "/shop/", e.g. "beauty" (top-level category), "health-medicine/allergy-sinus" (subcategory), or "brand-shop/s/safe-home" (brand page); a full https://www.cvs.com/shop/... URL or a "/shop/..." path is also accepted. Any of these can also carry an optional facet-filter suffix in the site's own URL shape, e.g. "beauty/makeup/eyes/q/CoverGirl/Black/brpc" to filter to brand CoverGirl and color Black -- see the response's facets field for which values/type codes a given category supports; filter values are case-sensitive exactly as the site renders them. page is a 1-indexed page number (default 1). sort is an optional result order matching the site's own Sort By control. CVS.com is only available from US and US-territory locations; a request served from an unsupported region returns an upstream error rather than an empty result.
Hinweise zur Response
- `list_price`/`sale_price`/`currency` come from the page's own pricing data; a product with no price omits these fields. - `is_sponsored`, `is_featured`, and `is_new_product` reflect the merchandising flags the category page itself carries. - `facets` lists every filter the current category/filter state exposes: `key` is the upstream facet field name (e.g. `brand`, `e_color`, `d_priceBucket`), `label` is its display name (e.g. `Brand`, `Color`, `Price`), and `values` is a list of `{name, count}` — `count` is the number of results selecting that value would produce given whatever filters, if any, the request already applied. The set of facets and their values is category-specific and upstream-controlled; read it from a live response rather than assuming a fixed set. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result. - An unrecognized `path` (including a malformed filter suffix) or an unrecognized `sort` value returns a `400` invalid-parameter error before any upstream request is made.
MCP-Tool cvs_category
/cvs/product/{slug}Returns one CVS.com OTC (over-the-counter) retail product's detail: name, description, brand, category, price, currency, online availability, image gallery, and aggregate rating. Covers the non-prescription retail catalog only -- this does not cover prescription items, pharmacy ordering, or any patient-specific data. slug is the segment of a product page URL after "/shop/", e.g. "safe-home-premium-radon-test-kit-prodid-945948"; a full https://www.cvs.com/shop/... URL is also accepted. CVS.com is only available from US/US-territory egress; a request from an unsupported region returns an upstream error rather than an empty result.
Hinweise zur Response
- `availability` is the short form of the page's schema.org availability (`InStock`, `OutOfStock`, `SoldOut`, ...), reflecting online availability only — not any particular store's shelf stock. - `price` and `currency` come from the page's own offer. - `images` is the product's image gallery. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result. - An unrecognized `slug` returns a `400` invalid-parameter error before any upstream request is made.
MCP-Tool cvs_product
/cvs/product-ingredients/{slug}Returns one CVS.com OTC (over-the-counter) retail product's ingredient/label statement: active ingredients, inactive ingredients, and the vendor's full free-text ingredient paragraph (which, for OTC drug products, frequently also carries a Drug Facts-style purpose note). This is sourced from the product's own dedicated ingredients page, a separate page from the main product detail endpoint. Covers the non-prescription retail catalog only -- this does not cover prescription items, pharmacy ordering, or any patient-specific data. slug is the segment of a product page URL after "/shop/", e.g. "e-l-f-16hr-camo-concealer-prodid-2370023"; a full https://www.cvs.com/shop/... URL is also accepted. Some products (particularly non-consumable goods) may return empty ingredient fields -- this reflects upstream having no label data for that product, not an error. CVS.com is only available from US/US-territory egress; a request from an unsupported region returns an upstream error rather than an empty result.
Hinweise zur Response
- `active_ingredients` and `inactive_ingredients` are the vendor's own structured active/inactive ingredient fields when upstream populates them separately. Many products leave these empty and only populate the combined `paragraph` field below — prefer `paragraph` as the more complete source. - `paragraph` is the vendor's full free-text ingredient statement. For OTC drug products this frequently also carries a Drug Facts-style purpose note (e.g. `"Active Ingredient (in each drop): Menthol, 1.5 mg - Purpose: Oral anesthetic ..."`). - Some products (particularly non-consumable goods) return empty ingredient fields alongside a valid `id`/`title` — this reflects upstream having no label data for that product, not an error. - CVS.com is only available from US/US-territory egress; a request from an unsupported region, or a page CVS blocks, returns a `503` upstream error rather than an empty or wrong result. - An unrecognized `slug` returns a `400` invalid-parameter error before any upstream request is made. A well-formed but nonexistent product id returns a `404`.
MCP-Tool cvs_product_ingredients
Verwandte APIs
Marketplaces & Retail
Research new, used, and vintage instruments across Reverb listings, seller shops, and the Price Guide. Keep current asking prices separate from historical sales, and preserve model, finish, year, condition, and currency when comparing gear.
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
So scrapst du CVS
Crawlora's CVS endpoints return normalized public CVS.com data as JSON with one API key — no CVS account required. CVS.com is only reachable from US/US-territory egress; a request from an unsupported region returns an upstream error.
Pass a 5-digit US zip, or latitude and longitude together, to /cvs/store-locator for nearby CVS locations with address, phone, fax, distance, retail store hours, a has_pharmacy flag, and general service indicators (photo, ATM, same-day delivery) — this covers store info only, not pharmacy hours or patient data.
Call /cvs/brands for the full brand directory or /cvs/categories for the full category/subcategory navigation taxonomy — each entry's path is directly usable as /cvs/category's path parameter to browse that brand's or category's products.
Pass a keyword to /cvs/search for one page of matching products — title, brand, image, current/original price, and sponsored/featured/new-product flags — plus the total result count and the selectable facets (brand, color, size, price range, and more) with per-value result counts.
Pass a category path (the URL segment after "/shop/", e.g. "beauty" or "health-medicine/allergy-sinus") to /cvs/category for that page's normalized product grid — title, brand, image, current and original price, and sponsored/featured/new flags — paginated with page.
Pass a product slug (the URL segment after "/shop/", e.g. "safe-home-premium-radon-test-kit-prodid-945948") to /cvs/product/{slug} for that item's name, description, brand, price, currency, availability, image gallery, and aggregate rating — or to /cvs/product-ingredients/{slug} for its active/inactive ingredient statement, sourced from the product's separate ingredients page. Some non-consumable products legitimately return empty ingredient fields.
Every CVS endpoint covers the non-prescription retail catalog and general store info only — none of them return prescription ordering, pharmacy hours, pharmacy phone, or any patient-specific data.
FAQ
Call /cvs/store-locator with a ZIP or coordinate for nearby stores, /cvs/brands or /cvs/categories for the taxonomy, /cvs/search with a keyword or /cvs/category with a category path for the OTC product grid, /cvs/product/{slug} for one product's detail, or /cvs/product-ingredients/{slug} for its label statement — all return structured JSON with one API key.
Yes — /cvs/search takes a keyword and returns one page of matching products plus the total result count and the same selectable facets (brand, color, size, price range, and more) that category browsing exposes.
No. Every CVS endpoint covers general store info and the non-prescription (OTC) retail catalog only — pharmacy hours, pharmacy phone, prescription ordering, and any patient-specific data are out of scope.
No. CVS.com is only available from US/US-territory egress — a request from an unsupported region returns an upstream error rather than an empty result.
Yes — /cvs/store-locator returns a has_pharmacy existence flag per store, alongside its other general service indicators.
Yes — /cvs/product-ingredients/{slug} returns the active ingredients, inactive ingredients, and full label statement from the product's own dedicated ingredients page, separate from the main product-detail endpoint. Some products (particularly non-consumable goods) return empty ingredient fields, reflecting upstream having no label data rather than an error.