GOAT API endpoint
Use Crawlora's Get GOAT search facet values API to extract supported public GOAT data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.
/goat/search/facetsReturns the accepted values for goat_search's filter parameters: categories, colors, genders, conditions, brands, and years are read live from GOAT's own search API 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. Credential-free public data. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and agent-native workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.
Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.
| 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"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint is executed through Crawlora's managed scraping infrastructure.
- Every live field reflects GOAT's vocabulary at request time -- treat this as the source of truth over any list hardcoded in other documentation, which can drift as GOAT adds values. - `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): ```json { "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"] } } ```
Crawlora does not silently return bad data when the upstream page cannot be used.
| Status | Common failure case |
|---|---|
| 400 | Invalid input or missing required parameter |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal execution error |
| 502 | Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved |
When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.
| Status | Description | Schema |
|---|---|---|
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
{
"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 |
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"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms