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

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

Pricing

from $2.10 / 1,000 results

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

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

Extract places, businesses, contacts phone numbers & emails, hours, ratings, reviews, amenities, and photos from Apple Maps by search query, location, or direct place URL.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

karamelo

karamelo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What does Apple Maps Scraper do?

Apple Maps Scraper - Phones, Ratings, Hours, Amenities & Photos extracts comprehensive local business profiles, places, and points of interest (POI) from Apple Maps. Built for high speed and enterprise-grade reliability, it leverages concurrent non-browser HTTP pipelining to execute multiple search queries simultaneously and hydrate rich place details in parallel—delivering dozens of rich place profiles per second without the resource overhead, memory consumption, or fragility of headless browsers.

Apple Maps is one of the world's most widely used native navigation and mapping platforms, powering location discovery across hundreds of millions of iOS, iPadOS, macOS, and web users. Businesses listed on Apple Maps maintain rich, verified metadata—including operating hours, direct phone numbers, websites, user reviews, aggregate star ratings, accessibility features, accepted payment methods, high-resolution photo galleries, and official Apple Business Connect ownership links.

This Actor gathers that data without requiring you to set up browser automation, emulate mobile applications, or manage complex infrastructure. It transforms Apple Maps place listings into clean, standardized datasets ready for download in JSON, CSV, Excel, XML, or direct database ingestion.


Why scrape Apple Maps?

Apple Maps provides a distinct, high-trust alternative and complement to Google Maps, Yelp, and Yellow Pages. While Google Maps captures broad web activity, Apple Maps data is closely curated through direct merchant submissions via Apple Business Connect and third-party partner verification.

Here is why data teams, local marketers, and sales leaders rely on Apple Maps data:

  • High-Speed Concurrent Architecture: Built with bounded asynchronous concurrency pools that process search queries and hydrate full placecards (hours, ratings, amenities, photos) in parallel, cutting scraping time by up to 10x–20x compared to sequential scrapers.
  • High-Quality Local Business Contacts: Millions of local services, retailers, clinics, restaurants, and professional offices maintain active contact numbers, validated street addresses, and official web domains directly on Apple Maps.
  • Rich Operating Hours & Schedules: Extract exact day-by-day weekly opening hours, special holiday schedules, and current operational states (e.g. open now, closing soon, normal hours).
  • Cross-Platform Reviews & Reputation: Access aggregate ratings and authentic customer review highlights with reviewer names, review publication dates, scores, and source URLs.
  • Detailed Amenity & Feature Flags: Identify whether businesses support contactless payments, Apple Pay, credit cards, wheelchair-accessible entrances, free customer Wi-Fi, outdoor seating, and on-site parking.
  • Direct Apple Business Connect Verification: Determine whether a location has been claimed and verified by its owner through Apple Business Connect, offering high-value signals for B2B prospecting and local directory accuracy.
  • Precise Geographic Positioning: Retrieve accurate decimal latitude and longitude coordinates along with detailed administrative area codes, postal codes, and neighborhood designations.

What data can you extract with Apple Maps Scraper?

Each record pushed to your default Apify dataset contains up to 30 standardized fields. The Actor organizes this data into consistent, typed fields:

Field NameTypeDescriptionExample
idStringUnique Apple Maps identifier for the place"I9D32B9B598975E2E"
nameStringOfficial business or location name"Sightglass Coffee"
categoryStringPrimary category classification"Cafe"
categoriesArray of StringsAll categories and tags associated with the place["Cafe", "Coffee Shop"]
addressStringFull formatted postal address string"301 Divisadero St, San Francisco, CA 94117, United States"
streetStringStreet address including building number"301 Divisadero St"
cityStringCity, municipality, or locality"San Francisco"
stateStringState, province, or region"California"
stateCodeStringTwo-letter state or province abbreviation"CA"
postalCodeStringPostal or ZIP code"94117"
countryStringCountry name"United States"
countryCodeStringTwo-letter ISO country code"US"
latitudeNumberGeographic latitude coordinate37.7723303
longitudeNumberGeographic longitude coordinate-122.4374355
phoneStringNormalized international telephone number"+14154631673"
websiteStringOfficial website or landing page URL"https://www.sightglasscoffee.com/visit/divisadero"
timezoneStringIANA timezone identifier"America/Los_Angeles"
ratingNumberNormalized aggregate rating score (1.0 to 5.0)4.6
reviewCountIntegerTotal count of customer reviews used for the rating53
ratingsObjectDetailed rating breakdown including max score and formatted label{"score": 4.6, "maxScore": 5, "reviewCount": 53, "formatted": "53"}
priceStringPrice range indicator"$$"
priceScoreIntegerNumeric price tier score from 1 ($) to 4 ($$$$)2
openStateStringCurrent operating schedule status"NORMAL"
hoursObjectStructured weekly schedule and day-by-day opening textSchedule object with daily opening and closing intervals
amenitiesArray of StringsStandardized amenities and accessibility features["Apple Pay", "Contactless Payments", "Wheelchair Accessible", "Street Parking", "Pets welcome"]
photosArray of StringsDirect high-resolution image URLsHigh-resolution CDN photo links
reviewsArray of ObjectsSample customer reviews with author name, rating, date, and textArray of structured review entries
claimUrlStringOfficial Apple Business Connect verification URL"https://business.apple.com/?claimId=11327320202390494766"
placecardUrlStringShareable Apple Maps web URL"https://maps.apple.com/place?auid=11327320202390494766"
muidStringApple Maps unique merchant identifier (MUID)"11327320202390494766"
sourceQueryStringOriginal search query or input URL that found this place"Coffee shop"
scrapedAtStringUTC ISO 8601 timestamp of extraction"2026-09-10T13:35:00.000Z"

Who is Apple Maps Scraper for?

  • B2B Lead Generation & Sales Prospecting: Sales representatives and agencies can generate targeted lists of local merchants, dental clinics, auto repair shops, contractors, and boutique stores complete with telephone numbers, business websites, owner verification status, and physical addresses.
  • Local SEO & Citation Audit Specialists: Digital marketing agencies can monitor business NAP consistency (Name, Address, Phone) across Apple Maps, verify whether client listings are properly claimed via Apple Business Connect, and detect outdated opening hours or duplicate listings.
  • Commercial Real Estate & Retail Expansion Teams: Retailers and franchise operators can evaluate competitor density, assess commercial clusters, identify underserved suburban neighborhoods, and analyze local foot-traffic drivers across target geographic boundaries.
  • Market Researchers & Data Analysts: Analysts can study regional pricing distributions, review sentiment patterns, brand footprint coverage, and consumer amenity preferences across different metro markets.
  • GIS & Geospatial Developers: Engineers building mapping applications, logistics delivery software, or location-based services can enrich internal databases with verified coordinates, postal addresses, and category tags.

How to configure and run Apple Maps Scraper

You can launch Apple Maps Scraper through the Apify Console user interface, via the Apify API, or using scheduled tasks.

Step 1: Define your search targets

