Zappos API
Zappos API returns live Zappos data as clean JSON for zappos The primary endpoint, search, returns product results including product id, style id, color id, name and brand.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Developers reach for it when they need to validate, enrich, classify and normalize operational data without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Zappos scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, product_detail. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/zappos/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "running shoes",
"max_results": 40
}
}{
"ok": true,
"meta": {
"api": "zappos",
"endpoint": "search",
"mode": "live",
"latency_ms": 1543,
"record_count": 40,
"bytes": 1401728,
"cache_hit": false,
"completeness_pct": 100,
"stop_reason": "limit_reached",
"method": "ssr_json_island",
"pagination": {
"page": 1,
"per_page": 100,
"total_results": 2150,
"page_count": 22,
"returned": 40,
"has_more": true,
"next_page": 2
},
"filters": {
"applied": [],
"ignored": []
}
},
"data": {
"products": [
{
"product_id": "10046215",
"style_id": "6666744",
"color_id": "147392",
"name": "[redacted-name]",
"brand": "ASICS",
"product_type": "Shoes",
"color": "Black",
"color_detail": "Black/Pure Silver",
"genders": [
"Boys",
"Girls"
],
"url": "https://www.zappos.com/p/asics-kids-gel-1130-pre-school-little-kid-toddler-black-pure-silver/product/10046215/color/147392",
"price": 75,
"original_price": 75,
"currency": "USD",
"on_sale": false,
"percent_off": 0,
"discount_amount": null,
"in_stock": true,
"units_available": 11,
"low_stock": null,
"is_new": true,
"rating": 0,
"style_rating": 0,
"review_count": 0,
"image": "https://m.media-amazon.com/images/I/81lry1Uf2lL._SX700_.jpg",
"images": [
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
],
"swatch_image": null,
"has_fabric_swatch": false,
"is_couture": false,
"badges": [
"NEW"
],
"promo_badges": null,
"other_colors": null
},
{
"product_id": "10048623",
"style_id": "6699906",
"color_id": "1137050",
"name": "[redacted-name]",
"brand": "Brooks",
"product_type": "Shoes",
"color": "Purple",
"color_detail": "Raisin/Purple/Metallic",
"genders": [
"Women"
],
"url": "https://www.zappos.com/p/brooks-ghost-max-4-raisin-purple-metallic/product/10048623/color/1137050",
"price": 164.95,
"original_price": 164.95,
"currency": "USD",
"on_sale": false,
"percent_off": 0,
"discount_amount": null,
"in_stock": true,
"units_available": 738,
"low_stock": null,
"is_new": true,
"rating": 0,
"style_rating": 0,
"review_count": 0,
"image": "https://m.media-amazon.com/images/I/81hf3HD5eGL._SX700_.jpg",
"images": [
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
],
"swatch_image": "https://swch-cl2.olympus.zappos.com/base/27567/27580/10048623/6699906.jpg",
"has_fabric_swatch": false,
"is_couture": false,
"badges": [
"NEW"
],
"promo_badges": null,
"other_colors": [
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
{
"product_id": "10048552",
"style_id": "6674631",
"color_id": "1131642",
"name": "[redacted-name]",
"brand": "Brooks",
"product_type": "Shoes",
"color": "Gray",
"color_detail": "Grey/Grey/Ebony",
"genders": [
"Men"
],
"url": "https://www.zappos.com/p/brooks-ghost-max-4-grey-grey-ebony/product/10048552/color/1131642",
"price": 164.95,
"original_price": 164.95,
"currency": "USD",
"on_sale": false,
"percent_off": 0,
"discount_amount": null,
"in_stock": true,
"units_available": 960,
"low_stock": null,
"is_new": true,
"rating": 0,
"style_rating": 0,
"review_count": 0,
"image": "https://m.media-amazon.com/images/I/818MQ6sgueL._SX700_.jpg",
"images": [
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"view": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
],
"swatch_image": "https://swch-cl2.olympus.zappos.com/fabric/27567/27580/10048552/6674631.jpg",
"has_fabric_swatch": true,
"is_couture": false,
"badges": [
"NEW"
],
"promo_badges": null,
"other_colors": [
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"style_id": "[trimmed-depth]",
"color_id": "[trimmed-depth]",
"color": "[trimmed-depth]",
"color_detail": "[trimmed-depth]",
"price": "[trimmed-depth]",
"original_price": "[trimmed-depth]",
"percent_off": "[trimmed-depth]",
"units_available": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"review_count": "[trimmed-depth]",
"image": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
}
],
"__trimmed": "response capped for page display"
}
}What the Zappos API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search the Zappos catalog. Give a `query` ('running shoes', 'hiking boots', 'nike air max', 'womens dresses') and get back 100 products per page, each with Zappos' own product id, style id and colour id, price and list price, discount, units in stock, star rating, review count, badges, the full image set, and the product's OTHER colourways inline. Narrow with brand, colour, gender, size, width, department, category, material, style, feature, occasion, pattern, theme, price bucket and an on-sale switch; sort by price, rating, newest or best sellers. Every filter value your query actually supports — with the number of products behind it — is returned in `filters_available`, so you never have to guess. | Ops teams call search to search the Zappos catalog. | query, max_results, page, sort, brand, ... |
| product_detail | Get one Zappos product in full, by its product id (or its zappos.com URL) — brand, category, gender, the marketing description and every specification bullet, the parsed physical measurements (weight, heel height, shaft, circumference, platform height, bag depth and strap drop where Zappos lists them), size charts, the customer rating with its star histogram and the runs-small / runs-wide / arch-support breakdowns, and the two customer reviews Zappos embeds. Every colourway is returned with its own style id, colour id, price, list price, image set and stock, and the selected colourway is broken down to the SIZE x WIDTH level: one row per purchasable variant with Zappos' stock id, the Amazon ASIN, the manufacturer UPC, that variant's own price and list price, and how many units are in stock right now. | Developer tools call product_detail to get one Zappos product in full, by its product id (or its zappos.com URL). | product_id, color_id, style_id, url, include_all_color_variants |
Call search from your stack
curl -X POST https://api.reefapi.com/zappos/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"running shoes","max_results":40}'import requests
r = requests.post(
"https://api.reefapi.com/zappos/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "running shoes",
"max_results": 40
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/zappos/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "running shoes",
"max_results": 40
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.zappos.search with {"query":"running shoes","max_results":40}.Who uses this API and why
- Ops teams use Zappos to search the Zappos catalog.
- Developer tools use Zappos to get one Zappos product in full, by its product id (or its zappos.com URL).
- Validation workflows use Zappos to validate, enrich, classify and normalize operational data, all from one ReefAPI key and credit pool.
Questions developers ask before integrating
What is the Zappos API?
Zappos API is a ReefAPI endpoint group for zappos It returns live JSON through POST requests under /zappos/v1.
Is the Zappos API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Zappos calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Zappos login or account?
No login to Zappos is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Zappos data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Zappos API use?
Zappos actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Zappos from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call zappos actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Zappos API a Zappos scraper?
It is the managed alternative to a DIY Zappos scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same zappos back as clean JSON.
Why does my Zappos scraper keep getting blocked?
Most Zappos scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.