CVS API endpoint
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.
/cvs/product/{slug}slug is required. It is the segment of a CVS 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. The slug must end in -prodid-{numeric id} — this is exactly the shape CVS's own search and category listings link to.
Notable response behavior:
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.503 upstream error rather than an empty or wrong result.slug returns a 400 invalid-parameter error before any upstream request is made.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug (path) | string | Yes | CVS product page URL slug, e.g. \ | safe-home-premium-radon-test-kit-prodid-945948 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/cvs/product/safe-home-premium-radon-test-kit-prodid-945948" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "945948",
"title": "Safe Home Premium Radon Test Kit",
"description": "Safe Home Premium Radon Test Kit",
"brand": "Safe Home",
"category": "Household > Home & Kitchen > Kitchen Accessories",
"currency": "USD",
"price": 14.99,
"availability": "InStock",
"images": [
"https://www.cvs.com/bizcontent/merchandising/productimages/high_res/868816000016.jpg"
],
"rating": 5,
"review_count": 1,
"url": "https://www.cvs.com/shop/safe-home-premium-radon-test-kit-prodid-945948",
"source_url": "https://www.cvs.com/shop/safe-home-premium-radon-test-kit-prodid-945948",
"fetched_at": "2026-09-02T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/cvs.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | cvs.Product | No | ||||
| data.availability | string | No | InStock | Availability is the short form of the page's schema.org availability (e.g. "InStock", "OutOfStock", "SoldOut"). This reflects online availability only, not any particular store's shelf stock -- store- level availability is out of scope for this endpoint. | ||
| data.brand | string | No | Safe Home | |||
| data.category | string | No | Household > Home & Kitchen > Kitchen Accessories | |||
| data.currency | string | No | USD | |||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.id | string | No | 945948 | |||
| data.images | array | No | ||||
| data.price | number | No | 14.99 | |||
| data.rating | number | No | 5 | |||
| data.review_count | integer | No | 1 | |||
| data.source_url | string | No | ||||
| data.title | string | No | Safe Home Premium Radon Test Kit | |||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/cvs/product/safe-home-premium-radon-test-kit-prodid-945948" \
-H "x-api-key: $CRAWLORA_API_KEY"