GOAT API endpoint
Returns the accepted values for goat_search's filter parameters: categories, colors, genders, conditions, brands, and years are returned live so a value GOAT adds is discoverable without any client-side change, while product_types and activities are served from a maintained list because GOAT exposes no live facet for them. brands is GOAT's top brands ordered by product count, not the complete brand list -- when brands_truncated is true, brands beyond the ones listed exist and remain valid goat_search values.
/goat/search/facetsNo parameters.
Response fields:
categories -- footwear, apparel, accessories, bags,
collectibles, media, sports, jewelry, home, objects,
other, artcolors -- black, white, blue, grey, red, green, pink,
cream, brown, purple, multi-color, orange, tan, yellow,
silver, gold, teal, coppergenders -- men, women, youth, infantconditions -- new_no_defects, used, new_with_defects,
goat_cleanproduct_types -- sneakers, sandals, cleats, boots, slip-onsactivities -- lifestyle, basketball, running, skateboardingbrands -- brand slugs, ordered by product count descendingbrands_truncated -- true when brands hit the upstream bucket limityears -- season years, ordered by product count descendingNotable response behavior:
brands is GOAT's top brands, not its complete brand list. Upstream
truncates the brand facet, and brands_truncated is true when that
limit was hit. A brand missing from this list is still a valid
brands value on GET /goat/search -- long-tail brands (for example
single-product artists under the art category) simply never reach the
top of the facet. Do not reject a caller-supplied brand for being absent
here.years matches a product's season year, which is the field
GET /goat/search's years parameter filters on. It is a superset of
the release years GOAT shows elsewhere.product_types and activities are maintained in this API rather than
read live, so they can lag a GOAT change; every other field cannot.Example response (brand and year lists truncated for brevity):
{
"code": 200,
"msg": "OK",
"data": {
"categories": ["footwear", "apparel", "accessories", "bags", "collectibles", "jewelry", "home", "media", "sports", "objects", "other", "art"],
"colors": ["black", "white", "blue", "grey", "green", "red", "multi-color", "brown", "pink", "cream", "tan", "purple", "yellow", "orange", "silver", "gold", "teal", "copper"],
"genders": ["men", "women", "youth", "infant"],
"conditions": ["new_no_defects", "used", "new_with_defects", "goat_clean"],
"product_types": ["sneakers", "sandals", "cleats", "boots", "slip-ons"],
"activities": ["lifestyle", "basketball", "running", "skateboarding"],
"brands": ["nike", "adidas", "new-balance", "puma", "supreme", "air-jordan"],
"brands_truncated": true,
"years": ["2023", "2024", "2022", "2025", "2021", "2020"]
}
}
| Field | In the sample | Value in the sample |
|---|---|---|
| categories | Has a value | 12 entries |
| colors | Has a value | 18 entries |
| genders | Has a value | 4 entries |
| conditions | Has a value | 4 entries |
| product_types | Has a value | 5 entries |
| activities | Has a value | 4 entries |
| brands | Has a value | 500 entries |
| brands_truncated | Has a value | true |
| years | Has a value | 70 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/goat/search/facets" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
"footwear",
"apparel",
"accessories",
"bags",
"collectibles",
"jewelry",
"home",
"media",
"sports",
"objects",
"other",
"art"
],
"colors": [
"black",
"white",
"blue",
"grey",
"green",
"red",
"multi-color",
"brown",
"pink",
"cream",
"tan",
"purple",
"yellow",
"orange",
"silver",
"gold",
"teal",
"copper"
],
"genders": [
"men",
"women",
"youth",
"infant"
],
"conditions": [
"new_no_defects",
"used",
"new_with_defects",
"goat_clean"
],
"product_types": [
"sneakers",
"sandals",
"cleats",
"boots",
"slip-ons"
],
"activities": [
"lifestyle",
"basketball",
"running",
"skateboarding"
],
"brands": [
"nike",
"adidas",
"new-balance",
"puma",
"supreme",
"air-jordan"
],
"brands_truncated": true,
"years": [
"2023",
"2024",
"2022",
"2025",
"2021",
"2020"
]
}
}Request schema
No body schema
Response schema
#/definitions/goat.facetsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | goat.SearchFacetsResponse | No | ||||
| data.activities | array | No | lifestyle,basketball,running,skateboarding | |||
| data.brands | array | No | nike,adidas,new-balance,puma,supreme | Brands is ordered by product count descending and is GOAT's top brands, not its whole brand universe -- upstream truncates this bucket (see BrandsTruncated). | ||
| data.brands_truncated | boolean | No | true | BrandsTruncated reports that upstream returned its maximum brand bucket size, so brands beyond it exist but are not listed. A brand missing from Brands is still a valid goat_search brands value. | ||
| data.categories | array | No | footwear,apparel,accessories,bags,collectibles,media,sports,jewelry,home,objects,other,art | |||
| data.colors | array | No | black,white,blue,grey,red,green,pink,cream,brown,purple,multi-color,orange,tan,yellow,silver,gold,teal,copper | |||
| data.conditions | array | No | new_no_defects,used,new_with_defects,goat_clean | |||
| data.genders | array | No | men,youth,infant,women | |||
| data.product_types | array | No | sneakers,sandals,cleats,boots,slip-ons | ProductTypes and Activities are statically maintained, not live -- GOAT never returns them as aggregation buckets. | ||
| data.years | array | No | 2026,2025,2024,2023 | Years is the vocabulary for goat_search's years parameter, which filters on a product's season year. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 500 | Internal Server Error | #/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/goat/search/facets" \
-H "x-api-key: $CRAWLORA_API_KEY"