Datasets API endpoint
Returns one stored Google Maps business by Google place_id from dataset id enum value `google-map-businesses`. The `category` field contains the exact Google Maps category label returned for the business locale and can be localized, non-ASCII, or contain punctuation. 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. Locationless service-area businesses (online/mobile/home-based) 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.
/datasets/google-map-businesses/items/{place_id}Returns one scraped Google Maps business record by Google Place ID.
Path parameters:
place_id: required Google Place ID, max 256 characters.Response behavior:
category field contains the locale-specific label returned by Google Maps and can be localized, non-ASCII, or contain punctuation.null rating means no aggregate rating is available for that business (never a literal zero-star score); a present rating is always between 1.0 and 5.0.null review_count means Google did not return a count for that business. Numeric 0 means Google confirmed zero reviews; positive values are confirmed counts.state and county keep each country's own administrative vocabulary (Provincia de Madrid, Département du Nord, Regierungsbezirk Köln, plain ___ County in the US). state_code and county_code are the matching ISO 3166-2 codes (ES-MD, FR-59) and are the stable key for grouping or ranking across countries. They are filled by reverse geocoding and are omitted from a row that has not been resolved yet.404 when the Place ID is not present in the stored dataset.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| url | Has a value | google.com |
| name | Has a value | |
| place_id | Has a value | |
| category | Has a value | 1 entry |
| address | Has a value | |
| rating | Has a value | 4.5 |
| review_count | Has a value | 484 |
| permanently_closed | Empty | |
| website | Has a value | coffeecoffee-online.com |
| phone | Has a value | |
| description | Has a value | |
| image | Empty | |
| geo.lat | Has a value | |
| geo.lon | Has a value | |
| country | Has a value | |
| state | Has a value | |
| county | Has a value | |
| city | Has a value | |
| geo_is_updated | Has a value | false |
| contact_is_updated | Has a value | false |
| created_at | Has a value | 2024-11-14 |
| updated_at | Has a value | 2026-08-13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| place_id (path) | string | Yes | Google Place ID, max 256 characters | ChIJ99URUeOAhYAR0J5ZUxTesDQ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/google-map-businesses/items/ChIJ99URUeOAhYAR0J5ZUxTesDQ" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"place_id": "ChIJ99URUeOAhYAR0J5ZUxTesDQ",
"name": "Hotel Zephyr San Francisco",
"address": "250 Beach St, San Francisco, CA 94133",
"website": "https://www.hotelzephyrsf.com/"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.googleMapBusinessResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | es.GoogleBusiness | No | ||||
| data.address | string | No | 250 Beach St, San Francisco, CA 94133 | Full street address as shown on Google Maps. | ||
| data.amenities | array | No | ['Free Wi-Fi', 'Air-conditioned', 'Wi-Fi', 'Parking'] | List of amenities Google Maps shows for the business, for example `Free Wi-Fi`. | ||
| data.category | array | No | ["hotel"] | Categories Google Maps lists for the business. Labels can be in the local language. | ||
| data.city | string | No | San Francisco | Name of the city the business is in. | ||
| data.contact | object | No | 🆕 Contact information | |||
| data.contact.emails | array | No | ["john.doe@example.com","jane.doe@example.com"] | Email addresses found on the website. | ||
| data.contact.socials | object | No | Social media profile links found on the website, one per network: `facebook`, `instagram`, `youtube`, `tiktok`, `twitter` and `linkedin`. | |||
| data.contact.socials.facebook | string | No | https://facebook.com/johndoe | |||
| data.contact.socials.instagram | string | No | https://instagram.com/johndoe | |||
| data.contact.socials.linkedin | string | No | https://linkedin.com/in/johndoe | |||
| data.contact.socials.tiktok | string | No | https://tiktok.com/@johndoe | |||
| data.contact.socials.twitter | string | No | https://twitter.com/johndoe | |||
| data.contact.socials.youtube | string | No | https://youtube.com/channel/UC123456789 | |||
| data.contact.url | string | No | https://example.com | Website URL the contact details were found for. | ||
| data.contact_is_updated | boolean | No | Whether the business's contact details have been collected. | |||
| data.country | string | No | United States | 🆕 Geographic hierarchy | ||
| data.county | string | No | San Francisco County | Administrative area below state level, named as the country itself names it. | ||
| data.county_code | string | No | FR-59 | ISO 3166-2 code for the `county` value, for example `FR-59`. | ||
| data.created_at | string | No | 🆕 Timestamps | |||
| data.description | string | No | A 3-minute walk from Pier 41 in the Fisherman's Wharf district... | Business description shown on Google Maps. | ||
| data.geo | object | No | Coordinates of the business. Omitted when no map location is available for it. | |||
| data.geo.lat | number | No | Latitude in decimal degrees. | |||
| data.geo.lon | number | No | Longitude in decimal degrees. | |||
| data.geo_is_updated | boolean | No | Whether the country, state, county, city and town fields have been filled in from the coordinates. | |||
| data.id | string | No | ChIJ99URUeOAhYAR0J5ZUxTesDQ | Unique id of the business record in the dataset. | ||
| data.image | string | No | https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp | URL of the business's main photo on Google Maps. | ||
| data.locations | array | No | ['San Francisco', 'Los Angeles'] | Place names Google Maps lists with the business, for example `San Francisco`. | ||
| data.name | string | No | Hotel Zephyr San Francisco | Business name as shown on Google Maps. | ||
| data.permanently_closed | boolean | No | false | PermanentlyClosed reports Google's "Permanently closed" marker: true when Google marks the business permanently closed, false when a crawl confirmed it does not, and null when the business has not been re-crawled since status capture shipped (2026-08-31) — which is most of the dataset. null therefore means UNKNOWN, never "open": a count that treats null as operational is counting an unknown number of dead businesses. Use permanently_closed=false to exclude the confirmed-closed ones. | ||
| data.phone | string | No | 14156176565 | Business phone number as listed on Google Maps. | ||
| data.place_id | string | No | ChIJ99URUeOAhYAR0J5ZUxTesDQ | Google place id of the business. | ||
| data.rating | number | No | 4.1 | Rating is the aggregate Google rating (1.0–5.0). It is a pointer so a business with NO aggregate Google rating serializes as `rating: null` rather than a misleading 0 — Google never assigns a 0.x average, so 0 always meant "unrated". Consumers computing an average must skip nulls; use min_rating>0 to exclude them. | ||
| data.review_count | integer | No | 3213 | ReviewCount is the aggregate Google review count. A null value means Google did not return a count; numeric zero means Google confirmed zero reviews. | ||
| data.similarweb | object | No | Website traffic profile of the business website from SimilarWeb. | |||
| data.similarweb.AiTrafficDetails | object | No | AiTrafficDetails carries SimilarWeb's AI-chatbot traffic insights (the extension's "AI Traffic" feature set): which AI platforms send traffic to this domain, how that mix changed over recent months, and the top prompts users asked those chatbots that referred visits here. Left at its zero value when DataSource is "public_page" because that source doesn't expose it. | |||
| data.similarweb.AiTrafficDetails.ReferralTraffic | number | No | ||||
| data.similarweb.AiTrafficDetails.TopPrompts | object | No | ||||
| data.similarweb.AiTrafficDetails.TopPrompts.ErrorMessage | string | No | ||||
| data.similarweb.AiTrafficDetails.TopPrompts.Prompts | array | No | ||||
| data.similarweb.AiTrafficDetails.TopPrompts.Status | integer | No | ||||
| data.similarweb.AiTrafficDetails.TotalVisits | number | No | ||||
| data.similarweb.AiTrafficDetails.Traffic | object | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution | object | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Boundary | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart | array | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart[].History | array | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart[].History[].Date | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart[].History[].Value | number | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart[].Icon | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chart[].Name | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chatbots | array | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chatbots[].Icon | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chatbots[].Name | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Distribution.Chatbots[].Value | number | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Split | array | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Split[].Icon | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Split[].Name | string | No | ||||
| data.similarweb.AiTrafficDetails.Traffic.Split[].Rank | integer | No | ||||
| data.similarweb.Category | string | No | Category SimilarWeb places the site in. | |||
| data.similarweb.CategoryRank | object | No | Rank of the site within its category, with the category name. | |||
| data.similarweb.CategoryRank.Category | string | No | ||||
| data.similarweb.CategoryRank.Rank | string | No | ||||
| data.similarweb.Competitors | object | No | Sites SimilarWeb lists as most similar to the domain. | |||
| data.similarweb.Competitors.TopSimilarityCompetitors | array | No | ||||
| data.similarweb.Countries | array | No | Countries SimilarWeb returns with the site's data, each with a code, URL code and name. | |||
| data.similarweb.Countries[].Code | string | No | ||||
| data.similarweb.Countries[].Name | string | No | ||||
| data.similarweb.Countries[].UrlCode | string | No | ||||
| data.similarweb.CountryRank | object | No | Rank of the site within one country, with that country's code. | |||
| data.similarweb.CountryRank.Country | integer | No | ||||
| data.similarweb.CountryRank.CountryCode | string | No | ||||
| data.similarweb.CountryRank.Rank | integer | No | ||||
| data.similarweb.DataSource | string | No | extension_api | DataSource reports which upstream this response was populated from. "extension_api" is the full-coverage source (SimilarWeb's undocumented browser-extension API); "public_page" is a narrower, credential-free fallback (see website.go) used only when the extension API is unreachable -- some fields above are left at their zero value when DataSource is "public_page" because this source doesn't expose them. See docs/similarweb-web.md for the full field-availability breakdown. | ||
| data.similarweb.Description | string | No | Site description as SimilarWeb shows it. | |||
| data.similarweb.Engagments | object | No | Engagement figures for the latest month: bounce rate, pages per visit, visits, time on site, month and year. | |||
| data.similarweb.Engagments.BounceRate | string | No | ||||
| data.similarweb.Engagments.Month | string | No | ||||
| data.similarweb.Engagments.PagePerVisit | string | No | ||||
| data.similarweb.Engagments.TimeOnSite | string | No | ||||
| data.similarweb.Engagments.Visits | string | No | ||||
| data.similarweb.Engagments.Year | string | No | ||||
| data.similarweb.EstimatedMonthlyVisits | object | No | Estimated visits per month, keyed by the first day of the month (YYYY-MM-DD). | |||
| data.similarweb.EstimatedMonthlyVisits.2024-09-01 | integer | No | ||||
| data.similarweb.EstimatedMonthlyVisits.2024-10-01 | integer | No | ||||
| data.similarweb.EstimatedMonthlyVisits.2024-11-01 | integer | No | ||||
| data.similarweb.GlobalCategoryRank | unknown | No | Rank of the site within its category across all countries, when SimilarWeb provides it. | |||
| data.similarweb.GlobalRank | object | No | Global traffic rank of the site, in `Rank`. | |||
| data.similarweb.GlobalRank.Rank | integer | No | ||||
| data.similarweb.IsDataFromGa | boolean | No | Whether SimilarWeb reports the site's data as coming from Google Analytics. | |||
| data.similarweb.IsSmall | boolean | No | Whether SimilarWeb treats the site as a small site. | |||
| data.similarweb.LargeScreenshot | string | No | URL of a large screenshot of the site. | |||
| data.similarweb.Notification | object | No | Notice SimilarWeb attaches to the site's data, in `Content`. | |||
| data.similarweb.Notification.Content | unknown | No | ||||
| data.similarweb.Policy | integer | No | Numeric policy value SimilarWeb returns with the site's data. | |||
| data.similarweb.SiteName | string | No | Domain name of the site. | |||
| data.similarweb.SnapshotDate | string | No | Date and time of the SimilarWeb data snapshot. | |||
| data.similarweb.Title | string | No | Site title as SimilarWeb shows it. | |||
| data.similarweb.TopCountryShares | array | No | Countries that send the most visits, each with its country code and share of traffic. | |||
| data.similarweb.TopCountryShares[].Country | integer | No | ||||
| data.similarweb.TopCountryShares[].CountryCode | string | No | ||||
| data.similarweb.TopCountryShares[].Value | number | No | ||||
| data.similarweb.TopKeywords | array | No | Top search keywords bringing visits to the site, each with estimated value, volume and cost per click. | |||
| data.similarweb.TopKeywords[].Cpc | number | No | ||||
| data.similarweb.TopKeywords[].EstimatedValue | number | No | ||||
| data.similarweb.TopKeywords[].Name | string | No | ||||
| data.similarweb.TopKeywords[].Volume | number | No | ||||
| data.similarweb.TrafficSources | object | No | Share of traffic from each source: social, paid referrals, mail, referrals, search and direct. | |||
| data.similarweb.TrafficSources.Direct | number | No | ||||
| data.similarweb.TrafficSources.Mail | number | No | ||||
| data.similarweb.TrafficSources.Paid Referrals | number | No | ||||
| data.similarweb.TrafficSources.Referrals | number | No | ||||
| data.similarweb.TrafficSources.Search | number | No | ||||
| data.similarweb.TrafficSources.Social | number | No | ||||
| data.similarweb.Version | integer | No | Version number SimilarWeb returns with the site's data. | |||
| data.state | string | No | California | State, region or province, named as the country itself names it. | ||
| data.state_code | string | No | US-CA | StateCode and CountyCode are the ISO 3166-2 subdivision codes behind `state` and `county` (e.g. US-CA / FR-HDF for a state or region, FR-59 / IT-RM for a county, département or province). `state` and `county` deliberately keep each country's own administrative vocabulary ("Regierungsbezirk Köln", "Provincia de Madrid"), so these codes are the stable, country-agnostic join key for cross-country grouping or ranking. Filled by reverse geocoding since 2026-09-07; empty for rows not yet resolved. | ||
| data.town | string | No | Fisherman's Wharf | Name of the town or neighbourhood the business is in. | ||
| data.updated_at | string | No | Time the record was last updated, in UTC (RFC 3339). | |||
| data.url | string | No | https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ | Google Maps link to the business. | ||
| data.website | string | No | https://www.hotelzephyrsf.com/ | 🆕 Website and status | ||
| data.website_status | object | No | Result of the last reachability check of the business website. | |||
| data.website_status.checked_at | string | No | Time the website was checked, in UTC (RFC 3339). | |||
| data.website_status.dns_resolvable | boolean | No | Whether the website's domain name resolved. | |||
| data.website_status.error | string | No | Error message from the check. Omitted when the check raised no error. | |||
| data.website_status.http_reachable | boolean | No | Whether the website answered an HTTP request. | |||
| data.website_status.status_code | integer | No | HTTP status code the website returned. | |||
| data.website_status.url | string | No | Website address that was checked. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/google-map-businesses/items/ChIJ99URUeOAhYAR0J5ZUxTesDQ" \
-H "x-api-key: $CRAWLORA_API_KEY"