Apple Maps API
Scrape Apple Maps and extract local business listings, place details, curated guides, and refinement filters in one Actor. Phone, ratings, reviews, hours, address, GPS, amenities, multi-source ratings. City-name or coordinate targeting. Pay per result. MCP-ready for Claude, ChatGPT, Cursor.
MEDIAN LAGon demand
PARAMETERS11
TOTAL USERS14
MONTHLY ACTIVE7
TOTAL RUNS2,375
RUNS SUCCEEDED100.0%
RATING5.0 (3)
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| search_mode | enum | yes | search | Which Apple Maps result family to return. 'search' returns the broad mix (local listings, guides, and the refinement object). 'place' resolves a specific query to a single rich place detail… |
| query | string | yes | — | The Apple Maps search term. |
| location | string | no | — | City-level location name (e.g., 'Austin, Texas, United States', 'London', 'Brooklyn, New York'). |
| center | string | no | — | Geographic center as 'latitude,longitude' (e.g., '30.3246,-97.7305'). |
| span | string | no | — | Viewport dimensions as 'latitudeDelta,longitudeDelta' (e.g., '0.5,0.5'). |
| sort | enum | no | default | How to sort local results. 'default' lets Apple Maps decide; 'distance' sorts by proximity to the center; 'ratings' sorts by rating descending. |
| toggles | string[] | no | — | Single-value filter keys to apply (e.g., ['open_now'], ['drive_thru'], ['TOP_RATED']). |
| multi_select_options | string[] | no | — | Multi-value filter keys (chains, amenities, price tiers) discovered via 'refinement' mode. |
| open_at | integer | no | — | Unix timestamp (seconds) for an 'open at this time' filter. |
| locale | string | no | — | Language and region code for the response (e.g., 'en-US', 'en-GB', 'fr-FR', 'de-DE'). |
| max_results | integer | no | 20 | Caps how many local_result or guide_result items are kept and billed. — drives your bill |
Worked examples
{
"search_mode": "search",
"query": "coffee"
}
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~apple-maps-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"search_mode": "search", "query": "coffee"}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/apple-maps-api").call(
run_input={'search_mode': 'search', 'query': 'coffee'}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item)