Adidas API endpoint
Use Crawlora's Get Adidas product reviews API to extract supported public Adidas 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.
/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. 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 |
|---|---|---|---|---|---|
| model_number | string | Yes | Adidas model number, from an adidas_search result's products[].model_number field | ||
| locale | string | No | en_US | Locale for the review-summary language, the secondary-rating scale labels, and the language of the reviews returned. Allowed values: cs_CZ, da_DK, de_AT, de_CH, de_DE, el_GR, en_AE, en_AU, en_CA, en_GB, en_IE, en_IL, en_IN, en_NZ, en_PH, en_SG, en_US, en_ZA, es_AR, es_CL, es_CO, es_ES, es_MX, es_PE, fr_BE, fr_CA, fr_CH, fr_FR, id_ID, it_CH, it_IT, ja_JP, ko_KR, nl_BE, nl_NL, pl_PL, pt_BR, pt_PT, ru_RU, sk_SK, sv_SE, th_TH, tr_TR, zh_HK, zh_TW. Defaults to en_US. | |
| rating | integer | No | Return only reviews with this star rating. Allowed values: 1, 2, 3, 4, 5. Omitted returns every rating. | ||
| topic | string | No | Return only reviews about one topic. Valid values are per-model -- read them from /adidas/product/review-topics for the same model_number (commonly satisfaction, comfort, color, purchase, fit, appearance, quality, style). An unrecognized topic returns a 400 listing the model's own topics. | ||
| page | integer | No | 1 | One-based page number, 10 reviews per page, defaults to 1 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/adidas/product/reviews?page=1" \ -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.
- `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"}]}} ```
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 |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
{
"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"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/adidas.productReviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | adidas.ProductReviewsResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.locale | string | No | ||||
| data.model_number | string | No | ||||
| data.overall_rating | number | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.rating_count | integer | No | RatingCount is the model's unfiltered review count from the ratings summary, so it stays constant regardless of the rating filter. | |||
| data.rating_filter | integer | No | RatingFilter echoes the rating query filter when one was applied. | |||
| data.rating_histogram | array | No | RatingHistogram is the count of reviews per star, ascending: index 0 is 1-star, index 4 is 5-star. | |||
| data.ratings_source_url | string | No | ||||
| data.recommended_percentage | number | No | ||||
| data.reviews | array | No | ||||
| data.reviews[].author | string | No | ||||
| data.reviews[].badges | array | No | ||||
| data.reviews[].body | string | No | ||||
| data.reviews[].color | string | No | ||||
| data.reviews[].headline | string | No | ||||
| data.reviews[].helpful_votes | integer | No | ||||
| data.reviews[].id | string | No | ||||
| data.reviews[].locale | string | No | ||||
| data.reviews[].not_helpful_votes | integer | No | ||||
| data.reviews[].photos | array | No | ||||
| data.reviews[].photos[].thumbnail_url | string | No | ||||
| data.reviews[].photos[].url | string | No | ||||
| data.reviews[].rating | integer | No | ||||
| data.reviews[].rating_range | integer | No | ||||
| data.reviews[].recommended | boolean | No | ||||
| data.reviews[].responses | array | No | Responses are brand/retailer replies posted under the review. | |||
| data.reviews[].submitted_at | string | No | ||||
| data.reviews[].submitted_date | string | No | ||||
| data.secondary_ratings | array | No | ||||
| data.secondary_ratings[].average_rating | number | No | ||||
| data.secondary_ratings[].label | string | No | ||||
| data.secondary_ratings[].max_label | string | No | ||||
| data.secondary_ratings[].mid_label | string | No | ||||
| data.secondary_ratings[].min_label | string | No | ||||
| data.secondary_ratings[].name | string | No | ||||
| data.secondary_ratings[].value_range | integer | No | ||||
| data.source_url | string | No | ||||
| data.summary | adidas.ReviewSummary | No | ||||
| data.summary.created_at | string | No | ||||
| data.summary.detail | string | No | ||||
| data.summary.disclaimer | string | No | ||||
| data.summary.text | string | No | ||||
| data.summary.title | string | No | ||||
| data.summary.type | string | No | ||||
| data.topic | string | No | Topic echoes the applied topic filter, when one was requested. | |||
| data.total_pages | integer | No | ||||
| data.total_reviews | integer | No | TotalReviews is the number of reviews matching this request's filters, so it shrinks when rating is set. | |||
| 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/adidas/product/reviews?page=1" \
-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