Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos
Pricing
from $1.99 / 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 $1.99 / 1,000 places
Rating
0.0
(0)
Developer

Zen Studio
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
28 minutes ago
Last modified
Categories
Share
Apple Maps Scraper Pro | Extract Place Data from Apple Maps (2026)
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 30+ structured fields including phone numbers, ratings, hours, amenities, photos, and full address breakdowns.
No Apple account needed. No browser. Runs 40 concurrent requests.
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. Right-click any place on maps.apple.com and copy the link.
{"placeUrls": ["https://maps.apple.com/place?auid=12345678901234567","https://maps.apple.com/place?place-id=I918CB7E77B4C7910"]}
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 |
Free tier: 5 runs with no account required.
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": "11158993369324020443","name": "Solid State Coffee","placeType": "BUSINESS","phone": "+16468961412","phoneFormatted": "+1 (646) 896-1412","altPhones": ["+16462624601"],"website": "https://solidstatecoffee.com/","categories": ["Coffee Roastery","Cafe","Coffee Shop"],"categoryIds": ["coffee_roastery","cafe","coffee_shop"],"mapsCategoryId": "dining.cafe.coffee_shop.coffee_roastery","mapsAltCategoryId": [],"address": {"full": "104 W 71st St, New York, NY 10023, United States","short": "104 W 71st St, New York","street": "104 W 71st St","subThoroughfare": "104","thoroughfare": "W 71st St","subLocality": "Manhattan","city": "New York","subAdministrativeArea": "New York County","state": "New York","stateCode": "NY","postalCode": "10023","country": "United States","countryCode": "US","neighborhood": ["Lincoln Square","Manhattan","North Hudson","Upper West Side","Uptown","West Side"],"areaOfInterest": []},"containedIn": "Coffee Roastery \u00b7 Upper West Side, Manhattan","location": {"lat": 40.7766828,"lng": -73.9797477},"timezone": "America/New_York","timezoneOffset": "-05:00","bounds": {"region": {"southLat": 40.775784484715885,"westLng": -73.9809339691867,"northLat": 40.77758111528412,"eastLng": -73.97856143081331},"displayRegion": {"southLat": 40.7721861,"westLng": -73.9856856,"northLat": 40.7811794,"eastLng": -73.9738097},"minZoom": 15.003686904907227},"roadAccess": [{"lat": 40.7768632,"lng": -73.9796081,"type": "walking","direction": "ENTRY_EXIT"}],"lookAroundAvailable": false,"rating": {"score": 91,"maxScore": 100,"reviewCount": 32,"reviewCountFormatted": "32","categoryRatings": [{"category": "Food & Drink","score": 93,"maxScore": 100,"reviewCount": 28},{"category": "Atmosphere","score": 93,"maxScore": 100,"reviewCount": 27},{"category": "Customer Service","score": 96,"maxScore": 100,"reviewCount": 27}]},"hours": {"weekly": [{"days": ["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"],"open": "07:00","close": "16:00"}]},"serviceHours": [],"amenities": [{"name": "Accepts Apple Pay","amenityId": "crossbusiness.payments.applepay","available": true,"source": "com.yelp"},{"name": "Accepts Contactless Payments","amenityId": "crossbusiness.payments.contactless_pay","available": true,"source": ""},{"name": "Street Parking","amenityId": "crossbusiness.parking.streetparking","available": true,"source": "com.yelp"},{"name": "Parking Garage","amenityId": "crossbusiness.parking.parking_garage","available": true,"source": "com.yelp"},{"name": "Pets Welcome","amenityId": "crossbusiness.pets.pets_welcome","available": true,"source": "com.yelp"},{"name": "Accepts Credit Cards","amenityId": "crossbusiness.payments.creditcard","available": true,"source": "com.yelp"}],"photos": [{"url": "https://ir.4sqi.net/img/general/450x600/697943_CcvUDfts7zacRY3G8wrJ0QvOUnMQRVR-eKPQzcgob-M.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/105280_eHdbq49snIdQHBcSsoEMAgZSo8jvxhHqe7uCbhGo6no.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/50735008_IRj1h8l5AX-dC2q6bjK2H5Bl7l9i-m0uMBlyq_f4m6A.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/600x450/1398496475_0jnsrRXB-On7F0AtF7o5mQTGmhxth06Nod3m90M7l44.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/50735008_14-tp0aJ2eTAmARyRN1TpAhO5qfmdcQUgMFyOwGX7Rc.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/57966583_2CXD7hmw9vGjubD7GhE3u3-QcThktgwe5aeBbwIvuM0.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/600x450/52040_KcRtEw-GcxWhBFp9iSS9iWz3uooh0qGUIrxUEn0mr9M.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/600x450/52040_5vLk3BMkrW9d6aAva3Wg79XOqIVOUNcbHKJBencn-ZE.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/50735008_2MFCh0AgX6ej0enbU0tp0fF6vSvcuFHculxcnBxDwDk.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16},{"url": "https://ir.4sqi.net/img/general/450x600/50735008_4BjCalpvg31pcwXraO_oJeRqMWE0nOcEunMjdPIX8dU.jpg","width": 308,"height": 308,"category": "","categoryPhotosAvailable": 16}],"quickLinks": [],"actionData": [],"claimUrl": "https://businessconnect.apple.com/?claimId=11158993369324020443&utm_source=maps.apple.com","isClaimable": true,"buildingId": "184818100363854062","mapsCategoryMuid": "1152921504606870633","appleUrl": "https://maps.apple.com/place?auid=11158993369324020443","scrapedAt": "2026-02-26T09:26:38.219812+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 tier? Yes. 5 free runs, no credit card required.
What happens when I hit my budget limit? The Actor stops gracefully and keeps all data scraped so far. Nothing is lost.
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.
Related Actors
More places and maps scrapers:
| Actor | Description | Platform |
|---|---|---|
| 2GIS Places Scraper | Extract places, contacts, and business data from 2GIS | 2GIS |
| 2GIS Reviews Scraper | Scrape reviews and ratings from 2GIS places | 2GIS |
| Yandex Places Scraper | Extract places and business data from Yandex Maps | Yandex Maps |
| Yandex Reviews Scraper | Scrape reviews and ratings from Yandex Maps | Yandex Maps |