You can provide search targets in three distinct ways depending on your use case:

  1. Structured Search Queries (searchQueries): Add search items containing both a keyword/business type (e.g. "Coffee shop", "Bakery", "Dentist") and a target location (e.g. "San Francisco, CA", "SoHo, Manhattan, NY", "Tokyo, Japan"). Each query can also have its own independent maxResults override.
  2. Search Replay URLs (searchUrls): Copy any search URL directly from maps.apple.com (e.g. https://maps.apple.com/search?query=coffee+shops&center=37.7749,-122.4194&span=0.05,0.05). The Actor will replay the exact search with coordinates and radius preserved.
  3. Direct Place URLs (placeUrls): If you have a curated list of Apple Maps place links (e.g. https://maps.apple.com/place?auid=11327320202390494766), paste them into placeUrls. The Actor extracts complete placecard details for each listing.

Step 2: Set result limits and enrichment options

  • Max Results per Query (maxResults): Set the maximum number of unique listings you want the Actor to return per search query or search URL. Unlike global limits that pit queries against each other, each search query and search URL receives its own dedicated quota. You can also override this limit for specific queries in searchQueries.
  • Include Place Details (includePlaceDetails): When enabled (default: true), the Actor hydrates each discovered business with comprehensive opening hours schedules, customer reviews, photo URLs, amenity attributes, and Apple Business Connect claim links. When disabled (false), the Actor returns core search listing metadata at maximum speed.

Step 3: Configure proxy settings

For high-volume production scraping or automated recurrent tasks, configure Apify Proxy. The Actor integrates with Apify Proxy to maintain reliable extraction rates and uninterrupted uptime across all international mapping regions.


Input parameter reference

The Actor accepts input parameters conforming to the standard JSON schema below:

searchQueries (Array of Objects, Optional)

Structured search targets specifying the keyword and location for each query.

  • query (String, Required): Business type, category, or keyword (e.g. "Coffee shop", "Bakery", "Dentist").
  • location (String, Required): Geographical search area, city, or address (e.g. "San Francisco, CA", "Brooklyn, New York").
  • maxResults (Integer, Optional): Individual per-query result limit override. If omitted, inherits the global setting.

maxResults (Integer, Optional)

The default maximum number of listings to collect per search query or search URL.

  • Minimum: 1
  • Maximum: 1000
  • Default: 50

placeUrls (Array of Strings, Optional)

Direct Apple Maps links to specific places or businesses. Full place details are extracted for each link provided.

  • Example: ["https://maps.apple.com/place?auid=11327320202390494766"]
  • Default: []

searchUrls (Array of Strings, Optional)

Apple Maps search URLs copied from your browser with query and coordinates baked in.

  • Example: ["https://maps.apple.com/search?query=coffee+shops&center=37.7749,-122.4194&span=0.05,0.05"]
  • Default: []

includePlaceDetails (Boolean, Optional)

Whether to enrich each result with weekly operating hours, full reviews, Yelp links, high-resolution photos, amenities, and Apple Business Connect claim links.

  • Default: true

countryCode (String, Optional)

Two-letter ISO country code (e.g. "US", "GB", "FR", "DE", "JP"). Affects search ranking and regional business results.

  • Default: "US"

language (String, Optional)

Language tag used for category titles, address formatting, and localized descriptions (e.g. "en-US", "de-DE", "fr-FR").

  • Default: "en-US"

proxyConfiguration (Object, Optional)

Standard Apify Proxy settings. Recommended for high-volume automated runs.

  • Example: {"useApifyProxy": true}

Example input configurations

Structured search queries with per-query overrides

{
"searchQueries": [
{
"query": "Coffee shop",
"location": "San Francisco, CA",
"maxResults": 20
},
{
"query": "Bakery",
"location": "New York, NY",
"maxResults": 30
}
],
"maxResults": 50,
"includePlaceDetails": true
}

Direct place URLs and search replay URLs

{
"placeUrls": [
"https://maps.apple.com/place?auid=11327320202390494766"
],
"searchUrls": [
"https://maps.apple.com/search?query=coffee+shops&center=37.7749,-122.4194&span=0.05,0.05"
],
"includePlaceDetails": true
}

Sample output record

Below is an authentic sample of an enriched place record saved to the default dataset:

{
"id": "I9D32B9B598975E2E",
"name": "Sightglass Coffee",
"category": "Cafe",
"categories": [
"Cafe",
"Coffee Shop"
],
"address": "301 Divisadero St, San Francisco, CA 94117, United States",
"street": "301 Divisadero St",
"city": "San Francisco",
"state": "California",
"stateCode": "CA",
"postalCode": "94117",
"country": "United States",
"countryCode": "US",
"latitude": 37.7723303,
"longitude": -122.4374355,
"phone": "+14154631673",
"website": "https://www.sightglasscoffee.com/visit/divisadero",
"timezone": "America/Los_Angeles",
"rating": 4.6,
"reviewCount": 53,
"ratings": {
"score": 4.6,
"maxScore": 5,
"reviewCount": 53,
"formatted": "53"
},
"price": "$$",
"priceScore": 2,
"openState": "NORMAL",
"hours": {
"openState": "NORMAL",
"schedule": {
"MONDAY": "06:30 - 17:00",
"TUESDAY": "06:30 - 17:00",
"WEDNESDAY": "06:30 - 17:00",
"THURSDAY": "06:30 - 17:00",
"FRIDAY": "06:30 - 17:00",
"SATURDAY": "07:00 - 17:00",
"SUNDAY": "07:00 - 17:00"
},
"weeklyText": [
"Monday: 06:30 - 17:00",
"Tuesday: 06:30 - 17:00",
"Wednesday: 06:30 - 17:00",
"Thursday: 06:30 - 17:00",
"Friday: 06:30 - 17:00",
"Saturday: 07:00 - 17:00",
"Sunday: 07:00 - 17:00"
]
},
"amenities": [
"Apple Pay",
"Contactless Payments",
"Wheelchair Accessible",
"Street Parking",
"Pets welcome",
"Gender neutral restroom",
"Credit Cards Accepted"
],
"photos": [
"https://is1-ssl.mzstatic.com/image/thumb/sg_cafe_photo_01/1000x1000bb.jpeg"
],
"reviews": [
{
"id": "rev-sg-sf-01",
"author": "Elena V.",
"avatarUrl": "https://is2-ssl.mzstatic.com/image/thumb/sg_user_elena/250x250.jpeg",
"rating": 5,
"reviewTime": "2026-07-14T15:30:00.000Z",
"text": "Bright, airy space on Divisadero with incredible pour-overs and espresso. The pastries are fresh and the staff is super knowledgeable about origins.",
"reviewUrl": "https://maps.apple.com/place?auid=11327320202390494766"
}
],
"claimUrl": "https://business.apple.com/?claimId=11327320202390494766",
"placecardUrl": "https://maps.apple.com/place?auid=11327320202390494766",
"muid": "11327320202390494766",
"sourceQuery": "Coffee shop",
"scrapedAt": "2026-09-10T13:35:00.000Z"
}

Practical workflows & integrations

Exporting your scraped data

Once your scraping run finishes, your dataset is preserved in the Apify storage and accessible via multiple formats:

  • CSV / Excel: One-click download directly from the Apify Console. Perfect for importing contacts into HubSpot, Salesforce, Airtable, or Notion.
  • JSON: Complete hierarchical data preserving nested operating hours, arrays of amenities, and review lists.
  • Google Sheets: Connect your dataset to Google Sheets using the official Apify Google Sheets integration to refresh local competitor tracking sheets automatically.

Running with the Apify API (Node.js & Python)

You can trigger runs programmatically from your existing backend services, microservices, or ETL pipelines.

Node.js / JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN'
});
const run = await client.actor('karamelo/apple-maps-scraper').call({
searchQueries: [
{
query: 'Veterinary Clinic',
location: 'Denver, CO',
maxResults: 50
}
],
maxResults: 50,
includePlaceDetails: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Retrieved ${items.length} clinics from Apple Maps.`);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("karamelo/apple-maps-scraper").call(
run_input={
"searchQueries": [
{
"query": "Boutique Hotel",
"location": "Miami Beach, FL",
"maxResults": 50
}
],
"maxResults": 50,
"includePlaceDetails": True
}
)
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
for place in dataset_items:
print(f"{place.get('name')} - {place.get('phone')} ({place.get('rating')} stars)")

cURL

curl --request POST \
--url "https://api.apify.com/v2/acts/karamelo~apple-maps-scraper/runs?token=YOUR_APIFY_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"searchQueries": [
{
"query": "Gym",
"location": "Boston, MA",
"maxResults": 25
}
],
"includePlaceDetails": true
}'

Scheduling and automation

Keep your business directory or intelligence database fresh with scheduled recurring runs:

  1. In the Apify Console, navigate to Schedules and create a new schedule.
  2. Select karamelo/apple-maps-scraper as the target Actor.
  3. Configure your input JSON (e.g. searching key metro areas every Monday morning).
  4. Set up an Apify Webhook to trigger your webhook endpoint or post results directly into your CRM or Slack channel upon run completion.

Tips for maximum coverage and performance

  1. Specific Queries Outperform Broad Generic Terms: Searching "Pediatric Dental Clinic" will yield more focused and complete results than searching "Doctor".
  2. Combine City Names with State Codes: When setting the location field for your queries, always provide state or country designations (e.g. "Portland, OR" vs "Portland, ME") to prevent location ambiguity.
  3. Use Search URLs to Replay Exact Browser Views: If you have a specific map viewport or search radius on maps.apple.com, copy the search URL directly into searchUrls to preserve exact coordinates and bounding spans.
  4. Leverage Per-Query Limit Overrides: If you want 100 places for high-priority cities but only 20 for smaller suburbs, set individual maxResults overrides within the searchQueries array.
  5. Leverage includePlaceDetails Strategically: If you only need a quick directory of coordinates and telephone numbers, setting includePlaceDetails: false speeds up execution significantly while consuming fewer compute units.
  6. Direct Place URLs for Re-Scraping: If you already track a list of competitor venues, save their Apple Maps URLs and run them through placeUrls to refresh their ratings, reviews, and operating schedules without running redundant keyword searches.

Frequently asked questions (FAQ)

How accurate is the data from Apple Maps?

Apple Maps listings are curated through Apple Business Connect and reputable geographic data providers. Because merchants actively manage their profiles to appear in Siri voice searches, Apple CarPlay navigation, and iOS Maps, contact details, operating hours, and addresses tend to have high accuracy.

Can I extract places outside the United States?

Yes. Apple Maps operates globally. You can search in Europe, the United Kingdom, Canada, Australia, Japan, Latin America, and across international territories. Use local language place names and country codes for best results.

Does this Actor use a real web browser?

No. The Actor uses streamlined, resource-optimized network requests. It does not launch headless Chromium or browser instances, making it fast, lightweight, and cost-effective to run on Apify.

How does the Actor handle pagination and large result volumes?

When a geographic area contains dozens or hundreds of matching places, the Actor dynamically subdivides the bounding map region into sub-quadrants. It recursively queries these sub-zones, deduplicating records by unique Apple Maps merchant IDs to deliver comprehensive coverage up to your specified maxResults.

Can I scrape customer reviews?

Yes. When includePlaceDetails is set to true, the Actor extracts customer review excerpts, review scores, review publication dates, reviewer names, and reviewer profile images whenever available on the place listing.

What is the Apple Business Connect claim URL?

Apple Business Connect allows verified business owners to manage their branding and presence across Apple apps. The claimUrl field provides the official Apple verification link (https://business.apple.com/?claimId=...). This is particularly useful for agencies and lead generation teams looking for businesses that have not yet claimed their digital profiles.


Limitations and troubleshooting

  • Unlisted or Inactive Businesses: If a business is not publicly listed on Apple Maps or has permanently closed and been removed from the platform index, the Actor will not return it.
  • Review Availability: Apple Maps aggregates reviews from multiple partner networks and direct submissions. Some newer or small independent businesses may have fewer reviews or no written review snippets available.
  • Location Ambiguity: If an ambiguous location name is entered without a state or country (e.g. "Springfield"), the geographic resolver will pick the primary international match. Always specify city, state/province, and country.
  • Run Timeouts on Massive Max Results: If requesting thousands of listings across multiple broad queries in a single run, ensure you configure appropriate run timeout limits in your Apify run settings.

Responsible use & compliance

Apple Maps Scraper extracts publicly available business information intended for consumer discovery. When using this data:

  • Respect all applicable local data protection and privacy regulations (including GDPR, CCPA, and regional marketing legislation).
  • Use scraped telephone numbers and email contacts in compliance with relevant commercial communications regulations (such as CAN-SPAM and TCPA).
  • Maintain reasonable request rates and avoid overloading downstream destination APIs or databases with bulk exports.