Prada API endpoint
Locates Prada's (prada.com) physical retail stores worldwide, through its own public store-locator search. All parameters are optional: with none set, this returns Prada's full worldwide store list (up to limit). query is a free-text location search (city, country, or store name); lat/lng (both required together) narrow it to a geo-radius search, optionally sized with radius_km (defaults to 50, maximum 20000). A search with genuinely zero matches returns a well-formed empty result rather than an error.
/prada/storesQuery parameters (all optional):
query -- free-text location search (city, country, or store name). Typo-tolerant, matched the same way the site's own store-locator search box matches.lat / lng -- search-center coordinates. Both required together (-90..90 / -180..180); narrows (or, without query, replaces) the search to a geo-radius lookup.radius_km -- search radius in kilometers around lat/lng. Defaults to 50, maximum 20000. Requires lat and lng.limit -- maximum stores returned, defaults to 20, maximum 50.offset -- result offset for pagination, defaults to 0.Notable response behavior:
limit) -- the same fallback the site's own store locator uses with an empty search box.distance_km is only populated when lat/lng are given; it is the great-circle distance from the search center to the store.hours reports all seven weekdays (monday..sunday) even for days the store is closed (closed: true, start/end omitted). Only the first open interval per day is reported.permanently_closed reflects Prada's own listing status for the location, separate from hours[].closed (which is about that day's schedule, not whether the store is still open for business at all).categories and services are the product departments and in-store services (e.g. private appointments, made-to-measure) Prada's own listing carries for that location; either may be empty.count: 0, stores: []) rather than an error.lat/lng provided without the other, or radius_km provided without lat/lng, return 400 before any upstream request is made.| Field | Filled in, of 11 checked | Values in the sample |
|---|---|---|
| id | 11 | |
| name | 11 | “Prada New York Madison” and 10 other values |
| line1 | 11 | “841, Madison Avenue” and 10 other values |
| city | 11 | New York (10), Manhasset (1) |
| region | 11 | NY in all 11 |
| postal_code | 11 | |
| country | 11 | US in all 11 |
| phone | 11 | |
| latitude | 11 | |
| longitude | 11 | |
| distance_km | 11 | 5.34 to 155.41, median 5.83 |
| timezone | 11 | America/New_York in all 11 |
| permanently_closed | 11 | true in 0 of 11 |
| categories | 11 | median 11 entries |
| services | 11 | median 1 entry |
| hours | 11 | median 7 entries |
| line2 | 1 | “Third Avenue” |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Free-text location search (city, country, or store name) | New York | |
| lat | number | No | Search-center latitude, -90..90. Requires lng. | 40.7128 | |
| lng | number | No | Search-center longitude, -180..180. Requires lat. | -74.006 | |
| radius_km | number | No | 50 | Search radius in kilometers around lat/lng, defaults to 50, maximum 20000. Requires lat and lng. | 50 |
| limit | integer | No | 20 | Maximum stores returned, defaults to 20, maximum 50 | 20 |
| offset | integer | No | 0 | Result offset for pagination, defaults to 0 | 0 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/prada/stores?query=coffee&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "New York",
"limit": 20,
"offset": 0,
"count": 5,
"total_results": 5,
"fetched_at": "2026-09-10T01:17:14Z",
"stores": [
{
"id": "S306",
"name": "Prada New York Broadway",
"line1": "575, Broadway",
"city": "New York",
"region": "NY",
"postal_code": "10012",
"country": "US",
"phone": "+12123274200",
"latitude": 40.7245596,
"longitude": -73.9978072,
"timezone": "America/New_York",
"permanently_closed": false,
"categories": [
"Women's ready to wear",
"Men's ready to wear",
"Leather goods and accessories"
],
"services": [
"Private appointment",
"Made to Measure",
"Made to order"
],
"hours": [
{
"day": "monday",
"start": "10:00",
"end": "18:00"
},
{
"day": "tuesday",
"start": "10:00",
"end": "18:00"
},
{
"day": "wednesday",
"start": "10:00",
"end": "18:00"
},
{
"day": "thursday",
"start": "10:00",
"end": "18:00"
},
{
"day": "friday",
"start": "10:00",
"end": "18:00"
},
{
"day": "saturday",
"start": "10:00",
"end": "18:00"
},
{
"day": "sunday",
"start": "12:00",
"end": "17:00"
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/prada.storesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | prada.StoresResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.lat | number | No | ||||
| data.limit | integer | No | ||||
| data.lng | number | No | ||||
| data.offset | integer | No | ||||
| data.query | string | No | ||||
| data.radius_km | number | No | ||||
| data.stores | array | No | ||||
| data.stores[].categories | array | No | ||||
| data.stores[].city | string | No | ||||
| data.stores[].country | string | No | ||||
| data.stores[].distance_km | number | No | ||||
| data.stores[].hours | array | No | ||||
| data.stores[].hours[].closed | boolean | No | ||||
| data.stores[].hours[].day | string | No | ||||
| data.stores[].hours[].end | string | No | ||||
| data.stores[].hours[].start | string | No | ||||
| data.stores[].id | string | No | ||||
| data.stores[].latitude | number | No | ||||
| data.stores[].line1 | string | No | ||||
| data.stores[].line2 | string | No | ||||
| data.stores[].longitude | number | No | ||||
| data.stores[].name | string | No | ||||
| data.stores[].permanently_closed | boolean | No | ||||
| data.stores[].phone | string | No | ||||
| data.stores[].postal_code | string | No | ||||
| data.stores[].region | string | No | ||||
| data.stores[].services | array | No | ||||
| data.stores[].timezone | string | No | ||||
| data.total_results | 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/prada/stores?query=coffee&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"