Endpoint Playground
Returns Apple Maps places matching a keyword, business name, category, or street address near a coordinate. Each place carries its Apple place ID (the value the place endpoint takes), name, category, coordinates, formatted and structured address, phone, website, rating and review count, price level, weekly opening hours, and a hero photo. Apple returns a bounded set per viewport (around 25 places for the default span) with no pagination; widen the span or move the center to cover more area. When nothing matches near the center Apple may relocate the search to a default region, reported by relocated=true and the region bounds. The response's filters block lists the refinement chips Apple offers for this query and area (open now, top rated, in guides, cuisines, price bands, amenities, accolades, sort); pass their keys back as filters and sort to refine the same search.
14 Oct 2026: 25 places; 14 fields had a value in every checked item and 9 varied between items.
Sample value profiles: category: Coffee Shop (15), Coffee Roastery (3), Bakery (3) and 4 more; rating: 3.3 to 4.63, median 4.1; name: “Sightglass Coffee” and 22 other values.
curl 'https://api.crawlora.net/api/v1/apple-maps/search?query=coffee&latitude=37.7749&longitude=-122.4194&sort=best_match' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| query | string | Yes | coffee | Keyword, business name, category, or street address to search for |
| latitude | number | Yes | 37.7749 | Search center latitude |
| longitude | number | Yes | -122.4194 | Search center longitude |
| span | number | No | Search viewport size in degrees of latitude/longitude around the center. Defaults to 0.05 (roughly a 5km box); minimum 0.001, maximum 5. | |
| limit | integer | No | Max places returned. Defaults to 25, maximum 100. | |
| lang | string | No | Display language as a BCP 47 tag, e.g. en-US, ja-JP, de-DE. Defaults to en-US. | |
| country | string | No | Two-letter ISO 3166-1 country code selecting Apple's regional catalog. Defaults to US. | |
| filters | string | No | Comma-separated filter keys from the filters block of an unfiltered search for the same query and area, e.g. OPEN_NOW, TOP_RATED, FEATURED_IN_GUIDES, PRICE_RANGE_MODERATE, modern_pizza_restaurant, ACCEPTS_CREDIT_CARDS. Unknown keys return 400 listing the available keys. Costs a second upstream search. | |
| sort | string | No | best_match | Result order. Costs a second upstream search. |
{
"code": 200,
"msg": "OK",
"data": {
"query": "coffee",
"total_found": 25,
"total_results": 1,
"region": {
"south": 37.7499,
"west": -122.4444,
"north": 37.7999,
"east": -122.3944
},
"relocated": false,
"filters": [
{
"name": "Open Now",
"type": "toggle",
"options": [
{
"key": "OPEN_NOW",
"name": "Open Now",
"selected": false
}
]
},
{
"name": "All Cuisines",
"type": "multi_select",
"match": "any",
"options": [
{
"key": "modern_pizza_restaurant",
"name": "Pizza",
"selected": false
}
]
},
{
"name": "Sort",
"type": "sort",
"options": [
{
"key": "best_match",
"name": "Best Match",
"selected": true
},
{
"key": "ratings",
"name": "Ratings",
"selected": false
}
]
}
],
"places": [
{
"id": "6435622567484707146",
"place_id": "I594FECA0B369D14A",
"url": "https://maps.apple.com/place?place-id=I594FECA0B369D14A",
"name": "Sightglass Coffee",
"type": "BUSINESS",
"category": "Coffee Roastery",
"categories": [
{
"id": "dining",
"name": "Dining",
"level": 1
},
{
"id": "coffee_roastery",
"name": "Coffee Roastery",
"level": 2
}
],
"latitude": 37.776974,
"longitude": -122.408529,
"address": "270 7th St, San Francisco, CA 94103, United States",
"address_info": {
"street": "270 7th St",
"neighborhood": "SOMA",
"city": "San Francisco",
"county": "San Francisco",
"state": "California",
"state_code": "CA",
"postal_code": "94103",
"country": "United States",
"country_code": "US"
},
"phone": "+14154631673",
"alt_phones": [
"+14158611313"
],
"website": "https://sightglasscoffee.com/blogs/shops/soma-district",
"rating": 4,
"rating_max": 5,
"rating_count": 2228,
"price_level": 2,
"price_max": 4,
"price_symbol": "$",
"hours_type": "NORMAL",
"hours": [
{
"day": "monday",
"open": "06:30",
"close": "17:00"
},
{
"day": "saturday",
"open": "07:00",
"close": "17:00"
}
],
"photo_url": "https://is1-ssl.mzstatic.com/image/thumb/bF51kpjYtm4-K_WMlD8Wkw/320x320bb.jpeg"
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.