Zara API endpoint
Searches Zara product listings by keyword within one department section, with real offset-based pagination. Returns products with pricing, images, availability, and every purchasable color variant, plus the search facets. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior. Requesting an offset beyond the available results returns a normal, empty result with is_last_page true rather than an error.
/zara/searchquery is required, 1 to 200 characters. section is required and accepts WOMAN, MAN, KID, HOME, or BEAUTY. offset is optional, zero-based, defaults to 0. limit is optional, 1 to 100, defaults to 24.
Notable response behavior:
query, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior.offset returns identical results on repeat requests, and different offsets return different, mostly non-overlapping windows of total_count results.is_last_page is the upstream's own genuine "no more results" marker. Requesting an offset beyond the available results returns a normal 200 with an empty products array and is_last_page: true, not an error.colors[].id is a color-specific id; colors[].product_id is that color's own upstream product id.facets lists the available filters (e.g. color, price range) with live per-value result counts where the upstream provides one.| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| id | 24 | |
| reference | 24 | “C04001246400000-I2026” and 23 other values |
| name | 24 | “ZW COLLECTION MID-RISE RELAXED ANKLE PATCHWORK JEANS” and 21 other values |
| price | 24 | 0 to 89.9, median 59.9 |
| section_name | 24 | WOMAN in all 24 |
| family_name | 23 | TROUSERS (22), DRESS (1) |
| subfamily_name | 23 | T.FOLDER PANTS (11), W.FOLDER PANTS (7), B.FOLDER PANTS (2) and 2 more |
| availability | 24 | in_stock (23), low_on_stock (1) |
| url | 24 | zara.com |
| image_url | 24 | static.zara.net |
| colors | 24 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Search keyword | jeans | |
| section | string | Yes | Department section to search Allowed values: WOMAN, MAN, KID, HOME, BEAUTY. | WOMAN | |
| offset | integer | No | 0 | Zero-based result offset, defaults to 0 | 0 |
| limit | integer | No | 24 | Results per request, 1 to 100, defaults to 24 | 24 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/zara/search?query=jeans§ion=WOMAN&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "jeans",
"section": "WOMAN",
"offset": 0,
"limit": 24,
"count": 1,
"total_count": 382,
"is_last_page": false,
"products": [
{
"id": 545408253,
"reference": "C08727223427000-I2026",
"name": "TRF LOW-RISE WIDE LEG JEANS",
"price": 59.9,
"section_name": "WOMAN",
"family_name": "TROUSERS",
"subfamily_name": "T.FOLDER PANTS",
"availability": "in_stock",
"url": "https://www.zara.com/us/en/trf-low-rise-wide-leg-jeans-p08727223.html",
"image_url": "https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800",
"colors": [
{
"id": "427",
"product_id": 545413052,
"name": "Mid-blue",
"price": 59.9,
"availability": "in_stock",
"image_url": "https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800"
},
{
"id": "443",
"product_id": 545413048,
"name": "Dark indigo",
"price": 59.9,
"availability": "in_stock"
}
]
}
],
"facets": [
{
"key": "color_facet",
"values": [
{
"id": "beige",
"label": "Beige",
"count": 8
},
{
"id": "black",
"label": "Black",
"count": 15
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/zara.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | zara.SearchResponse | No | ||||
| data.count | integer | No | ||||
| data.facets | array | No | ||||
| data.facets[].key | string | No | ||||
| data.facets[].values | array | No | ||||
| data.facets[].values[].count | integer | No | ||||
| data.facets[].values[].id | string | No | ||||
| data.facets[].values[].label | string | No | ||||
| data.fetched_at | string | No | ||||
| data.is_last_page | boolean | No | ||||
| data.limit | integer | No | ||||
| data.offset | integer | No | ||||
| data.products | array | No | ||||
| data.products[].availability | string | No | ||||
| data.products[].colors | array | No | ||||
| data.products[].colors[].availability | string | No | ||||
| data.products[].colors[].id | string | No | ||||
| data.products[].colors[].image_url | string | No | ||||
| data.products[].colors[].name | string | No | ||||
| data.products[].colors[].price | number | No | ||||
| data.products[].colors[].product_id | integer | No | ||||
| data.products[].family_name | string | No | ||||
| data.products[].id | integer | No | ||||
| data.products[].image_url | string | No | ||||
| data.products[].name | string | No | ||||
| data.products[].price | number | No | ||||
| data.products[].reference | string | No | ||||
| data.products[].section_name | string | No | ||||
| data.products[].subfamily_name | string | No | ||||
| data.products[].url | string | No | ||||
| data.query | string | No | ||||
| data.section | string | No | ||||
| data.source_url | string | No | ||||
| data.total_count | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/zara/search?query=jeans§ion=WOMAN&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"