Apple Maps API endpoint
Returns the Apple Guides home page for the Worldwide scope or one city: the featured guide, the guide carousels (expert recommendations, latest, and similar rows), the city shortcut list, and the browse-by-publisher list. Each guide carries its id (the value the guide endpoint takes), title, description, last-modified time, place count, cover photo, source link, and publisher; each publisher carries its id, name, subtitle, website, and guide count.
/apple-maps/guidesQuery parameters:
city_id (optional) — a city id from /apple-maps/guides/cities, e.g. 8077516530309122779 (San Francisco). Omit for the Worldwide guides home. An id that is not in the city list returns a 404.lang (optional) — display language as a BCP 47 tag, e.g. en-US, fr-FR. Section names, guide titles, and descriptions follow it. Defaults to en-US.country (optional) — two-letter ISO 3166-1 code, e.g. US. Defaults to US.scope is worldwide or city; city is present only for the city scope. sections[] mirror the rows of the page in order, each with a type of guides, publishers, or cities, and only the matching list populated. Guide ids are the values /apple-maps/guides/guide takes; publisher ids are the values /apple-maps/guides/publisher takes.
Response includes scope, city (id, name, country, latitude, longitude, photo_url), featured[] (guide summaries), and sections[] (name, type, guides[], publishers[], cities[]). Each guide summary has id, url, title, description, last_modified, item_total, photo_url, source_url (the publisher's own page for the guide, when Apple links one), and publisher (id, url, name, subtitle, website, guide_count). Each publisher has id, url, name, subtitle, website, and guide_count.
| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| id | 1 | |
| url | 1 | maps.apple.com |
| title | 1 | “The best things to do in San Francisco” |
| description | 1 | median 106 characters |
| last_modified | 1 | 2023-07-20 |
| item_total | 1 | 15 |
| photo_url | 1 | is1-ssl.mzstatic.com |
| source_url | 1 | timeout.com |
| publisher | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| city_id | string | No | City id from /apple-maps/guides/cities. Omit for the Worldwide guides home. | 8077516530309122779 | |
| lang | string | No | en-US | Display language as a BCP 47 tag, e.g. en-US, fr-FR. 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/guides?lang=en&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"scope": "city",
"city": {
"id": "8077516530309122779",
"name": "San Francisco",
"country": "United States",
"latitude": 37.779379,
"longitude": -122.418433,
"photo_url": "https://is4-ssl.mzstatic.com/image/thumb/7puls6L6HZdsJplSyhrPJA/1200x800.jpg"
},
"featured": [
{
"id": "17954826775154719886",
"url": "https://maps.apple.com/guides?curated=17954826775154719886&_provider=9902",
"title": "The 25 Best Restaurants In San Francisco",
"description": "Meet our 25 highest-rated restaurants.",
"last_modified": "2026-06-02T18:12:31.000Z",
"item_total": 25,
"photo_url": "https://is1-ssl.mzstatic.com/image/thumb/NMYjKRo8qX4xPqUirv4Iew/1200x800.jpg",
"source_url": "https://www.theinfatuation.com/san-francisco/guides/best-restaurants-in-san-francisco",
"publisher": {
"id": "3291963553709838958",
"url": "https://maps.apple.com/guides?publisher=3291963553709838958&_provider=9902",
"name": "The Infatuation",
"subtitle": "Restaurant reviews and guides",
"website": "https://www.theinfatuation.com",
"guide_count": 489
}
}
],
"sections": [
{
"name": "Expert Recommendations",
"type": "guides",
"guides": [
{
"id": "13100041759208417726",
"url": "https://maps.apple.com/guides?curated=13100041759208417726&_provider=9902",
"title": "The San Francisco Coffee Guide",
"description": "The Bay Area's legendary coffee scene needs no introduction.",
"last_modified": "2023-02-08T19:42:59.000Z",
"item_total": 14,
"photo_url": "https://is1-ssl.mzstatic.com/image/thumb/w4_6Zdp2JR_l-mz7c9J94w/1200x800.jpg",
"publisher": {
"id": "1706564968711360917",
"url": "https://maps.apple.com/guides?publisher=1706564968711360917&_provider=9902",
"name": "Sprudge",
"subtitle": "Coffee News & Culture",
"website": "https://sprudge.com",
"guide_count": 19
}
}
]
},
{
"name": "Cities",
"type": "cities",
"cities": [
{
"id": "686784093234299453",
"name": "Paris",
"country": "France",
"latitude": 48.8567879,
"longitude": 2.3510768,
"photo_url": "https://is2-ssl.mzstatic.com/image/thumb/jD20iN4CLanEuiJFQaLOVw/1200x800.jpg"
}
]
},
{
"name": "Browse by Publisher",
"type": "publishers",
"publishers": [
{
"id": "17882075820533551969",
"url": "https://maps.apple.com/guides?publisher=17882075820533551969&_provider=9902",
"name": "365 Things Austin",
"subtitle": "Daily Things To Do In Austin",
"website": "https://365thingsaustin.com/",
"guide_count": 2
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/applemaps.guidesHomeResponseDoc
| 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.GuidesHomeResponse | No | ||||
| data.city | applemaps.GuideCity | No | ||||
| data.city.country | string | No | ||||
| data.city.id | string | No | ||||
| data.city.latitude | number | No | ||||
| data.city.longitude | number | No | ||||
| data.city.name | string | No | ||||
| data.city.photo_url | string | No | ||||
| data.featured | array | No | ||||
| data.featured[].description | string | No | ||||
| data.featured[].id | string | No | ||||
| data.featured[].item_total | integer | No | ||||
| data.featured[].last_modified | string | No | ||||
| data.featured[].photo_url | string | No | ||||
| data.featured[].publisher | applemaps.PublisherSummary | No | ||||
| data.featured[].publisher.guide_count | integer | No | ||||
| data.featured[].publisher.id | string | No | ||||
| data.featured[].publisher.name | string | No | ||||
| data.featured[].publisher.subtitle | string | No | ||||
| data.featured[].publisher.url | string | No | ||||
| data.featured[].publisher.website | string | No | ||||
| data.featured[].source_url | string | No | ||||
| data.featured[].title | string | No | ||||
| data.featured[].url | string | No | ||||
| data.scope | string | No | ||||
| data.sections | array | No | ||||
| data.sections[].cities | array | No | ||||
| data.sections[].cities[].country | string | No | ||||
| data.sections[].cities[].id | string | No | ||||
| data.sections[].cities[].latitude | number | No | ||||
| data.sections[].cities[].longitude | number | No | ||||
| data.sections[].cities[].name | string | No | ||||
| data.sections[].cities[].photo_url | string | No | ||||
| data.sections[].guides | array | No | ||||
| data.sections[].guides[].description | string | No | ||||
| data.sections[].guides[].id | string | No | ||||
| data.sections[].guides[].item_total | integer | No | ||||
| data.sections[].guides[].last_modified | string | No | ||||
| data.sections[].guides[].photo_url | string | No | ||||
| data.sections[].guides[].publisher | applemaps.PublisherSummary | No | ||||
| data.sections[].guides[].publisher.guide_count | integer | No | ||||
| data.sections[].guides[].publisher.id | string | No | ||||
| data.sections[].guides[].publisher.name | string | No | ||||
| data.sections[].guides[].publisher.subtitle | string | No | ||||
| data.sections[].guides[].publisher.url | string | No | ||||
| data.sections[].guides[].publisher.website | string | No | ||||
| data.sections[].guides[].source_url | string | No | ||||
| data.sections[].guides[].title | string | No | ||||
| data.sections[].guides[].url | string | No | ||||
| data.sections[].name | string | No | ||||
| data.sections[].publishers | array | No | PublisherSummary record, 6 fields: guide_count, id, name, subtitle, url, website. Described under Apple Maps Guide API. | |||
| data.sections[].type | 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/guides?lang=en&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"