CVS

CVS price range, regular price, rating, brand, category and every variant with its shipping, pickup and same-day flags, by product id, about 400,000 products per credit. Search too. Prescription items are never returned. CVS refuses more requests than most stores; refused requests are retried and never charged.

Embed
Preview of the card
<a href="https://scrapelyserp.com/docs/cvs-products"><img src="https://scrapelyserp.com/docs/_api/public/orgs/affc5b0f-d3c2-423a-8143-9d10db5736ae/spaces/981e6275-da3f-446c-82de-889f59c83b6f/pages/b217f3b1-ba59-412c-9e16-180a1ab7c1d0/social-card.svg?v=3e7ae33eec8b" alt="CVS" width="600" height="315"></a>

CVS price range, regular price, rating, brand, category and every variant with its shipping, pickup and same-day flags, by product id, about 400,000 products per credit. Search too. Prescription items are never returned. CVS refuses more requests than most stores; refused requests are retried and never charged.

At a glance

Property

Value

platform

cvs

Product id

The number after prodid- in a product link (…/shop/<name>-prodid-949346), 3 to 9 digits. A pasted link is reduced to its id for you.

Marketplaces

Live: us. Coming soon: none.

Tier

standard (the default), about 400,000 products per credit (an estimate until production traffic measures it)

Ids per call

100

Typical call

30–90 s for 100 products

Search

GET /v1/structured/cvs/search, about 450,000 results per credit.

Reliability

CVS refuses a share of requests. A refused request is retried elsewhere and is never charged; an id that still cannot be read comes back unavailable (free), so ask again.

Example

curl -X POST "https://api.scrapelyserp.com/v1/products" \
  -H "Authorization: Bearer $SCRAPELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"cvs","ids":["949346","832677"]}'

Full reference → POST /v1/products

CVS fields

Besides the common fields, each result carries a cvs object. A product can come in several variants (sizes or counts) at different prices: price is the lowest variant price and cvs.priceMax the highest. A missing price is null or absent, never 0. Prices are the regular web prices for the default price zone; no store is chosen.

Field

Description

cvs.priceMax, listPrice

The highest variant price, and the regular price of the cheapest variant when it is on sale (null otherwise).

cvs.rating, reviewCount

Average review rating (0 to 5) and the number of reviews; null when there are none (the item is still ok).

cvs.brand, categories

The brand and the category path, broadest first.

cvs.ship, pickup, sameDay

Whether CVS offers shipping, store pickup or same-day delivery for any variant.

cvs.variants

Every variant: sku, title, gtin, image, price, listPrice and its own ship, pickup and sameDay flags.

The ship, pickup and sameDay values are availability flags the site shows, not stock counts; ship is false for items sold in stores only, and pickup and sameDay are true or null (unknown), never false, because no store is chosen, and no store or ZIP code is used, so pickup and same-day describe the site in general rather than a store near you. availability is therefore left out of results. Search results carry in_stock: null for the same reason.

Statuses on CVS

  • partial: CVS answered without a title. Ask again later.

  • not_found: CVS has no such id. Prescription items are never returned and read the same way.

  • unavailable: no usable answer after retries (CVS refused the requests). Not charged; ask again.

Watchlists

A watchlist with "platform": "cvs" reads each id once per run and reports changes to price, inStock, listPrice. inStock there is true when any variant offers shipping, pickup or same-day: an availability flag, not a stock count.

Updated