Grailed API endpoint
Returns Grailed's full facet taxonomy for the enum-like parameters grailed-search/grailed-sold-listings accept: department, category, category_path (a more granular subcategory slug), condition, color, and size, each with its own live listing count. department and condition are exhaustive closed sets (2 and 5 values respectively); category/category_path/color/size are the full, exhaustive value space as of the request. Designer is NOT included here (7,363 values, far too large for a facet-count response) -- see grailed-designers for that discovery endpoint.
/grailed/categoriesReturns Grailed's full facet taxonomy for the enum-like parameters grailed-search/grailed-sold-listings accept: department, category, category_path, condition, color, and size, each with its own live listing count, sourced from the same public search index those endpoints use.
No parameters.
Notable response behavior:
departments[].value is one of menswear, womenswear (the full, exhaustive set).conditions[].value is one of is_new, is_gently_used, is_used, is_worn, is_not_specified (the full, exhaustive set).categories[].value, category_paths[].value, colors[].value, and sizes[].value are the full, exhaustive value space as of the request (confirmed exhaustive live: 14/128/15/85 values respectively as of 2026-09-09) -- exactly what grailed-search/grailed-sold-listings accept as their own category/color/size parameters (category_path is a more granular subcategory slug, e.g. tops.short_sleeve_shirts, for callers who want finer-grained filtering than the flat category facet -- not itself a grailed-search parameter).sizes spans every category Grailed sells across (apparel letter sizes, numeric shoe/waist sizes, "one size", and more) since it is one index-wide facet -- sort by count (the default) to see the most common values first.grailed-designers for that discovery endpoint.| Field | Filled in, of 128 checked | Values in the sample |
|---|---|---|
| value | 128 | “tops.short_sleeve_shirts” and 127 other values |
| count | 128 | 234 to 1,821,157, median 29,175 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/grailed/categories" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"departments": [
{
"value": "menswear",
"count": 7567001
},
{
"value": "womenswear",
"count": 3213103
}
],
"categories": [
{
"value": "tops",
"count": 3585831
},
{
"value": "bottoms",
"count": 1441533
},
{
"value": "footwear",
"count": 495891
}
],
"category_paths": [
{
"value": "tops.short_sleeve_shirts",
"count": 200000
},
{
"value": "footwear.low_top_sneakers",
"count": 100000
}
],
"conditions": [
{
"value": "is_used",
"count": 4516431
},
{
"value": "is_gently_used",
"count": 3552087
},
{
"value": "is_new",
"count": 2642253
},
{
"value": "is_worn",
"count": 68671
},
{
"value": "is_not_specified",
"count": 1802
}
],
"colors": [
{
"value": "black",
"count": 3000000
},
{
"value": "white",
"count": 1500000
}
],
"sizes": [
{
"value": "m",
"count": 900000
},
{
"value": "l",
"count": 800000
}
]
}
}Request schema
No body schema
Response schema
#/definitions/grailed.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | grailed.CategoriesResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].count | integer | No | ||||
| data.categories[].value | string | No | ||||
| data.category_paths | array | No | ||||
| data.category_paths[].count | integer | No | ||||
| data.category_paths[].value | string | No | ||||
| data.colors | array | No | ||||
| data.colors[].count | integer | No | ||||
| data.colors[].value | string | No | ||||
| data.conditions | array | No | ||||
| data.conditions[].count | integer | No | ||||
| data.conditions[].value | string | No | ||||
| data.departments | array | No | ||||
| data.departments[].count | integer | No | ||||
| data.departments[].value | string | No | ||||
| data.fetched_at | string | No | ||||
| data.sizes | array | No | ||||
| data.sizes[].count | integer | No | ||||
| data.sizes[].value | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 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/grailed/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"