Business Details API: the whole record for one place
Pass a place id from search and get everything the listing shows plus what the business publishes on its own website. One credit per call, website contacts included, cached per site for 30 days and refreshable on demand.
GET/v1/places/{place_id}
{
"data": {
"place_id": "ChIJPy04-ZkzGQ0RvdLuGmOMygg",
"name": "CDL - Dental Clinic Lisbon",
"categories": [
"Dental implants provider",
"Cosmetic dentist",
"Dental clinic"
],
"address": {
"full": "R. Ferreira da Silva 9B, 1900-228 Lisboa, Portugal",
"street": "R. Ferreira da Silva 9B",
"city": "Lisbon",
"country_code": "PT"
},
"phone_e164": "+351213540059",
"website": "https://dentistalisboa.com/",
"rating": 4.8,
"review_count": 272,
"plus_code": "8CCGPVP8+6H",
"timezone": "Europe/Lisbon",
"photos_count": 2,
"enrichment": {
"socials": {
"facebook": "https://www.facebook.com/ClinicaDentariaLisboa",
"instagram": "https://www.instagram.com/clinicadentarialisboa",
"linkedin": "https://pt.linkedin.com/company/clinica-dentaria-lisboa"
},
"whatsapp": "+351916423353",
"contact_form_url": "https://dentistalisboa.com/contactos/",
"tech_stack": [
"wordpress",
"jquery",
"google-tag-manager",
"cloudflare"
],
"website_status": "ok"
}
},
"meta": {
"request_id": "req_b787c9bb7b08",
"credits_used": 1,
"source": "maps_public"
}
}
What you get
Every field in the response.
| Field | Meaning |
|---|---|
Everything from search | Identity, categories, address, coordinates, phone, website, rating, status |
hours | Opening periods per weekday in HH:MM, all seven days when the listing publishes them |
description, plus_code, timezone | The listing's own description, Plus Code and IANA timezone |
photo_urls[], photos_count, attributes{} | Photo links, count, and attribute flags (wheelchair access, delivery, and so on) |
enrichment | emails[], socials{}, whatsapp, contact_form_url, tech_stack[], website_status, crawled_at |
snapshot_id, first_seen_at | Every fetch is stored, so change history exists from day one |
How it works
What happens between your request and the response.
Decode the id locally
The place id decodes to the listing without a lookup, so an unknown id costs nothing and returns 404.
Fetch the listing
One request through the residential tier returns the full record, including the weekly hours.
Read the website
The homepage and, if needed, the contact page are fetched from a datacenter address with a 12 second budget. Role mailboxes, socials, WhatsApp click-to-chat links and the technology signatures are extracted.
Cache and refresh
The website part is cached per host for 30 days. refresh=true forces a new crawl for one extra credit.
Pricing
One credit system for every endpoint.
One credit per call, two with refresh=true. Website contacts are part of the record, not an add-on, on every plan including Free.
Questions
Things people ask about the Business Details API.
Do I get opening hours for the whole week?
When the listing publishes a weekly schedule, yes: seven days of open and close times. Some listings publish today only, and some publish nothing; those come back null rather than guessed.
Which contacts come from the website?
Role mailboxes such as info@, sales@ or booking@ on the business's own domain, Facebook, Instagram, LinkedIn, X, YouTube and TikTok profiles, a WhatsApp number when the site has a click-to-chat link, the contact page URL and the technologies the site runs on. Person-named mailboxes are dropped by design.
What happens when the website is down?
website_status says so: unreachable, parked, redirect_social or no_website. You are charged the one credit for the record; a failed crawl is retried after an hour, not in 30 days.