---
title: "Search GOAT products"
method: GET
path: "/goat/search"
tags: ["GOAT"]
---

# Search GOAT products

`GET /goat/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/goat/search`
- Auth: API key in header `x-api-key`

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.

## Query parameters

- `query` string
- `in_stock` boolean
- `categories` 'footwear' | 'apparel' | 'accessories' | 'bags' | 'collectibles' | 'media' | 'sports' | 'jewelry' | 'home' | 'objects' | 'other' | 'art'
- `colors` 'black' | 'white' | 'blue' | 'grey' | 'red' | 'green' | 'pink' | 'cream' | 'brown' | 'purple' | 'multi-color' | 'orange' | 'tan' | 'yellow' | 'silver' | 'gold' | 'teal' | 'copper'
- `genders` 'men' | 'youth' | 'infant' | 'women'
- `conditions` 'new_no_defects' | 'used' | 'new_with_defects' | 'goat_clean'
- `product_types` 'sneakers' | 'sandals' | 'cleats' | 'boots' | 'slip-ons'
- `activities` 'lifestyle' | 'basketball' | 'running' | 'skateboarding'
- `brands` string
- `silhouettes` string
- `designers` string
- `years` string
- `price_cents_min` integer
- `price_cents_max` integer
- `under_retail` boolean
- `instant_ship` boolean
- `sort` 'relevance' | 'newest' | 'price_asc' | 'price_desc' | 'discount'
- `collection_slug` string
- `released_after` string
- `released_before` string
- `page` integer
- `limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- GoatSearchResponseDoc
  - `code` integer
  - `data` GoatSearchResponse
    - `limit` integer
    - `page` integer
    - `products` GoatProductSummary[]
      - `brand_name` string
      - `category` string
      - `gender` string
      - `id` string
      - `image_url` string
      - `in_stock` boolean
      - `instant_lowest_price` GoatPrice
        - `amount_cents` integer
        - `currency` string
      - `lowest_price` GoatPrice
        - `amount_cents` integer
        - `currency` string
      - `product_type` string
      - `release_date` string
      - `retail_price` GoatPrice
        - `amount_cents` integer
        - `currency` string
      - `silhouette` string
      - `slug` string
      - `source_url` string
      - `tags` string[]
      - `title` string
      - `under_retail` boolean
    - `query` string
    - `total_results` integer
    - `total_results_capped` boolean: 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

## Other responses

- `400`: Bad Request
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
