Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos
Pricing
from $3.29 / 1,000 places
Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos
Extract place data from Apple Maps at scale. Get phone numbers, ratings, opening hours, amenities, photos, and full addresses for any business. Search by query + location, paste place URLs, or replay search URLs. 30+ fields per place. Parallel requests. No Apple account needed. $2.99/1,000 places.
Pricing
from $3.29 / 1,000 places
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
42
Total users
19
Monthly active users
10 days ago
Last modified
Categories
Share
Apple Maps Scraper Pro | Extract Place Data from Apple Maps (2026)
Updated 2026-06-04: New fields: reviews, editorial & descriptions, accolades, price level, "featured in" guides, factoids, cover photo, related places, rating provider/scale, and 24-hour flags. All additions are backward-compatible.
Extract detailed place information from Apple Maps at scale. Search by query + location, paste direct place URLs, or replay search URLs with embedded coordinates. Each place returns 50+ structured fields including phone numbers, ratings, reviews, hours, amenities, photos, and full address breakdowns.
No Apple account needed. No browser. Runs 40 concurrent requests.
| 500 places in under 60 seconds — hands down the richest output on Apify. |
| Related Scrapers ➤ | Apple Directions | Yandex Places | 2GIS Places | Google Directions |
|---|
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
zen-studio/apple-maps-scraper-pro on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/apple-maps-scraper-pro").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: query (array of search terms), location (string, city/area), startUrls (array, Apple Maps place/search URLs). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~apple-maps-scraper-pro/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: pay-per-event, $0.003/place. Get token: https://console.apify.com/account/integrations
How to Scrape Apple Maps Places
Three input modes, use any combination:
Search by Query + Location
The most common way. Enter what you're looking for and where. The location is automatically converted to coordinates.
{"searchQueries": [{ "query": "coffee shops", "location": "Manhattan, New York" },{ "query": "dentist", "location": "Shibuya, Tokyo" },{ "query": "EV charging station", "location": "Berlin, Germany" }],"maxResults": 50}
Each query searches a ~5 km radius around the geocoded location. More specific locations give more accurate results -- "Soho, London" is better than "London".
Scrape Specific Places by URL
Paste Apple Maps place URLs directly. Supports place IDs, address URLs with a business name, and short share links from the Apple Maps app.
{"placeUrls": ["https://maps.apple.com/place?place-id=I918CB7E77B4C7910","https://maps.apple.com/place?auid=12345678901234567","https://maps.apple.com/?q=Lifeline+Urgent+Care&address=13410+Briar+Forest+Dr,+Houston,+TX+77077","https://maps.apple/p/g.uBeAYyG_6cdr"]}
Supported URL formats:
- Place ID URLs --
place?place-id=...orplace?auid=... - Address URLs --
?q=Business+Name&address=...(copied from the browser address bar) - Share URLs --
maps.apple/p/g.xxxshort links (from the share button in Apple Maps)
Replay a Search URL
Copy a search URL from your browser after searching on Apple Maps. The query, coordinates, and zoom level are preserved.
{"searchUrls": ["https://maps.apple.com/search?query=coffee+shops¢er=40.71,-74.00&span=0.05,0.05"]}
The span parameter controls the search radius. Smaller values = tighter area.
Country and Language Change Your Results
These aren't just formatting options. They affect which places Apple Maps returns and how it ranks them.
Country code sets the regional context. Searching "cafe" near Paris with US returns Cafe de Flore, but with FR returns Le Peloton Cafe. Set this to match where your target places are.
Language controls category names, address formatting, and result ranking. Searching near Berlin with de-DE vs en-US can return different first results and categories ("Kaffeehaus" vs "Coffee Shop").
{"searchQueries": [{ "query": "cafe", "location": "Paris, France" }],"countryCode": "FR","language": "fr-FR"}
Pricing
Pay-per-event pricing. You only pay for places successfully scraped.
| Plan | Per 1,000 places | Per place |
|---|---|---|
| Regular | $2.99 | $0.00299 |
| Bronze | $2.79 | $0.00279 |
| Silver | $2.49 | $0.00249 |
| Gold | $1.99 | $0.00199 |
Cost Examples (Regular Plan)
| Places | Cost |
|---|---|
| 100 | $0.30 |
| 500 | $1.50 |
| 1,000 | $2.99 |
Try it free -- new Apify users get $5 in platform credits. That's ~1,200 places at no cost.
Budget controls are built in. Set a maximum spend and the Actor stops automatically when the limit is reached.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | -- | Search queries with location. Each entry has query, location, and optional maxResults. |
placeUrls | array | -- | Direct Apple Maps place URLs. |
searchUrls | array | -- | Apple Maps search URLs with embedded coordinates. |
countryCode | string | US | Affects result ranking and which places are returned. |
language | string | en-US | Affects category names, addresses, and result ranking. |
maxResults | integer | 20 | Max places per search query. Apple typically returns 20-30 per search. |
proxyConfiguration | object | -- | Proxy settings. Not required for small runs. |
At least one of searchQueries, placeUrls, or searchUrls is required.
Output Example
Each place in the dataset looks like this:
{"placeId": "11204647164469319519","name": "The French Laundry","placeType": "BUSINESS","placeDisplayType": "BUSINESS","phone": "+17079442380","phoneFormatted": "+1 (707) 944-2380","altPhones": ["+17079477182"],"fax": null,"website": "https://www.thomaskeller.com/tfl","brandMuid": "7346229445065865844","categories": ["French Cuisine","Restaurant","Bar","European Cuisine","Fine Dining Restaurant","American Cuisine","Wine Bar","Signature Restaurant","New American Cuisine"],"mapsCategoryId": "dining.restaurant.european_cuisine.french_cuisine","address": {"full": "6640 Washington St, Yountville, CA 94599, United States","short": "6640 Washington St, Yountville","cityAndAbove": "Yountville, CA United States","street": "6640 Washington St","subThoroughfare": "6640","thoroughfare": "Washington St","subPremise": [],"subLocality": null,"city": "Yountville","subAdministrativeArea": "Napa County","state": "California","stateCode": "CA","postalCode": "94599","country": "United States","countryCode": "US","neighborhood": [],"areaOfInterest": []},"containedIn": "French Cuisine · Yountville, CA","location": {"lat": 38.4044062,"lng": -122.364977},"timezone": "America/Los_Angeles","lookAroundAvailable": false,"rating": {"provider": "Yelp","ratingType": "USER_RATING","score": 4.3,"maxScore": 5,"reviewCount": 3143,"reviewCountFormatted": "3.1K"},"priceLevel": {"score": 4,"maxScore": 4,"currencySymbol": "$"},"reviews": [{"provider": "Yelp","reviewId": "1p8nQXddZKygRETL3zQZwg","text": "Ok! Wow! The French Laundry was absolutely amazing! This place earned 5 Stars with the Food, Service, Ambiance, and Wine. My wife and I had a wonderfu…","time": "2026-05-21T03:51:10+00:00","rating": {"score": 5,"maxScore": 5},"reviewer": {"name": "Mikkel D.","image": "https://is2-ssl.mzstatic.com/image/thumb/atekVxcCjOWkn5caOBnQ0Q/250x250.jpeg"},"url": "http://yelp.com/apple_maps_action?id=T20VEwi7AzKbY2TuVEt_ig&component=review&cid=1p8nQXddZKygRETL3zQZwg&action=view&language=en-US"}],"reviewsUrl": "http://yelp.com/apple_maps_action?id=T20VEwi7AzKbY2TuVEt_ig&component=review&action=view&language=en-US","description": null,"editorial": [{"provider": "MICHELIN Guide","title": "Michelin","text": "Thomas Keller’s legendary destination still doesn’t miss a beat. In fact this may be known as the greatest cooking space in America, as every aspect i…","url": "https://guide.michelin.com/r/122806"}],"accolades": [{"provider": "MICHELIN Guide","text": "Three Stars"}],"featuredIn": [{"title": "The Toughest Reservations In The US","description": "Our thoughts on some of the busiest restaurants in the country and advice on how to get in.","publisher": "The Infatuation","url": "https://www.theinfatuation.com/all/guides/toughest-restaurant-reservations-in-america?utm_campaign=applemaps&utm_medium=affiliate&utm_source=applemaps&utm_audience=all&utm_campaigntype=organic"}],"hours": {"weekly": [{"days": ["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"],"open": "16:00","close": "20:00"}],"open24Hours": false,"hoursType": "NORMAL"},"amenities": [{"name": "Accepts Contactless Payments","amenityId": "crossbusiness.payments.contactless_pay","available": true,"source": ""},{"name": "Wheelchair Accessible","amenityId": "crossbusiness.accessibility_features.wheelchair_accessible","available": true,"source": "com.apple.abr"}],"photos": [{"url": "https://is1-ssl.mzstatic.com/image/thumb/outnMkdh4abQZg3d1W-HSg/1000x1000bb.jpg","width": 1000,"height": 1000,"category": "Food & Drink","categoryPhotosAvailable": 27,"caption": null,"author": "David Escalante/The French Laundry","provider": "MICHELIN Guide"}],"actionData": [{"titles": ["Reserve"],"links": [{"linkType": "LINK_TYPE_QUICK_LINK","url": "https://guide.michelin.com/r/122806","title": ""}],"categoryId": "quicklinks.restaurant_reservation"},{"titles": ["Menu"],"links": [{"linkType": "LINK_TYPE_QUICK_LINK","url": "https://www.yelp.com/menu/the-french-laundry-yountville-7?utm_campaign=action_link_view_menu&utm_medium=feed_v2&utm_source=apple","title": ""}],"categoryId": "quicklinks.restaurant_view_menu"}],"claimUrl": "https://business.apple.com/?claimId=11204647164469319519","isClaimable": null,"buildingId": "360850920180673950","mapsCategoryMuid": "1152921504606870660","appleUrl": "https://maps.apple.com/place?auid=11204647164469319519","scrapedAt": "2026-06-04T07:53:12.615523+00:00"}
API Integration
Python
from apify_client import ApifyClientclient = ApifyClient("your_token")run = client.actor("zen-studio~apple-maps-scraper-pro").call(run_input={"searchQueries": [{"query": "coffee shops", "location": "Manhattan, New York"}],"countryCode": "US","language": "en-US","maxResults": 50,})for place in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{place['name']} — {place['phone']} — {place['address']['full']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_token' });const run = await client.actor('zen-studio~apple-maps-scraper-pro').call({searchQueries: [{ query: 'coffee shops', location: 'Manhattan, New York' },],countryCode: 'US',language: 'en-US',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map(p => `${p.name} — ${p.phone}`));
Advanced Usage
Multi-City Search
Search the same category across multiple cities in one run:
{"searchQueries": [{ "query": "coworking space", "location": "San Francisco, CA" },{ "query": "coworking space", "location": "Austin, TX" },{ "query": "coworking space", "location": "Miami, FL" },{ "query": "coworking space", "location": "Seattle, WA" }],"countryCode": "US","maxResults": 100}
All searches run in parallel (up to 40 concurrent requests).
Per-Query Result Limits
Override the global maxResults for individual queries:
{"searchQueries": [{ "query": "restaurant", "location": "Manhattan, New York", "maxResults": 30 },{ "query": "bar", "location": "Manhattan, New York", "maxResults": 10 }],"maxResults": 20}
Mixed Input Modes
Combine all three input modes in a single run:
{"searchQueries": [{ "query": "pharmacy", "location": "Brooklyn, New York" }],"placeUrls": ["https://maps.apple.com/place?auid=5283835567047557515"],"searchUrls": ["https://maps.apple.com/search?query=gym¢er=40.68,-73.94&span=0.03,0.03"],"maxResults": 30}
Results are deduplicated automatically.
Localized Data Extraction
Extract place data in the local language for international markets:
{"searchQueries": [{ "query": "ramen", "location": "Shinjuku, Tokyo" }],"countryCode": "JP","language": "ja-JP","maxResults": 50}
Category names, addresses, and ranking will reflect the Japanese market.
Data Export
Export results from the Apify Console in:
- JSON -- programmatic analysis, database import
- CSV -- spreadsheets, quick analysis
- Excel -- reporting, pivot tables
- XML -- legacy system integration
Nested fields (address, rating, hours) are flattened automatically in tabular formats.
FAQ
How many places can I scrape per search? Apple Maps typically returns 20-30 places per search query. Use multiple queries with different locations to cover larger areas.
Do I need an Apple account? No. No login, no cookies, no authentication required.
How fresh is the data? Data is fetched in real time from Apple Maps. You get whatever Apple Maps currently shows.
What's the rating scale? Apple Maps uses a 0-100 score (not 5-star). A score of 82 roughly corresponds to 4.1 stars. Per-category ratings (food, service, ambiance) are included when available.
Can I scrape places in non-English languages?
Yes. Set language to any locale (e.g., de-DE, ja-JP, fr-FR). Category names and addresses will be localized. This also affects which places are returned.
What phone number formats are included?
Three fields: phone (raw, e.g., +12125551234), phoneFormatted (human-readable, e.g., +1 (212) 555-1234), and altPhones (array of alternate numbers).
Is there a free trial? New Apify users get $5 in platform credits, enough for ~1,200 places at no cost.
What happens when I hit my budget limit? The Actor stops gracefully and keeps all data scraped so far. Nothing is lost.
More Zen Studio scrapers for maps & local data
Google Maps
Apple Maps
Yandex Maps Яндекс Карты
2GIS 2ГИС
Disclaimer
Data is collected from publicly available sources and provided "as is" for informational purposes. Users are responsible for compliance with Apple's terms of service and applicable regulations in their jurisdiction.