Retail pricing and availability monitoring
Use Adidas endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Turn Adidas.com's public storefront into structured retail data — keyword product search or category browse with real pagination and sort options, full product detail per SKU (pricing, description, images, every purchasable size), and a store locator with per-store detail (hours, phone, in-store services), all as normalized JSON. Credential-free.
Search and browse Adidas products, get full product detail, and find nearby Adidas stores as structured JSON.
Endpoint families
5
Documented params
24
Examples
7
Live catalog snapshot
Active endpoints
7
Methods
GET
Required params
14
Schema refs
7
{
"platform": "Adidas",
"endpoint": "adidas-search",
"method": "GET",
"path": "/adidas/search",
"auth": "apiKey"
}Use cases
Search and browse Adidas products, get full product detail, and find nearby Adidas stores as structured JSON.
Use Adidas endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Use Adidas endpoints to turn product catalog research into repeatable API requests with documented inputs and JSON responses.
Use Adidas endpoints to turn store locator and footprint mapping into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Adidas endpoint catalog — 7 endpoints, 24 documented request parameters, and 7 published response schemas — the same catalog Docs and Playground run against.
7 documented Adidas endpoints, grouped into 5 request families — Product, Search and Store, plus 2 more.
24 request parameters are documented across those Adidas endpoints, 14 of them required — the full input contract is public before you write any integration code.
7 of the 7 Adidas endpoints ship a recorded example response, and 7 carry a documented response schema — you can code against the real JSON before the first request.
Adidas endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
7 hosted MCP tools back the Adidas endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/adidas/product
/adidas/search
/adidas/store
/adidas/stores
/adidas/suggest
Endpoint catalog
/adidas/searchSearches 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 normalized 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.
Response notes
- Keyword search is best-effort relevance, not a guaranteed keyword match: an obscure `query` returns whatever Adidas's own search index surfaces (there is no reliable signal to distinguish a true match from Adidas's fallback results). - Requesting a `page` beyond the available result pages — or an unknown `category` — returns a not-found error rather than an empty page. - `products[].id` is the Adidas SKU to pass as `product_id` to `adidas-product` for full product-detail data. - `products[]` carries rich per-SKU metadata: `division` (brand line, e.g. Originals/Sportswear/Performance), `category` (e.g. shoes/clothing), `sport[]`, `generic_product_type[]`, `surface[]`, `available_sizes[]`, `color_variations[]`, and `orderable`/`preorderable`/`personalizable` availability flags. - `filters[]` are the facet groups Adidas's own search exposes (e.g. Shipping, Width, Brand, Price), each with `values[]` carrying a live `count`. `sort_options[]` lists the four sort orders with the currently selected one flagged. `breadcrumbs[]` is populated only for category browse (empty for keyword search). - **Applying a facet.** There is no separate filter parameter: facets are applied by composing them into the `category` value. Each `filters[].values[].slug` is the token to splice in — `category=women-black-athletic_sneakers` applies Color=Black to `women-athletic_sneakers`, and `category=women-athletic_sneakers-prime` applies Shipping=PRIME. The resulting `total_products` matches the facet value's advertised `count`. The token's **position within the slug varies by facet** (Color sits in the middle, Shipping at the end), so compose from a slug you have actually seen rather than assuming a fixed order, and read `filters[].values[].selected` to see what is already applied. - Use `filters[].key` (the facet's stable name, e.g. `searchcolor`, `multi_age_gender_en_us`) when reasoning about facets. `filters[].id` is Adidas's opaque per-deployment UUID — it is not stable across categories and cannot be used to build a request. - The facet set is **category-dependent**: `women-athletic_sneakers` exposes 10 groups, `men-clothing` 15, and some categories add a Size group that others omit. Always read the facets from the response rather than assuming a fixed list. - `total_pages` is derived from `total_products` and the 48-per-page size. Example response: ```json {"code":200,"msg":"OK","data":{"query":"samba","page":1,"page_size":48,"count":48,"total_products":11939,"total_pages":249,"products":[{"id":"KJ7435","model_number":"OSD72","title":"SAMBA OG SHOES","subtitle":"Women's Originals","url":"https://www.adidas.com/samba-og-shoes/KJ7435.html","division":"Originals","category":"shoes","sport":["Lifestyle"],"generic_product_type":["TRAINERS"],"surface":["Street"],"color_variations":["KI6674","KH9727"],"available_sizes":["5","5.5","6","6.5","7","7.5","8","8.5","9","9.5","10","10.5","11"],"image_url":"https://assets.adidas.com/images/w_280,h_280,f_auto,q_auto:sensitive/f88fdc6701a845be8fa1b2d0656b4ab0_9366/samba-og-shoes.jpg","price":120,"rating":4.7889,"rating_count":450,"orderable":true}],"filters":[{"id":"0728964a-0c81-452b-b3b6-90a2ec2a5791","key":"brand_en_us","title":"Brand","multiselect":true,"values":[{"name":"Originals","value":"originals","slug":"originals","count":768}]}],"sort_options":[{"id":"price-low-to-high"},{"id":"newest-to-oldest"},{"id":"top-sellers"},{"id":"price-high-to-low"}]}} ``` A category-browse request (`category=women-athletic_sneakers`) returns the same shape with `breadcrumbs` populated: ```json {"code":200,"msg":"OK","data":{"category":"women-athletic_sneakers","page":1,"page_size":48,"count":48,"total_products":1424,"total_pages":30,"products":[{"id":"JI0397","title":"Adifom IIInfinity Slides","price":27,"original_price":45,"discount_percent":40}],"breadcrumbs":[{"text":"Women","link":"/women"},{"text":"Athletic & Sneakers","link":"/women-athletic_sneakers"}]}} ```
MCP tool adidas_search
/adidas/productReturns normalized product-detail data for one Adidas SKU: name, brand, category, description, pricing (current/standard/sale), images, and every purchasable size variant. product_id is the Adidas SKU (e.g. JI0397), taken from a search result's products[].id field or the trailing segment of an Adidas product page URL. An unknown product_id returns a not-found error.
Response notes
- An unknown `product_id` returns a not-found error. - `price` fields are in the listing's currency (US dollars for the US storefront); `current_price` is the effective price (sale price when on sale, otherwise standard), `standard_price` is the list price, `sale_price` is the sale price, and `discount_text` is the site's own discount label (e.g. `-40%`). - `images[]` is the product's detail view list (each with a `url`, `view`, and `sort_order`); `variations[]` lists every purchasable size (`sku`, `size`, `split_size`, `gtin`). - `breadcrumbs[]` is the category trail (e.g. Originals > Shoes); `sport[]` lists the sport/activity tags. Example response: ```json {"code":200,"msg":"OK","data":{"product_id":"JI0397","model_number":"NSB91","base_model_number":"NJO68","name":"Adifom IIInfinity Slides","product_type":"inline","brand":"Originals","category":"Shoes","color":"Core Black / Core Black / Core Black","gender":"U","sale":true,"outlet":true,"sport":["Lifestyle","Swim","Yoga"],"current_price":27,"standard_price":45,"sale_price":27,"discount_text":"-40%","description":"The Adifom Iiinfinity infuses 2000s-era design DNA into a modern foam slide...","canonical_url":"//www.adidas.com/us/adifom-iiinfinity-slides/JI0397.html","images":[{"url":"https://assets.adidas.com/images/w_500,f_auto,q_auto/ce695817d093430c82e4c12ec55bf06b_9366/Adifom_IIInfinity_Slides_Black_JI0397_01_00_standard.jpg","view":"Side Lateral Center View","sort_order":1}],"breadcrumbs":[{"text":"Originals","link":"/us/originals"},{"text":"Shoes","link":"/us/shoes"}],"variations":[{"sku":"JI0397_520","size":"M 3 / W 4","split_size":["3","4"],"gtin":"4067904490166"}]}} ```
MCP tool adidas_product
/adidas/product/reviewsReturns one page of customer reviews for an Adidas product model, plus the model's rating summary: overall rating, star histogram, percentage of reviewers who recommend it, per-attribute averages (Size, Width, Comfort, Quality with their own scale labels), and Adidas's AI-generated review digest when one exists. Each review carries the rating, headline, body, author nickname, purchased colorway, helpful/not-helpful vote counts, badges, customer photos, and submission time. model_number is the Adidas model number (e.g. SAMBAU2312) -- NOT the SKU: take it from an adidas_search result's products[].model_number field, which is a different value from products[].id. Reviews are returned 10 per page. Reviews are scoped to review text written in the requested locale's language, and most of the US catalog's reviews are English, so a non-English locale commonly returns rating statistics and a localized summary with an empty reviews list. A model with no reviews -- including a well-formed but unrecognized model_number -- returns an empty reviews list rather than an error, because Adidas answers 200 with a zero count rather than 404.
Response notes
- `total_reviews` counts the reviews matching this request's filters, so it shrinks when `rating` is set. `rating_count` is the model's unfiltered review count from the rating summary and stays constant. - `rating_histogram` is ascending: index 0 is the 1-star count, index 4 the 5-star count. - `secondary_ratings[]` are the per-attribute scales Adidas collects (`Size`, `Width`, `Comfort`, `Quality`), each with its own `min_label`/`mid_label`/`max_label` wording in the requested locale. A scale with no midpoint wording returns an empty `mid_label`. - `summary` is Adidas's AI-generated digest of the model's reviews. It is present only when the upstream has generated one, is localized by `locale`, and carries the upstream's own `disclaimer`, which should be shown alongside the text. - Reviews are scoped to review text written in the requested locale's language. Most of the US catalog's reviews are English, so a non-English `locale` commonly returns the rating statistics and a localized `summary` with an empty `reviews` list. - A model with no reviews — including a well-formed but unrecognized `model_number` — returns an empty `reviews` list with `total_reviews: 0` rather than an error, because Adidas answers `200` with a zero count rather than `404`. - `recommended` is omitted when the upstream did not record a recommendation for that review. `color` (the purchased colorway), `badges`, `photos`, and `responses` (brand replies) are omitted when empty. - `source_url` is the reviews request; `ratings_source_url` is the sibling rating-summary request the same call makes. Example response: ```json {"code":200,"msg":"OK","data":{"model_number":"SAMBAU2312","locale":"en_US","page":1,"page_size":10,"total_pages":338,"total_reviews":3371,"count":1,"rating_count":3371,"overall_rating":4.8,"recommended_percentage":97,"rating_histogram":[62,22,50,223,3014],"secondary_ratings":[{"name":"Size","label":"Size","average_rating":3.06,"value_range":5,"min_label":"Too small","mid_label":"Perfect","max_label":"Too large"}],"summary":{"text":"* Customers consistently praise all-day comfort and lightweight feel","title":"REVIEW_SUMMARY","type":"TEXT","detail":"BULLET_FORMAT_SUMMARY","disclaimer":"This summary is generated by artificial intelligence based on customer reviews."},"source_url":"https://www.adidas.com/api/models/SAMBAU2312/reviews?bazaarVoiceLocale=en_US&includeLocales=en%2A&limit=10&offset=0","ratings_source_url":"https://www.adidas.com/api/models/SAMBAU2312/ratings?bazaarVoiceLocale=en_US","fetched_at":"2026-09-05T13:45:00Z","reviews":[{"id":"184365254","rating":5,"rating_range":5,"headline":"A must for your wardrobe","body":"I love the color and the snakeskin design. I've gotten so many compliments on them.","author":"LizD74","color":"Focus Olive / Off White / Gum","locale":"en_US","recommended":true,"badges":["IncentivizedReview"],"submitted_at":"2026-09-05T03:58:39Z","submitted_date":"September 5, 2026"}]}} ```
MCP tool adidas_product_reviews
/adidas/product/review-topicsReturns the topics an Adidas product model's customer reviews can be filtered by -- the "filter by topic" chips the product page shows, commonly satisfaction, comfort, color, purchase, fit, appearance, quality and style. Feed a topics[].topic value back to /adidas/product/reviews as its topic parameter to return only reviews about that aspect. The topic vocabulary is per model, not a fixed list: a shoe exposes fit and comfort topics that an accessory does not, so read it per model rather than hard-coding it. model_number is the Adidas model number (e.g. SAMBAU2312) -- NOT the SKU: take it from an adidas_search result's products[].model_number field. A model with no reviews, including a well-formed but unrecognized model_number, returns an empty topics list rather than an error. Note the label field is a display form of topic, not translated text: Adidas returns the same English values for every locale on this route.
Response notes
- The topic vocabulary is **per model**, not a fixed list — a shoe exposes fit and comfort topics an accessory does not. Read it per model rather than hard-coding it. Commonly seen values are `satisfaction`, `comfort`, `color`, `purchase`, `fit`, `appearance`, `quality` and `style`. - `label` is a **display form of `topic`, not translated text**. Adidas returns the same English values for every `locale` on this route, unlike `/adidas/product/reviews`, where the locale genuinely translates the rating-scale labels. - A model with no reviews — including a well-formed but unrecognized `model_number` — returns an empty `topics` list rather than an error, because the upstream answers `200` with an empty list rather than `404`. - Passing a `topic` that is not in this list to `/adidas/product/reviews` returns `400` naming the model's valid topics, rather than silently returning zero reviews.
MCP tool adidas_product_review_topics
/adidas/suggestReturns the top matching products for a partial query, the same search-as-you-type preview Adidas's own search box shows. Adidas has no separate term-autocomplete index, so each suggestion is a matching product (id, title, url, image, price) rather than a completed search phrase. Best-effort relevance: an obscure query returns whatever Adidas's own search surfaces.
Response notes
- Adidas has no separate term-autocomplete index, so each `suggestions[]` entry is a matching product (`id`, `title`, `url`, `image_url`, `price`) rather than a completed search phrase. - Best-effort relevance: an obscure `query` returns whatever Adidas's own search surfaces, not a guaranteed prefix match. - Each suggestion's `id` is the SKU to pass as `product_id` to `adidas-product` for full detail. Example response: ```json {"code":200,"msg":"OK","data":{"query":"samba","count":10,"suggestions":[{"id":"KJ7435","title":"SAMBA OG SHOES","url":"https://www.adidas.com/samba-og-shoes/KJ7435.html","image_url":"https://assets.adidas.com/images/w_280,h_280,f_auto,q_auto:sensitive/f88fdc6701a845be8fa1b2d0656b4ab0_9366/samba-og-shoes.jpg","price":120}]}} ```
MCP tool adidas_suggest
/adidas/storesReturns Adidas physical retail stores nearest to a coordinate, sourced from Adidas's own store-finder API: name, address, phone, coordinates, distance in miles, opening hours, and in-store feature flags. lat and lng are both required. Adidas's upstream ignores a caller-supplied radius and returns the nearest ~20 stores ordered by distance. A location with no stores returns an empty list rather than an error.
Response notes
- Adidas's upstream ignores a caller-supplied radius and returns at most 20 stores, ordered nearest-first. Each store carries its own `distance_miles`. `total` is the number of stores found near the coordinate, and every one of them is in this single response. - A location with no stores returns an empty `stores` list rather than an error. - `opening_hours[]` lists all seven days (monday..sunday) with `start`/`end` "HH:MM" times, or `closed: true` for a day the store is not open. - `features[]` are Adidas's in-store service flags (e.g. `clickCollect`, `wifi`, `runGenie`). Example response: ```json {"code":200,"msg":"OK","data":{"lat":40.75,"lng":-73.99,"page":0,"count":15,"total":15,"stores":[{"id":"9990021686","name":"adidas Flagship Store New York","city":"New York","street":"565 5th Ave","phone":"+1 (212) 883-5606","latitude":40.755917,"longitude":-73.97848,"distance_miles":1.172,"features":["clickCollect","wifi","endlessAisle","nps","giftCards","rfid","runGenie"],"opening_hours":[{"day":"monday","start":"10:00","end":"20:00"},{"day":"sunday","start":"10:00","end":"20:00"}]}]}} ```
MCP tool adidas_stores
/adidas/storeReturns normalized detail for one Adidas retail store: name, status, phone, description, full address, coordinates, opening hours, and in-store services (e.g. Click and Collect, Free Wi-Fi). store_id is the numeric Adidas store id, taken from an adidas-stores response's stores[].id field. An unknown store_id returns a not-found error.
Response notes
- An unknown `store_id` returns a not-found error. - `status` is the store's current state (e.g. `OPEN`); `opening_hours[]` lists each day with `status` and `from`/`to` "HH:MM" times. - `services[]` lists in-store services (e.g. Click and Collect, Free Wi-Fi) with Adidas's own `type` and display `name`. Example response: ```json {"code":200,"msg":"OK","data":{"store_id":"9990021686","name":"adidas Flagship Store New York","status":"OPEN","phone":"+1 (212) 883-5606","description":"adidas Flagship Store New York featuring the brand's signature athletic footwear, clothes & accessories.","url":"https://www.adidas.com/us/stores/united-states/new-york/565-5th-ave/9990021686","address_line":"565 5th Ave","city":"New York","postal_code":"10017","country_code":"US","latitude":40.755917,"longitude":-73.97848,"opening_hours":[{"day":"SUNDAY","status":"OPEN","from":"10:00","to":"20:00"},{"day":"MONDAY","status":"OPEN","from":"10:00","to":"20:00"}],"services":[{"type":"CLICK_AND_COLLECT","name":"Click and Collect"},{"type":"WIFI","name":"Free Wi-Fi"}]}} ```
MCP tool adidas_store
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
How to scrape Adidas
Crawlora's Adidas endpoints return product search/browse, product detail, and store locator data as normalized JSON with one API key — no Adidas account required.
Send a keyword to /adidas/search, or a category taxonomy slug to browse a listing instead, both with real pagination and sort options — normalized product summaries, facet filters, and sort options.
Pass a product_id (SKU) from a search result's products[].id field to /adidas/product for pricing, description, images, and every purchasable size variant.
Pass lat/lng to /adidas/stores for the nearest Adidas retail stores, nearest-first, with hours, phone, and in-store service flags.
Pass a store_id from a /adidas/stores result to /adidas/store for that store's full detail — status, description, opening hours, and services.
Send a partial query to /adidas/suggest for the same search-as-you-type product preview Adidas's own search box shows.
Pass a model_number — the products[].model_number field on a search result, which is not the same value as products[].id — to /adidas/product/reviews for a page of that model's customer reviews, its rating summary, and Adidas's own AI-generated review digest. Call /adidas/product/review-topics first for the "filter by topic" chips the product page offers, then feed a topic value back to the reviews endpoint to read only the reviews about that aspect.
FAQ
Send a keyword to Crawlora's /adidas/search endpoint and get normalized product summaries — pricing, sizes, color variants — as structured JSON, no Adidas account required.
Yes — pass a category taxonomy slug to /adidas/search instead of a query for the same paginated listing shape, including a breadcrumb trail.
Pass latitude and longitude to /adidas/stores for the nearest stores, each with its own distance, hours, phone, and in-store service flags.
Yes — /adidas/product/review-topics returns the same "filter by topic" chips the product page shows, and passing one of those topic values to /adidas/product/reviews narrows the page to reviews about that aspect. Both take the model_number, not the SKU: take it from a search result's products[].model_number field, which is a different value from products[].id.
No — an obscure query returns whatever Adidas's own search index surfaces as a best-effort relevance match, not a guaranteed match, the same caveat as other major retail search APIs.