GOAT API endpoint
Searches or browses GOAT's sneaker/streetwear/collectibles catalog by free-text query and/or facet filters (category, footwear sub-type, activity, color, gender, condition, brand, release year, price range, release-date range, silhouette, designer, in-stock/under-retail/instant-ship, curated collection), returning product summaries (brand, silhouette, category, image, stock status, headline pricing across all sizes) plus the total matching count. Query is optional -- a facet filter alone browses the catalog the same way GOAT's own category/brand pages do.
/goat/searchQuery parameters:
query (optional) — free-text search query, e.g. a model name, colorway,
or style code (jordan 1). Omit to browse by facet filters alone, the
same way GOAT's own category/brand pages do.in_stock (optional) — only include products currently in stock.categories (optional) — comma-separated for multiple values. Allowed
values: footwear, apparel, accessories, bags, collectibles,
media, sports, jewelry, home, objects, other, art. See
GET /goat/search/facets for the current live list.colors (optional) — comma-separated for multiple values. Allowed
values: black, white, blue, grey, red, green, pink, cream,
brown, purple, multi-color, orange, tan, yellow, silver,
gold, teal, copper. See GET /goat/search/facets for the current
live list.genders (optional) — comma-separated for multiple values. Allowed
values: men, youth, infant, women. See GET /goat/search/facets
for the current live list.conditions (optional) — comma-separated for multiple values. Allowed
values: new_no_defects, used, new_with_defects, goat_clean. See
GET /goat/search/facets for the current live list.product_types (optional) — footwear sub-type, comma-separated for
multiple values. Allowed values: sneakers, sandals, cleats,
boots, slip-ons.activities (optional) — activity (sneakers only), comma-separated for
multiple values. Allowed values: lifestyle, basketball, running,
skateboarding.brands (optional) — one or more lowercase-hyphenated brand slugs,
comma-separated, e.g. air-jordan,nike. GOAT's brand catalog is large
and changes over time, so this is not a fixed enum — any
lowercase-hyphenated slug is accepted and passed through.
GET /goat/search/facets returns GOAT's top brands by product count;
brands outside that list are still valid here.years (optional) — one or more season years, comma-separated, e.g.
2025,2026. See GET /goat/search/facets for the current live list.silhouettes (optional) — one or more silhouettes, comma-separated,
matching GOAT's own naming exactly (e.g. Air Jordan 1). Not a fixed
enum and not enumerable by this API — take a value from
GET /goat/product/{slug}'s silhouette field.designers (optional) — one or more designers, comma-separated,
matching GOAT's own naming exactly (e.g. Peter Moore). Same
discoverability note as silhouettes, via the designer field.price_cents_min / price_cents_max (optional) — restrict results to a
price range, in cents. price_cents_min must not exceed
price_cents_max when both are set.under_retail (optional) — only include products currently trading
below original retail price.instant_ship (optional) — only include products with GOAT Instant Ship
availability (pre-verified, ships faster).sort (optional) — result sort order. Allowed values: relevance
(default, best-match), newest (most recently released first),
price_asc, price_desc, discount (biggest discount off retail
first).collection_slug (optional) — scope results to one of GOAT's curated
collections (see GET /goat/collection), combinable with query, every
other filter, and sort — unlike GET /goat/collection itself, which
only supports pagination. Collection slugs are not enumerable by this
API — capture one from a live GOAT page.released_after / released_before (optional) — restrict results to a
release-date range (YYYY-MM-DD, UTC). Finer-grained than years, and
combinable with it. released_after must not be later than
released_before.page (optional) — 1-indexed result page. Defaults to 1. Not limited
to the first 10000 results; see total_results_capped below.limit (optional) — results per page. Defaults to 12, maximum 100.Notable response behavior:
total_results reflects GOAT's matching-result count for the applied
query/filters, not just len(products).total_results_capped is true when GOAT saturated that count at its
ceiling of 10000. The real number of matches is then higher and
unknown — do not present 10000 as an exact total, and do not stop
paging there. Deeper pages keep returning distinct products well past
the ceiling (page 150 at limit=100 still returns a full page), so
page until a page comes back short or empty rather than until
page * limit reaches total_results. Narrow the query with facet
filters if you need an exact count.lowest_price/instant_lowest_price are the lowest current price across
all sizes/conditions for that product. See GET /goat/product/{slug} for
a per-size breakdown.categories, colors, genders, conditions,
product_types, activities, or sort value, a malformed
brands/years/released_after/released_before value, a negative
price_cents_min/price_cents_max, price_cents_min greater than
price_cents_max, or released_after later than released_before
returns 400 before any upstream request is made.query and every facet filter are optional; omitting all of them
browses GOAT's full catalog, most-relevant first.| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| id | 12 | |
| slug | 12 | |
| title | 12 | “Fragment Design x Travis Scott x Air Jordan 1 Retro Low OG…” and 11 other values |
| brand_name | 12 | Air Jordan in all 12 |
| silhouette | 12 | Air Jordan 1 in all 12 |
| category | 12 | shoes in all 12 |
| product_type | 12 | sneakers in all 12 |
| gender | 12 | |
| image_url | 12 | image.goat.com |
| in_stock | 12 | true in 12 of 12 |
| retail_price | 12 | |
| lowest_price | 12 | |
| instant_lowest_price | 7 | |
| release_date | 11 | 1985-09-14 to 2025-11-15 |
| tags | 10 | median 5 entries |
| source_url | 12 | goat.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Free-text search query, e.g. a model name, colorway, or style code. Optional -- omit to browse by facet filters alone | jordan 1 | |
| in_stock | boolean | No | Only include products currently in stock | false | |
| categories | string | No | Filter by category, comma-separated for multiple values. See GET /goat/search/facets for the current live list Allowed values: footwear, apparel, accessories, bags, collectibles, media, sports, jewelry, home, objects, other, art. | footwear | |
| colors | string | No | Filter by color, comma-separated for multiple values Allowed values: black, white, blue, grey, red, green, pink, cream, brown, purple, multi-color, orange, tan, yellow, silver, gold, teal, copper. | black | |
| genders | string | No | Filter by gender, comma-separated for multiple values Allowed values: men, youth, infant, women. | men | |
| conditions | string | No | Filter by item condition, comma-separated for multiple values Allowed values: new_no_defects, used, new_with_defects, goat_clean. | new_no_defects | |
| product_types | string | No | Filter by footwear sub-type, comma-separated for multiple values Allowed values: sneakers, sandals, cleats, boots, slip-ons. | sneakers | |
| activities | string | No | Filter by activity (sneakers only), comma-separated for multiple values Allowed values: lifestyle, basketball, running, skateboarding. | lifestyle | |
| brands | string | No | Filter by one or more brand slugs, comma-separated, e.g. air-jordan,nike. GET /goat/search/facets lists GOAT's top brands; long-tail brands are valid here even when absent from that list | air-jordan | |
| silhouettes | string | No | Filter by one or more silhouettes, comma-separated, matching GOAT's own naming (see a product's silhouette field) | Air Jordan 1 | |
| designers | string | No | Filter by one or more designers, comma-separated, matching GOAT's own naming (see a product's designer field) | Peter Moore | |
| years | string | No | Filter by season year(s), comma-separated, e.g. 2025,2026. See GET /goat/search/facets for the current live list | 2025 | |
| price_cents_min | integer | No | Only include results priced at or above this amount, in cents | 10000 | |
| price_cents_max | integer | No | Only include results priced at or below this amount, in cents | 20000 | |
| under_retail | boolean | No | Only include products currently trading below original retail price | false | |
| instant_ship | boolean | No | Only include products with GOAT Instant Ship availability | false | |
| sort | string | No | relevance | Result sort order, defaults to relevance Allowed values: relevance, newest, price_asc, price_desc, discount. | relevance |
| collection_slug | string | No | Scope results to a GOAT curated collection (see GET /goat/collection), combinable with query, every other filter, and sort | top-trending-uk | |
| released_after | string | No | Only include products released on or after this date (YYYY-MM-DD, UTC) | 2025-08-01 | |
| released_before | string | No | Only include products released on or before this date (YYYY-MM-DD, UTC) | 2025-08-31 | |
| page | integer | No | 1 | 1-indexed result page, defaults to 1 | 1 |
| limit | integer | No | 12 | Results per page, defaults to 12, maximum 100 | 12 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/goat/search?query=coffee&in_stock=true&categories=footwear&colors=black&genders=men&conditions=new_no_defects&product_types=sneakers&activities=lifestyle&under_retail=true&instant_ship=true&sort=relevance&page=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "jordan 1",
"page": 1,
"limit": 12,
"total_results": 5540,
"products": [
{
"id": "1469452",
"slug": "fragment-design-x-travis-scott-x-air-jordan-1-low-og-sp-sail-military-blue-dm7866-104",
"title": "Fragment Design x Travis Scott x Air Jordan 1 Retro Low OG SP 'Sail Military Blue'",
"brand_name": "Air Jordan",
"silhouette": "Air Jordan 1",
"category": "shoes",
"product_type": "sneakers",
"gender": "men",
"image_url": "https://image.goat.com/attachments/product_template_pictures/images/112/426/275/original/1469452_00.png.png",
"in_stock": true,
"retail_price": {
"amount_cents": 15000,
"currency": "USD"
},
"lowest_price": {
"amount_cents": 49100,
"currency": "USD"
},
"instant_lowest_price": {
"amount_cents": 52000,
"currency": "USD"
},
"release_date": "2025-11-15",
"tags": [
"3F",
"Luxury Gifts",
"Gifts for the Streetwear Obsessed"
],
"source_url": "https://www.goat.com/sneakers/fragment-design-x-travis-scott-x-air-jordan-1-low-og-sp-sail-military-blue-dm7866-104"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/goat.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | goat.SearchResponse | No | ||||
| data.limit | integer | No | 12 | |||
| data.page | integer | No | 1 | |||
| data.products | array | No | ||||
| data.products[].brand_name | string | No | Air Jordan | |||
| data.products[].category | string | No | shoes | |||
| data.products[].gender | string | No | men | |||
| data.products[].id | string | No | 1469452 | |||
| data.products[].image_url | string | No | ||||
| data.products[].in_stock | boolean | No | true | |||
| data.products[].instant_lowest_price | goat.Price | No | ||||
| data.products[].instant_lowest_price.amount_cents | integer | No | 49100 | |||
| data.products[].instant_lowest_price.currency | string | No | USD | |||
| data.products[].lowest_price | goat.Price | No | ||||
| data.products[].lowest_price.amount_cents | integer | No | 49100 | |||
| data.products[].lowest_price.currency | string | No | USD | |||
| data.products[].product_type | string | No | sneakers | |||
| data.products[].release_date | string | No | 2025-11-15 | |||
| data.products[].retail_price | goat.Price | No | ||||
| data.products[].retail_price.amount_cents | integer | No | 49100 | |||
| data.products[].retail_price.currency | string | No | USD | |||
| data.products[].silhouette | string | No | Air Jordan 1 | |||
| data.products[].slug | string | No | fragment-design-x-travis-scott-x-air-jordan-1-low-og-sp-sail-military-blue-dm7866-104 | |||
| data.products[].source_url | string | No | https://www.goat.com/sneakers/fragment-design-x-travis-scott-x-air-jordan-1-low-og-sp-sail-military-blue-dm7866-104 | |||
| data.products[].tags | array | No | ||||
| data.products[].title | string | No | Fragment Design x Travis Scott x Air Jordan 1 Retro Low OG SP 'Sail Military Blue' | |||
| data.products[].under_retail | boolean | No | false | |||
| data.query | string | No | jordan 1 | |||
| data.total_results | integer | No | 5540 | |||
| data.total_results_capped | boolean | No | false | TotalResultsCapped reports that upstream saturated total_results at its ceiling, so the real match count is higher and unknown. Deeper pages still return products past that ceiling. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 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?query=coffee&in_stock=true&categories=footwear&colors=black&genders=men&conditions=new_no_defects&product_types=sneakers&activities=lifestyle&under_retail=true&instant_ship=true&sort=relevance&page=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"