/cvs/brandsapiKey3 credits/requestCVS brand directory
Returns 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.
Takes no parameters.
API Reference
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. 7 endpoints documented below.
curl "https://api.crawlora.net/api/v1/cvs/store-locator?zip=90211" \
-H "x-api-key: $CRAWLORA_API_KEY"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.
/cvs/brandsapiKey3 credits/requestReturns 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.
Takes no parameters.
/cvs/categoriesapiKey3 credits/requestReturns 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.
Takes no parameters.
Sampled 14 Oct 2026: 15 items. Filled in every item: title, path. Not in every item: id (13), children (13). In the sample: title: “Health & Medicine” and 14 other values; children: median 7 entries; path: “health-medicine” and 14 other values.
/cvs/categoryapiKey3 credits/requestReturns 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.
Required: path. Optional: page, sort (6 allowed values: pa, pd, tr, rc, az, za).
Sampled 14 Oct 2026: 20 items. Filled in every item: id, title, url, brand, image_url, currency, list_price, sale_price. Not in every item: is_new_product (7). In the sample: list_price: 2.99 to 16.49, median 6.59; title: “DAISE Foaming Body Wash, Vanilla Whip, 8.8 OZ” and 19 other values; url: cvs.com; is_new_product: true in 7 of 7; brand: “DAISE” and 9 other values; image_url: cvs.com; sale_price: 2.99 to 12.99, median 5.49.
/cvs/product-ingredients/{slug}apiKey3 credits/requestReturns 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.
Required: slug.
Sampled 14 Oct 2026: 4 fields returned with a value. In the sample: title: “e.l.f. 16hr Camo Concealer”; url: cvs.com; paragraph: 1,011 characters.
/cvs/product/{slug}apiKey3 credits/requestReturns 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.
Required: slug.
/cvs/searchapiKey1 credit/requestPerforms 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.
Required: q. Optional: page, sort (6 allowed values: pa, pd, tr, rc, az, za).
Sampled 14 Oct 2026: 20 items. Filled in every item: id, title, url, brand, image_url, currency, list_price, sale_price. In the sample: brand: CVS (13), Advil (6), Motrin (1); list_price: 4.49 to 23.49, median 8.99; title: “Motrin IB Ibuprofen 200 MG Tablets, 24 CT” and 18 other values; url: cvs.com; image_url: cvs.com; sale_price: 4.49 to 23.49, median 8.99.
/cvs/store-locatorapiKey1 credit/requestReturns 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.
Optional: zip, address, latitude, longitude, service (20 allowed values: HH_HealthHub_Ind, MC_MinuteClinic_Ind, HS_OakStreetHealth_Ind, IM_Immunization_Ind, RX_OTCH_Ind, IM_Covax_Ind, CL_CovidTest_Ind, RX_24Hours_Ind, RX_DriveThru_Ind, RX_Pharmacy_Ind, RX_DrugDisposal_Ind, RS_24Hours_Ind, PH_Photo_Ind, RS_AcceptsWic_Ind, RS_AcceptsSnap_Ind, GN_UPSAccessPoint_Ind, RS_BOPIS_Ind, GN_YMas_Ind, BT_BeautyIRL_Ind, GN_SmileDirectClub_Ind).
Sampled 14 Oct 2026: 25 items. Filled in every item: store_id, address_line1, city, state, zip, fax, latitude, longitude and 4 more. Not in every item: phone (22), store_hours (22). In the sample: city: LOS ANGELES (17), WEST HOLLYWOOD (2), HOLLYWOOD (2) and 3 more; phone: 3,102,099,141 to 8,189,801,502, median 3,234,637,900; has_pharmacy: true in 25 of 25; store_hours: median 7 entries; fax: 3,102,736,289 to 8,189,804,904, median 3,232,823,344; distance_miles: 1.12 to 5, median 3.52; services: median 14 entries.
Results from the 7 days to 14 Oct 2026. Current status
| Endpoint | Request | Checks passed | Median response |
|---|---|---|---|
| CVS store locator | GET /cvs/store-locator?zip=90211 | 100% | 3.34 s |