Adidas API endpoint
Returns 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.
/adidas/storeslat is required, latitude from -90 to 90.
lng is required, longitude from -180 to 180.
page is optional and accepted only as 0 (the default). Adidas's store
finder is a nearest-store lookup rather than a paginated collection: it
answers every request with the nearest stores (up to 20) and reports
total_pages 1, so any higher page is always empty. Passing page greater
than 0 returns a 400 explaining this rather than an empty list.
Notable response behavior:
distance_miles. total is the number of stores found near the coordinate, and every one of them is in this single response.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).| Field | Filled in, of 17 checked | Values in the sample |
|---|---|---|
| id | 17 | |
| name | 17 | “adidas Flagship Store New York” and 16 other values |
| city | 17 | “New York” and 9 other values |
| street | 17 | |
| phone | 17 | |
| latitude | 17 | |
| longitude | 17 | |
| distance_miles | 17 | 1.17 to 38.74, median 18.25 |
| features | 13 | median 5 entries |
| opening_hours | 17 | median 7 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| lat | number | Yes | Latitude, -90 to 90 | 40.75 | |
| lng | number | Yes | Longitude, -180 to 180 | -73.99 | |
| page | integer | No | Accepted only as 0. Adidas's store finder returns every nearby store (up to 20) in a single page, so any higher value is always empty and is rejected as an invalid parameter. | 0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/adidas/stores?lat=40.75&lng=-73.99&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"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"
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/adidas.storesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | adidas.StoreResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.lat | number | No | ||||
| data.lng | number | No | ||||
| data.page | integer | No | ||||
| data.source_url | string | No | ||||
| data.stores | array | No | ||||
| data.stores[].city | string | No | ||||
| data.stores[].distance_miles | number | No | ||||
| data.stores[].features | array | No | ||||
| data.stores[].id | string | No | ||||
| data.stores[].latitude | number | No | ||||
| data.stores[].longitude | number | No | ||||
| data.stores[].name | string | No | ||||
| data.stores[].opening_hours | array | No | ||||
| data.stores[].opening_hours[].closed | boolean | No | ||||
| data.stores[].opening_hours[].day | string | No | ||||
| data.stores[].opening_hours[].end | string | No | ||||
| data.stores[].opening_hours[].start | string | No | ||||
| data.stores[].phone | string | No | ||||
| data.stores[].street | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/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/adidas/stores?lat=40.75&lng=-73.99&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"