---
title: "Search or browse Adidas products"
method: GET
path: "/adidas/search"
tags: ["Adidas"]
---

# Search or browse Adidas products

`GET /adidas/search`

## Request

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

Searches Adidas.com product listings by keyword, or browses a category listing by taxonomy slug, with real pagination and sort options. Exactly one of query or category is required. Returns product summaries (title, price, rating, images, color variants) plus facet filter groups, sort options, and (for category browse) a breadcrumb trail. Keyword search is best-effort relevance, not a guaranteed match: an obscure keyword returns whatever Adidas's own search index surfaces. A genuinely empty keyword search returns an empty product list, and requesting a page beyond the available result pages (or an unknown category) returns a not-found error. Category values are the path segment after /us/ in an Adidas category URL (e.g. women-athletic_sneakers); they can also be read from the url fields of a search/category response's own filters and breadcrumbs. Facets are applied by composing them into the category slug rather than by a separate parameter: each filters[].values[].slug is a token you splice into the category value (e.g. category=women-black-athletic_sneakers applies the Color=Black facet, and category=women-athletic_sneakers-prime applies Shipping=PRIME). Use filters[].key (the facet's stable name, e.g. searchcolor) rather than filters[].id, which is an opaque per-deployment UUID that cannot be used to build a request. Note the token's position within the slug varies by facet, so compose from a slug you have seen rather than assuming a fixed order.

## Query parameters

- `query` string
- `category` string
- `sort` string
- `page` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- AdidasSearchResponseDoc
  - `code` integer
  - `data` AdidasSearchResponse
    - `breadcrumbs` AdidasBreadcrumb[]
      - `link` string
      - `text` string
    - `category` string
    - `count` integer
    - `fetched_at` string
    - `filters` AdidasFilter[]
      - `id` string: ID is Adidas's own per-deployment filter UUID. It is opaque, is not stable across categories, and cannot be used to build a request -- use Key for that.
      - `key` string: Key is the facet's stable, human-readable name (e.g. "searchcolor", "multi_age_gender_en_us"). This is the value that appears as a value's "on" field upstream, and the one to reason about when composing a filtered category slug -- see the package docs and docs/adidas-search.md.
      - `multiselect` boolean
      - `title` string
      - `values` AdidasFilterValue[]
        - `count` integer
        - `name` string
        - `selected` boolean: Selected reports whether this value is already applied to the current result set.
        - `slug` string: Slug is the locale-independent, slug-safe form of Value -- the token to splice into a category slug to apply this facet (e.g. "black" -> category "women-black-athletic_sneakers"). Falls back to Value when the upstream omits it.
        - `value` string: Value is the value as Adidas returns it for this locale.
    - `page` integer
    - `page_size` integer
    - `products` AdidasProduct[]
      - `alt_text` string
      - `available_sizes` string[]
      - `category` string
      - `color_variations` string[]
      - `discount_percent` integer
      - `division` string
      - `generic_product_type` string[]
      - `hover_image_url` string
      - `id` string
      - `image_url` string
      - `is_flash` boolean
      - `model_number` string
      - `online_from` string
      - `orderable` boolean
      - `original_price` number
      - `personalizable` boolean
      - `preorderable` boolean
      - `price` number
      - `rating` number
      - `rating_count` integer
      - `sport` string[]
      - `subtitle` string
      - `surface` string[]
      - `title` string
      - `unisex` boolean
      - `url` string
    - `query` string
    - `sort` string
    - `sort_options` AdidasSortOption[]
      - `id` string
      - `selected` boolean
    - `source_url` string
    - `total_pages` integer
    - `total_products` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `429`: Too Many Requests
- `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/afac9b012a27?raw)
