Collect public place, business, and point-of-interest data from Apple Maps searches and Apple Maps place URLs. Use it to build local lead lists, enrich store-location databases, monitor competitors, or research places in a city.
What does Apple Maps Places Scraper do?
Apple Maps Places Scraper turns Apple Maps searches into structured datasets. You provide search terms such as coffee shops, hotels, dentists, or EV chargers, choose a location or coordinates, and the actor saves matching public places.
It can also process direct Apple Maps URLs when you already know a business or place page.
Who is it for?
Sales and lead generation teams
- π§² Build local prospect lists from Apple Maps categories and city searches.
- π Export phone, website, address, and coordinate fields for outreach preparation.
Retail, franchise, and expansion teams
- π¬ Check nearby competitors before opening or evaluating a new location.
- π Compare business density across neighborhoods, suburbs, or target cities.
POI data and operations teams
- πΊοΈ Enrich store-location databases with Apple Maps place identifiers and coordinates.
- π Monitor recurring local data changes for known categories or service areas.
Analysts and growth teams
- π Research local market coverage for campaigns, partnerships, and territory planning.
- π§ͺ Compare categories such as restaurants, EV chargers, pharmacies, gyms, or hotels across regions.
Why use it?
Apple Maps is a major discovery surface for local businesses. This actor gives you a clean export with the fields teams usually need: name, category, address, coordinates, phone, website, ratings, and source metadata.
How to use Apple Maps Places Scraper
- Open the actor on Apify.
- Add one or more search queries.
- Enter a city in
location, or provide exactlatandlng. - Set
maxResultsto the number of places you need. - Run the actor.
- Download results as JSON, CSV, Excel, or through the Apify API.
Search query examples
coffee shopsrestaurantshotelselectric vehicle charging stationsdentistsgymspharmaciescoworking spaces
Location examples
Use a human-readable location such as:
San Francisco, CAAustin, TexasBerlin, GermanySydney, Australia
For repeatable local searches, use lat and lng instead of a text location.
Direct Apple Maps URLs
If you already have Apple Maps URLs, paste them into startUrls. The actor will extract details from the public page when Apple Maps exposes a reusable place identifier.
Input settings
| Setting | JSON key | Type / default | Description |
|---|---|---|---|
| Search queries | queries |
array, default ["coffee shops"] |
Apple Maps searches to run, such as coffee shops, hotels, EV chargers, or dentists. |
| Location | location |
string, default "San Francisco, CA" |
City, area, or landmark used as the search center when latitude/longitude are not provided. |
| Latitude | lat |
number | Optional numeric latitude for the search center. Use with longitude for more precise searches. |
| Longitude | lng |
number | Optional numeric longitude for the search center. Use with latitude for more precise searches. |
| Apple Maps place or search URLs | startUrls |
array, default [{"url":"https://maps.apple.com/?address=55%20S%20Van%20Ness%20Ave%2C%20San%20Francisco%2C%20CA%2094103%2C%20United%20States&name=Blue%20Bottle%20Coffee"}] |
Optional Apple Maps URLs to extract directly. Use this for known businesses or saved Apple Maps links. |
| Maximum places | maxResults |
integer, default 20 |
Maximum number of places to save across all searches and URLs. |
| Language | language |
string, default "en-US" |
Apple Maps language/locale for labels and addresses. |
| Country code | countryCode |
string, default "US" |
Two-letter country code used by Apple Maps for search context. |
| Include photos | includePhotos |
boolean, default false |
Include public photo URLs when Apple Maps returns them. Disable for smaller output and faster runs. |
Example input
{
"queries": [
"coffee shops"
],
"location": "San Francisco, CA",
"lat": 40.7128,
"lng": -74.006,
"startUrls": [
{
"url": "https://maps.apple.com/?address=55%20S%20Van%20Ness%20Ave%2C%20San%20Francisco%2C%20CA%2094103%2C%20United%20States&name=Blue%20Bottle%20Coffee"
}
],
"maxResults": 20,
"language": "en-US",
"countryCode": "US",
"includePhotos": false
}
Output example
{
"name": "Blue Bottle Coffee",
"category": "Coffee Shop",
"appleMapsUrl": "https://maps.apple.com/place?auid=13662822354918264874",
"muid": "13662822354918264874",
"address": "55 S Van Ness Ave, San Francisco, CA 94103, United States",
"city": "San Francisco",
"region": "CA",
"country": "United States",
"latitude": 37.7739331,
"longitude": -122.4186265,
"phone": "+1 (510) 653-3394",
"website": "https://bluebottlecoffee.com/",
"rating": 3.5,
"reviewCount": 36,
"sourceQuery": "coffee shops",
"scrapedAt": "2026-07-03T00:00:00.000Z"
}
Tips for best results
- π― Use specific categories such as
orthodontistsinstead of broad terms likebusinesses. - π Use coordinates for precise neighborhoods.
- π§ͺ Start with
maxResults10-25 before larger runs. - π Set
countryCodeto match the target market. - πΌοΈ Enable photos only when you need them.
Integrations
Use the dataset in CRM enrichment, lead scoring, local SEO audits, store expansion research, spreadsheet workflows, and BI dashboards. Apify integrations can send results to Google Sheets, webhooks, Make, Zapier, or your own database.
API usage
Run Apple Maps Places Scraper from your own code with the Apify API.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"queries": [
"coffee shops"
],
"location": "San Francisco, CA",
"lat": 40.7128,
"lng": -74.006,
"startUrls": [
{
"url": "https://maps.apple.com/?address=55%20S%20Van%20Ness%20Ave%2C%20San%20Francisco%2C%20CA%2094103%2C%20United%20States&name=Blue%20Bottle%20Coffee"
}
]
};
const run = await client.actor('fetch_cat/apple-maps-places-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/apple-maps-places-scraper").call(run_input={
"queries": [
"coffee shops"
],
"location": "San Francisco, CA",
"lat": 40.7128,
"lng": -74.006,
"startUrls": [
{
"url": "https://maps.apple.com/?address=55%20S%20Van%20Ness%20Ave%2C%20San%20Francisco%2C%20CA%2094103%2C%20United%20States&name=Blue%20Bottle%20Coffee"
}
]
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~apple-maps-places-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["coffee shops"],"location":"San Francisco, CA","lat":40.7128,"lng":-74.006,"startUrls":[{"url":"https://maps.apple.com/?address=55%20S%20Van%20Ness%20Ave%2C%20San%20Francisco%2C%20CA%2094103%2C%20United%20States&name=Blue%20Bottle%20Coffee"}]}'
Use with AI agents via MCP
Apple Maps Places Scraper can be used by AI assistants through the hosted Apify MCP server.
Claude Code setup
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/apple-maps-places-scraper"
Claude Desktop, Cursor, or VS Code JSON config
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/apple-maps-places-scraper"
}
}
}
Example prompts
- "Run Apple Maps Places Scraper with this input JSON and summarize the dataset."
- "Export the latest Apple Maps Places Scraper results to a table I can review."
- "Schedule this Actor for monitoring and tell me what changed between runs."
Data quality notes
Apple Maps may return different fields for different place types. Restaurants often include ratings and hours, while parks, landmarks, or regions may have fewer business fields.
Limits
The actor saves up to maxResults places. Apple Maps search availability, field availability, and result ordering can vary by country, query, and location.
Legality
This actor extracts publicly available Apple Maps place information. Make sure your use complies with applicable laws, privacy rules, and Apple Maps terms. Do not use scraped data for spam, harassment, or prohibited profiling.
Support
Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.