Endpoint Playground
Searches the stored Apple Maps place directory (dataset id `apple-maps-places`), built by tiling populated areas and running category searches over each tile. Each place has its Apple place id, name, category path, address, coordinates, phone, website, opening hours, rating and price level where Apple shows them. Coverage is observed, not complete: Apple answers each search with at most 25 places, so very dense areas can hold places the directory has not reached, and a place missing from the results is not evidence that it does not exist or has closed. A `rating` of `null` means Apple shows no rating for the place (never a zero-star score); ratings and rating counts come from third-party review partners that Apple shows (for example Yelp and Foursquare), so they are not comparable across places and a few places carry a rating with no count. Supports full-text `q`, `category`/`city`/`state`/`country_code`/`postal_code` filters, `min_rating`, `min_rating_count`, `has_website`, `has_phone`, `lat`/`lon`/`radius_m` radius filtering, and `sort` (relevance, rating_desc, review_count_desc, updated_at_desc, distance_asc). Does not trigger live scraping. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100). Dataset Playground requests query indexed data and do not apply proxy routing.
26 Oct 2026: Single record response; 5 fields had a value in every checked item; 1 field was empty in this sample.
Sample value profiles: total: 0.
curl 'https://api.crawlora.net/api/v1/datasets/apple-maps-places/search?sort=relevance' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| q | string | No | Full-text search over place name, category, city and address; every term must match. Max 256 characters | |
| category | string | No | Exact Apple category name, max 128 characters, e.g. Coffee Shop; use facet=category to discover values | |
| city | string | No | Exact city filter, max 128 characters | |
| state | string | No | Exact state/region filter, max 128 characters | |
| country_code | string | No | ISO 3166-1 alpha-2 country filter, e.g. US, GB, JP | |
| postal_code | string | No | Exact postal code filter, max 128 characters | |
| min_rating | number | No | Minimum rating, from 0 through 5; any value above 0 excludes unrated places | |
| min_rating_count | integer | No | Minimum number of ratings behind the rating, 0 or greater | |
| has_website | boolean | No | true keeps only places with a website; false keeps only places without one | |
| has_phone | boolean | No | true keeps only places with a phone number; false keeps only places without one | |
| lat | number | No | Latitude for radius filtering or distance sort, requires lon | |
| lon | number | No | Longitude for radius filtering or distance sort, requires lat | |
| radius_m | integer | No | Radius in meters, 1 through 50000; requires lat and lon | |
| sort | string | No | relevance | Sort enum: relevance, rating_desc, review_count_desc, updated_at_desc, distance_asc. Defaults to relevance with q, otherwise updated_at_desc |
| page | integer | No | Page number, defaults to 1 | |
| page_size | integer | No | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 |
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "apple-maps-places",
"items": [
{
"id": "6435622567484707146",
"place_id": "I594FECA0B369D14A",
"name": "Sightglass Coffee",
"category": "Coffee Shop",
"city": "San Francisco",
"country_code": "US",
"rating": 4.5,
"rating_count": 2228
}
],
"page": 1,
"page_size": 20,
"total": 1,
"sort": "relevance"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.