PetSmart
PetSmart price range, stock, rating and every size or flavor with its SKU and GTIN, by product id, about 30,000 products per credit. Search too.
PetSmart price range, stock, rating and every size or flavor with its SKU and GTIN, by product id, about 30,000 products per credit. Search too.
At a glance
Property | Value |
|---|---|
|
|
Item id | The number a product link ends in ( |
Marketplaces | Live: |
Tier |
|
Ids per call | 200 |
Typical call | 30–60 s for 200 products |
Search |
|
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":"petsmart","ids":["41846","3692"]}'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": "petsmart", "ids": ["41846", "3692"]},
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"), len(p["petsmart"]["variants"]))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: 'petsmart', ids: ['41846', '3692'] }),
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.petsmart?.variants.length);Full reference → POST /v1/products
Products and variants
A PetSmart product is a master with one or more variants (a size, a flavor). The result is the master, and its variants are listed under petsmart.variants, each with its own SKU, GTIN, price and stock. A variant SKU works as an id too and returns the whole master, so search results and product links both go straight into ids.
PetSmart fields
Besides the common fields, each result carries a petsmart object. price is the lowest variant price and availability.inStock is true when any variant is in stock.
Field | Description |
|---|---|
| The product number the variants belong to ( |
| The highest variant price. Equal to |
| Average review rating (0 to 5) and the number of reviews. |
| Every variant: |
PetSmart does not show a regular (was) price for each variant here, so there is no regular price field.
Statuses on PetSmart
partial: the product came back without a title or without any price. Ask again later.unavailable: PetSmart gave no usable answer for the id. This is also what an id that does not exist looks like, because PetSmart answers it with an error and we do not guess. Not charged.not_found: PetSmart said the page does not exist.
Watchlists
A watchlist with "platform": "petsmart" reads each id once per run and reports changes to price, inStock, priceMax.