Zara API
Zara API returns live Zara data as clean JSON for zara The primary endpoint, search, returns matching records including product id, product group id, name, brand and brand id.
🤖 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 Zara 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/zara/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "dress",
"max_results": 20
}
}{
"ok": true,
"meta": {
"api": "zara",
"endpoint": "search",
"mode": "live",
"latency_ms": 1491.5,
"record_count": 20,
"bytes": 82448,
"cache_hit": false,
"completeness_pct": 100,
"stop_reason": "limit_reached",
"method": "internal_json_api",
"market": "us",
"query": "dress",
"match_type": "EXACT",
"pagination": {
"page": 1,
"page_size": 20,
"total_results": 908,
"returned": 20,
"has_more": true,
"next_page": 2
}
},
"data": {
"query": "dress",
"market": {
"code": "us",
"store_id": "11719",
"locale": "en_US",
"currency": "USD",
"url_base": "https://www.zara.com/us/en"
},
"match": {
"type": "EXACT",
"provider": "Attraqt",
"universe": "KID"
},
"results": [
{
"product_id": "[redacted-phone]",
"product_group_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.zara.com/us/en/embroidered-floral-twill-pinafore-p04575567.html?v1=[redacted-phone]",
"brand": "zara",
"brand_id": 1,
"reference": "C[redacted-phone]-I2026",
"display_reference": "4575/567",
"price": {
"amount": 35.9,
"currency": "USD",
"raw": 3590,
"exponent": -2,
"was": null,
"discount_pct": null,
"discount_label": null,
"on_sale": false,
"unavailable": null
},
"availability": "in_stock",
"in_stock": true,
"section": 3,
"section_name": "KID",
"family_name": "BABY DRESS",
"subfamily_name": "KD-A V/P DENIM",
"kind": "Wear",
"type": "Product",
"color": {
"product_id": "[redacted-phone]",
"color_id": "703",
"name": "Ocher",
"hex": "#684328",
"reference": "C[redacted-phone]-I2026",
"availability": "in_stock"
},
"available_colors": [
{
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"additional_color_count": 0,
"main_color_hex": "#684328",
"tags": [
{
"type": "[trimmed-depth]",
"label": "[trimmed-depth]"
}
],
"image": "https://static.zara.net/assets/public/fec6/eca4/8b434bc09f3e/b3b82ddedda8/[redacted-phone]-f1/[redacted-phone]-f1.jpg?ts=[redacted-phone]&w=2048",
"images": [
{
"url": "[trimmed-depth]",
"kind": "[trimmed-depth]",
"name": "[trimmed-depth]",
"width": "[trimmed-depth]",
"height": "[trimmed-depth]",
"order": "[trimmed-depth]"
}
],
"image_count": 1,
"seo": {
"keyword": "embroidered-floral-twill-pinafore",
"seo_product_id": "04575567",
"discern_product_id": "[redacted-phone]"
},
"position": 1
},
{
"product_id": "[redacted-phone]",
"product_group_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.zara.com/us/en/contrast-collar-dress-p09003709.html?v1=[redacted-phone]",
"brand": "zara",
"brand_id": 1,
"reference": "C[redacted-phone]-I2026",
"display_reference": "9003/709",
"price": {
"amount": 39.9,
"currency": "USD",
"raw": 3990,
"exponent": -2,
"was": null,
"discount_pct": null,
"discount_label": null,
"on_sale": false,
"unavailable": null
},
"availability": "in_stock",
"in_stock": true,
"section": 3,
"section_name": "KID",
"family_name": "DRESS",
"subfamily_name": "GRL PLUSH",
"kind": "Wear",
"type": "Product",
"color": {
"product_id": "[redacted-phone]",
"color_id": "401",
"name": "[redacted-name]",
"hex": "#030A15",
"reference": "C[redacted-phone]-I2026",
"availability": "in_stock"
},
"available_colors": [
{
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"additional_color_count": 0,
"main_color_hex": "#030A15",
"tags": null,
"image": "https://static.zara.net/assets/public/da26/5145/e[redacted-phone]/2dba47e28dee/[redacted-phone]-f1/[redacted-phone]-f1.jpg?ts=[redacted-phone]&w=2048",
"images": [
{
"url": "[trimmed-depth]",
"kind": "[trimmed-depth]",
"name": "[trimmed-depth]",
"width": "[trimmed-depth]",
"height": "[trimmed-depth]",
"order": "[trimmed-depth]"
}
],
"image_count": 1,
"seo": {
"keyword": "contrast-collar-dress",
"seo_product_id": "09003709",
"discern_product_id": "[redacted-phone]"
},
"position": 2
},
{
"product_id": "[redacted-phone]",
"product_group_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.zara.com/us/en/cherry-print-twill-pinafore-dress-p04575561.html?v1=[redacted-phone]",
"brand": "zara",
"brand_id": 1,
"reference": "C[redacted-phone]-I2026",
"display_reference": "4575/561",
"price": {
"amount": 32.9,
"currency": "USD",
"raw": 3290,
"exponent": -2,
"was": null,
"discount_pct": null,
"discount_label": null,
"on_sale": false,
"unavailable": null
},
"availability": "in_stock",
"in_stock": true,
"section": 3,
"section_name": "KID",
"family_name": "BABY DRESS",
"subfamily_name": "KD-A V/P DENIM",
"kind": "Wear",
"type": "Product",
"color": {
"product_id": "[redacted-phone]",
"color_id": "400",
"name": "Blue",
"hex": "#2D3041",
"reference": "C[redacted-phone]-I2026",
"availability": "in_stock"
},
"available_colors": [
{
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"additional_color_count": 0,
"main_color_hex": "#2D3041",
"tags": [
{
"type": "[trimmed-depth]",
"label": "[trimmed-depth]"
}
],
"image": "https://static.zara.net/assets/public/24d9/82df/311a45168f51/478b5c64b41c/[redacted-phone]-f1/[redacted-phone]-f1.jpg?ts=[redacted-phone]&w=2048",
"images": [
{
"url": "[trimmed-depth]",
"kind": "[trimmed-depth]",
"name": "[trimmed-depth]",
"width": "[trimmed-depth]",
"height": "[trimmed-depth]",
"order": "[trimmed-depth]"
}
],
"image_count": 1,
"seo": {
"keyword": "cherry-print-twill-pinafore-dress",
"seo_product_id": "04575561",
"discern_product_id": "[redacted-phone]"
},
"position": 3
}
],
"filters_available": {
"color": [
{
"value": "beige",
"label": "Beige",
"count": 134,
"filter": "color_facet:beige"
},
{
"value": "black",
"label": "Black",
"count": 131,
"filter": "color_facet:black"
},
{
"value": "blue",
"label": "Blue",
"count": 115,
"filter": "color_facet:blue"
}
],
"price_range": [
{
"value": "479",
"label": "479",
"count": null,
"filter": "priceFilter:"
},
{
"value": "1000",
"label": "1000",
"count": null,
"filter": "priceFilter:"
},
{
"value": "2000",
"label": "2000",
"count": null,
"filter": "priceFilter:"
}
],
"rootCategories": [
{
"value": "catalog01_woman",
"label": "Woman",
"count": 600,
"filter": "rootCategories_facet:catalog01_woman"
},
{
"value": "catalog01_massimoduttiwoman",
"label": "MD Woman",
"count": 132,
"filter": "rootCategories_facet:catalog01_massimoduttiwoman"
},
{
"value": "catalog01_kid",
"label": "Kid",
"count": 115,
"filter": "rootCategories_facet:catalog01_kid"
}
]
},
"sort_available": [
{
"value": "price_asc",
"label": "Cheapest first"
},
{
"value": "price_desc",
"label": "Most expensive first"
}
]
}
}What the Zara API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search the Zara catalogue and get back the products on sale right now — each with Zara's own product id, name, price (with the was-price and discount percentage when it is reduced), currency, availability, colourway with hex code, the other colours it comes in, the product images at full resolution, the department and product family, and the link to the page. Choose the country store with `market` (that is what sets the currency), narrow with section, colour, category or brand, sort by price, and page through the results. Every filter value the query actually supports comes back in `filters_available` with counts, so you never have to guess one. | Ops teams call search to search the Zara catalogue and get back the products on sale right now. | query, market, section, brand, color, ... |
| product_detail | Get one Zara product in full, by its product id or its zara.com URL — the name and the full description, the price with its currency and any discount, the product reference as printed on the label, EVERY colourway it is made in and, inside each one, EVERY size with Zara's own SKU number, that size's own price and whether it is in stock right now. Also the complete image gallery at full resolution, the fibre composition broken down per garment part, care instructions, country of origin and traceability, safety warnings, certified and sustainable material claims, physical measurements where Zara publishes them, the size system, the department and product family, and the date the product first went on sale. Choose the country store with `market` — id, price, currency and stock are all per-market. | Developer tools call product_detail to get one Zara product in full, by its product id or its zara.com URL. | product_id, url, market, include_composition |
Call search from your stack
curl -X POST https://api.reefapi.com/zara/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"dress","max_results":20}'import requests
r = requests.post(
"https://api.reefapi.com/zara/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "dress",
"max_results": 20
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/zara/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "dress",
"max_results": 20
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.zara.search with {"query":"dress","max_results":20}.Who uses this API and why
- Ops teams use Zara to search the Zara catalogue and get back the products on sale right now.
- Developer tools use Zara to get one Zara product in full, by its product id or its zara.com URL.
- Validation workflows use Zara to validate, enrich, classify and normalize operational data, all from one ReefAPI key and credit pool.
Questions developers ask before integrating
What is the Zara API?
Zara API is a ReefAPI endpoint group for zara It returns live JSON through POST requests under /zara/v1.
Is the Zara API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Zara calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Zara login or account?
No login to Zara 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 Zara 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 Zara API use?
Zara actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Zara from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call zara actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Zara API a Zara scraper?
It is the managed alternative to a DIY Zara 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 zara back as clean JSON.
Why does my Zara scraper keep getting blocked?
Most Zara 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.