Costco
Costco price, regular price, stock, rating, brand, membership requirement and delivery programs by item or product number, about 1.4 million items per credit.
Costco price, regular price, stock, rating, brand, membership requirement and delivery programs by item or product number, about 1.4 million items per credit.
At a glance
Property | Value |
|---|---|
|
|
Item id | The item number shown on the product page ("Item 1936928"), or the product number in the product link (e.g. |
Marketplaces | Live: |
Tier |
|
Ids per call | 500 |
Typical call | 15–30 s for 500 ids |
Search | Coming soon. |
Example
- cURL
- Python
- Node.js
curl -X POST "https://api.scrapelyserp.com/v1/products" \
-H "Authorization: Bearer $SCRAPELY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"costco","ids":["1936928","4000399008"]}'import os
import requests
HEADERS = {"Authorization": f"Bearer {os.environ['SCRAPELY_API_KEY']}"}
r = requests.post(
"https://api.scrapelyserp.com/v1/products",
headers=HEADERS,
json={"platform": "costco", "ids": ["1936928", "4000399008"]},
timeout=120,
)
r.raise_for_status()
data = r.json()
for p in data["results"]:
print(p["id"], p["status"], (p.get("price") or {}).get("amount"), p["costco"]["rating"])const res = await fetch('https://api.scrapelyserp.com/v1/products', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCRAPELY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ platform: 'costco', ids: ['1936928', '4000399008'] }),
signal: AbortSignal.timeout(120_000),
});
if (!res.ok) throw new Error((await res.json()).error.code);
const data = await res.json();
for (const p of data.results) console.log(p.id, p.status, p.price?.amount, p.costco?.rating);Full reference → POST /v1/products
Item numbers and product numbers
Costco numbers a product twice. The item number is printed on the page ("Item 1936928") and identifies one orderable item. The product number is the one in the product link and groups a product with its variants. Both work in ids, and one call can mix them.
An item number has a price and stock. A product number has the product's details but no stock, and
pricemay be absent.Ratings belong to the product number. Send a product number, or an item number whose product number we can work out (
costco.parent); otherwiseratingisnull.
Costco fields
Besides the common fields, each result carries a costco object. price is the current price (the sale price when on sale) and is absent, never 0, when Costco shows no price online.
Field | Description |
|---|---|
| The item number, and the product number reviews belong to ( |
| Whether it can be ordered online, and whether a membership is needed. |
| The delivery programs Costco lists, such as |
| The regular price, whether it is on sale, and whether Costco shows a price online at all. |
| Average review rating (0 to 5) and the number of reviews; |
| The brand, and the manufacturer's legal name (not always a brand). |
| Variant attributes such as Color and Size. |
availability.inStock is present when Costco says whether the item is in stock. It is left out for warehouse-only items, and when the stock could not be read this time; the item is still ok.
Statuses on Costco
partial: Costco answered without a title. Ask again later.not_found: Costco has no such number. Delist it.
Watchlists
A watchlist with "platform": "costco" reads each id once per run and reports changes to price, inStock, regularPrice, buyable.