Endpoint Playground
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.
14 Oct 2026: Single record response; 4 fields had a value in every checked item.
Sample value profiles: title: “e.l.f. 16hr Camo Concealer”; url: cvs.com; paragraph: 1,011 characters.
curl 'https://api.crawlora.net/api/v1/cvs/product-ingredients/e-l-f-16hr-camo-concealer-prodid-2370023' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| slug (path) | string | Yes | e-l-f-16hr-camo-concealer-prodid-2370023 | CVS product page URL slug, e.g. \ |
{
"code": 200,
"msg": "OK",
"data": {
"id": "2370023",
"title": "e.l.f. 16hr Camo Concealer",
"paragraph": "Active Ingredients: WATER (AQUA), CYCLOPENTASILOXANE, ACRYLATES CROSSPOLYMER...Inactive Ingredients: Water, Cyclopentasiloxane, Acrylates Crosspolymer...",
"url": "https://www.cvs.com/shop/ingredients/e-l-f-16hr-camo-concealer-prodid-2370023",
"source_url": "https://www.cvs.com/shop/ingredients/e-l-f-16hr-camo-concealer-prodid-2370023",
"fetched_at": "2026-09-03T00:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.