Endpoint Playground
Searches Google Maps business records stored in a search index. Sort enum: `relevance`, `updated_at_desc`, `rating_desc`, `review_count_desc`, `distance_asc`. `category` is the exact Google Maps category label returned for the business locale; it can be localized, non-ASCII, or contain punctuation, so use the category facet to discover exact filter values. A `rating` of `null` means no aggregate rating is available. A `review_count` of `null` means Google did not return a count; numeric `0` means Google confirmed zero reviews. `rating_desc` sorts unrated businesses last, and `min_rating` above 0 excludes them. Use `has_geo=false` to isolate locationless service-area businesses (which have a `null` `geo`). A `permanently_closed` of `true` means Google marks the business permanently closed; `false` means a crawl confirmed it does not; `null` means the business has not been status-checked since capture shipped on 2026-08-31 and is UNKNOWN, not open — so any total computed from this dataset includes an unknown number of closed businesses. Use `permanently_closed=false` to exclude the confirmed-closed ones. 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.
14 Oct 2026: 20 items; 16 fields had a value in every checked item and 5 varied between items; 1 field was empty in this sample.
Sample value profiles: created_at: 2024-11-04 to 2026-10-02; rating: 2.5 to 4.3, median 3.3; url: google.com.
curl "https://api.crawlora.net/api/v1/datasets/google-map-businesses/search?q=hotel&city=San+Francisco&min_rating=4&sort=relevance&page_size=10" \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| q | string | No | hotel | Full-text business search query, max 256 characters |
| category | string | No | Exact locale-specific Google Maps category label; use the category facet to discover values, max 128 characters | |
| country | string | No | Country filter. Accepts the full English name (\ | |
| state | string | No | Exact state filter, max 128 characters | |
| county | string | No | Exact county filter, max 128 characters | |
| state_code | string | No | Exact ISO 3166-2 state/region code filter, e.g. US-CA or FR-HDF, max 128 characters; use facet=state_code to discover values | |
| county_code | string | No | Exact ISO 3166-2 county/district code filter, e.g. FR-59 or IT-RM, max 128 characters; use facet=county_code to discover values | |
| city | string | No | San Francisco | Exact city filter, max 128 characters |
| town | string | No | Exact town filter, max 128 characters | |
| min_rating | number | No | 4 | Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them. |
| min_review_count | integer | No | Minimum review count | |
| has_website | boolean | No | Filter by website presence | |
| has_phone | boolean | No | Filter by phone presence | |
| has_geo | boolean | No | Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location | |
| permanently_closed | boolean | No | Closure filter. true keeps only businesses Google marks Permanently closed; false excludes them, keeping every business not known to be closed. Most rows have never been status-checked and are returned with permanently_closed null, which means unknown, not open. | |
| lat | number | No | Latitude for radius filtering or distance sort | |
| lon | number | No | Longitude for radius filtering or distance sort | |
| radius_m | integer | No | Radius in meters, 1 through 50000; requires lat and lon when supplied | |
| sort | string | No | relevance | Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc |
| page | integer | No | Page number, defaults to 1 | |
| page_size | integer | No | 10 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 |
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "google-map-businesses",
"items": [
{
"place_id": "ChIJ99URUeOAhYAR0J5ZUxTesDQ",
"name": "Hotel Zephyr San Francisco",
"category": [
"hotel"
],
"rating": 4.1,
"review_count": 3213
}
],
"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.