Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos avatar

Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos

Pricing

from $1.99 / 1,000 places

Go to Apify Store
Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos

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

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

7

Monthly active users

6 days ago

Last modified

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.

500 places in under 60 seconds — hands down the richest output on Apify.

Related Scrapers ➤Apple DirectionsYandex Places2GIS PlacesGoogle Directions

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=... or place?auid=...
  • Address URLs -- ?q=Business+Name&address=... (copied from the browser address bar)
  • Share URLs -- maps.apple/p/g.xxx short 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&center=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.

PlanPer 1,000 placesPer 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)

PlacesCost
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

ParameterTypeDefaultDescription
searchQueriesarray--Search queries with location. Each entry has query, location, and optional maxResults.
placeUrlsarray--Direct Apple Maps place URLs.
searchUrlsarray--Apple Maps search URLs with embedded coordinates.
countryCodestringUSAffects result ranking and which places are returned.
languagestringen-USAffects category names, addresses, and result ranking.
maxResultsinteger20Max places per search query. Apple typically returns 20-30 per search.
proxyConfigurationobject--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": "10487959837072980240",
"name": "Black Fox",
"placeType": "BUSINESS",
"phone": "+19177420133",
"phoneFormatted": "+1 (917) 742-0133",
"altPhones": [
"+19177048198",
"+12124227750"
],
"website": "https://www.blackfoxcoffee.com",
"categories": [
"Coffee Shop",
"Cafe",
"Restaurant",
"Breakfast and Brunch Restaurant",
"Coffee Roastery"
],
"categoryIds": [
"coffee_shop",
"cafe",
"restaurant",
"breakfast_and_brunch_restaurant",
"coffee_roastery"
],
"mapsCategoryId": "dining.cafe.coffee_shop",
"mapsAltCategoryId": [
"dining.cafe.coffee_shop.coffee_roastery",
"dining.restaurant.breakfast_and_brunch_restaurant"
],
"address": {
"full": "70 Pine Street, New York, NY 10005, United States",
"short": "70 Pine Street, New York",
"street": "70 Pine Street",
"subThoroughfare": "70",
"thoroughfare": "Pine Street",
"subLocality": null,
"city": "New York",
"subAdministrativeArea": "New York",
"state": "New York",
"stateCode": "NY",
"postalCode": "10005",
"country": "United States",
"countryCode": "US",
"neighborhood": [
"Financial District",
"Manhattan",
"North Hudson",
"Wall Street"
],
"areaOfInterest": []
},
"containedIn": "Coffee Shop · Financial District, Manhattan",
"location": {
"lat": 40.7064705,
"lng": -74.0077107
},
"timezone": "America/New_York",
"timezoneOffset": null,
"bounds": {
"region": {
"southLat": 40.705572184715884,
"westLng": -74.00889571763419,
"northLat": 40.70736881528412,
"eastLng": -74.00652568236582
},
"displayRegion": {
"southLat": 40.7019738,
"westLng": -74.0136424,
"northLat": 40.7109671,
"eastLng": -74.0017789
},
"minZoom": 15.000031471252441
},
"roadAccess": [
{
"lat": 40.7063194,
"lng": -74.00791,
"type": "walking",
"direction": "ENTRY_EXIT"
}
],
"lookAroundAvailable": true,
"rating": {
"score": 95,
"maxScore": 100,
"reviewCount": 40,
"reviewCountFormatted": "40",
"categoryRatings": [
{
"category": "Food & Drink",
"score": 92,
"maxScore": 100,
"reviewCount": 38
},
{
"category": "Atmosphere",
"score": 97,
"maxScore": 100,
"reviewCount": 37
},
{
"category": "Customer Service",
"score": 97,
"maxScore": 100,
"reviewCount": 36
}
]
},
"hours": {
"weekly": [
{
"days": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"open": "07:00",
"close": "17:00"
},
{
"days": [
"SUNDAY",
"SATURDAY"
],
"open": "08: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": "Wheelchair Accessible",
"amenityId": "crossbusiness.accessibility_features.wheelchair_accessible",
"available": true,
"source": "com.yelp"
},
{
"name": "Parking Validated",
"amenityId": "crossbusiness.parking.parking_validated",
"available": true,
"source": "com.yelp"
},
{
"name": "Good for Kids",
"amenityId": "crossbusiness.goodfor.families",
"available": true,
"source": "com.yelp"
},
{
"name": "Gender-Neutral Restrooms",
"amenityId": "crossbusiness.restrooms.gender_neutral_restroom",
"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/600x450/6054361_ggg-DEgbZ2bj3ws2vhr95CLiEjo8LLshjr3K-rnca9M.jpg",
"width": 308,
"height": 308,
"category": "Food & Drink",
"categoryPhotosAvailable": 48
},
{
"url": "https://irs1.4sqi.net/img/general/600x600/159476_I1MntMA2hMgv2QKWvKtxHLetgLu0TlMGX0CbuNCnVf0.jpg",
"width": 308,
"height": 308,
"category": "Atmosphere",
"categoryPhotosAvailable": 28
},
{
"url": "https://ir.4sqi.net/img/general/450x600/44969609_S8N6Wq-IXcllY1GZrqLZI9HZz25kIrx0RDx5X3jSX3I.jpg",
"width": 308,
"height": 308,
"category": "All Photos",
"categoryPhotosAvailable": 61
}
],
"quickLinks": [
{
"title": "Menu",
"url": "https://www.yelp.com/menu/black-fox-coffee-new-york?utm_campaign=action_link_view_menu&utm_medium=feed_v2&utm_source=apple",
"linkType": "LINK_TYPE_QUICK_LINK"
}
],
"actionData": [
{
"titles": [
"Menu"
],
"links": [
{
"linkType": "LINK_TYPE_QUICK_LINK",
"url": "https://www.yelp.com/menu/black-fox-coffee-new-york?utm_campaign=action_link_view_menu&utm_medium=feed_v2&utm_source=apple"
}
],
"categoryId": "quicklinks.restaurant_view_menu"
}
],
"claimUrl": "https://businessconnect.apple.com/?claimId=10487959837072980240",
"isClaimable": true,
"buildingId": "184825443563602479",
"mapsCategoryMuid": "1152921504606870514",
"appleUrl": "https://maps.apple.com/place?auid=10487959837072980240",
"scrapedAt": "2026-03-05T08:16:29.904594+00:00"
}

API Integration

Python

from apify_client import ApifyClient
client = 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

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&center=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.

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.


Start Scraping Apple Maps Now