Apple Maps API endpoint
Returns an indoor venue's directory (mall, airport, stadium: categories such as Clothes, Shoes, Food, All Shops with their subcategories and levels) and, when a category is given, the places inside the venue for that category with the same summary shape as search. Find venues with the search endpoint; a place without a directory returns 404, an unknown category returns 400 listing the available ones.
/apple-maps/venue/browseReturns an indoor venue's directory and, when a category is given, the stores and places inside the venue for that category. Works for the venues Apple Maps has indoor data for: malls, airports, stadiums and similar.
Query parameters:
place_id (required) — the venue's Apple place ID, in the external I… form or the numeric id from /apple-maps/search (search for the venue name, e.g. Westfield San Francisco Centre).category (optional) — a directory category or subcategory to browse, by name (case-insensitive, e.g. Clothes, Shoes, Food, All Shops, or a subcategory such as Women / Clothes / Women) or by the key from the venue's directory. Omit to return the directory only, without places.limit (optional) — max places returned. Defaults to 25, maximum 100.lang (optional) — display language as a BCP 47 tag, e.g. en-US. Defaults to en-US.country (optional) — two-letter ISO 3166-1 code, e.g. US. Defaults to US.A place with no venue directory returns a 404; an unknown category returns a 400 that lists the available names. Browsing a category costs one more upstream call than listing the directory.
Each place has the same summary shape as /apple-maps/search results (id, place_id, url, name, type, category, latitude, longitude, address, phone, website, rating, hours[], photo_url, and the rest).
Response includes venue (id, name), levels[] (id, ordinal, name, short_name), directory[] (name, key, subcategories[] with name and key), category (the resolved category when one was given), total_found, and places[].
| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| id | 25 | |
| place_id | 25 | |
| url | 25 | maps.apple.com |
| name | 25 | “Zara” and 23 other values |
| type | 25 | BUSINESS in all 25 |
| category | 25 | Clothing Store (12), Department Store (4), Women's Clothing Store (3) and 5 more |
| categories | 25 | median 9 entries |
| latitude | 25 | |
| longitude | 25 | |
| address | 25 | |
| address_info | 25 | |
| phone | 24 | |
| alt_phones | 12 | median 1 entry |
| website | 25 | zara.com and 23 other hosts |
| rating | 17 | 2.9 to 5, median 3.8 |
| rating_max | 17 | 5 |
| rating_count | 17 | 1 to 2,258, median 134 |
| price_level | 15 | 2 to 4, median 3 |
| price_max | 15 | 4 |
| price_symbol | 15 | $ in all 15 |
| hours_type | 25 | NORMAL in all 25 |
| hours | 25 | median 7 entries |
| photo_url | 25 | is1-ssl.mzstatic.com and 1 other host |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| place_id | string | Yes | Apple place ID of the venue (external I... form or numeric id) | 14643260860569849804 | |
| category | string | No | Directory category or subcategory to browse, by name (case-insensitive) or key from the venue's directory. Omit to list the directory only. | Clothes | |
| limit | integer | No | 25 | Max places returned. Defaults to 25, maximum 100. | 25 |
| lang | string | No | en-US | Display language as a BCP 47 tag, e.g. en-US. Defaults to en-US. | en-US |
| country | string | No | US | Two-letter ISO 3166-1 country code. Defaults to US. | US |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/apple-maps/venue/browse?place_id=14643260860569849804&limit=10&lang=en&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"venue": {
"id": "14643260860569849804",
"name": "San Francisco Centre"
},
"levels": [
{
"id": "6223611653047814433",
"ordinal": -1,
"name": "Lower Concourse",
"short_name": "LC"
},
{
"id": "10321348406465189830",
"ordinal": 0,
"name": "Level 1",
"short_name": "L1"
}
],
"directory": [
{
"name": "Clothes",
"key": "CikKHXNlYXJjaF9zdWdnZXN0X3ByaW1hcnlfc291cmNlEghDQVRFR09SWQ…",
"subcategories": [
{
"name": "Women",
"key": "CikKHXNlYXJjaF9zdWdnZXN0X3ByaW1hcnlfc291cmNlEghDQVRFR09SWQoz…"
}
]
},
{
"name": "Shoes",
"key": "CikKHXNlYXJjaF9zdWdnZXN0X3ByaW1hcnlfc291cmNlEghDQVRFR09SWQon…"
}
],
"category": "Clothes",
"total_found": 25,
"places": [
{
"id": "12547742734215203044",
"place_id": "IAE1E8C0F1C6B4F63",
"url": "https://maps.apple.com/place?place-id=IAE1E8C0F1C6B4F63",
"name": "Zara",
"type": "BUSINESS",
"category": "Clothing Store",
"latitude": 37.78417,
"longitude": -122.40691,
"address": "865 Market St, San Francisco, CA 94103, United States",
"rating": 3.5,
"rating_max": 5,
"rating_count": 412
}
]
}
}Request schema
No body schema
Response schema
#/definitions/applemaps.venueBrowseResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | applemaps.VenueBrowseResponse | No | ||||
| data.category | string | No | ||||
| data.directory | array | No | VenueDirectory record, 5 fields: key, name, subcategories. Described under Apple Maps Place API. | |||
| data.levels | array | No | ||||
| data.levels[].id | string | No | ||||
| data.levels[].name | string | No | ||||
| data.levels[].ordinal | integer | No | ||||
| data.levels[].short_name | string | No | ||||
| data.places | array | No | Place record, 38 fields: address, address_info, alt_phones, categories, category, hours, hours_type, id, latitude, longitude, name, phone and 11 more. Described under Apple Maps Search API. | |||
| data.total_found | integer | No | ||||
| data.venue | applemaps.PlaceRef | No | ||||
| data.venue.id | string | No | ||||
| data.venue.name | string | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/apple-maps/venue/browse?place_id=14643260860569849804&limit=10&lang=en&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"