Google place details
One Google place by its id, opened from the id (never through a search): name, categories, address, phone, website, status, hours, attributes, rating.
One Google place by its id, opened from the id (never through a search): name, categories,
address, phone, website, status, hours, attributes, rating. Ids are taken in the order
place_id, data_id, data_cid. null means "not known"; [] means "Google shows
none". Failures carry error: {code, message} beside reason; a 404 with
error.code: place_not_found is the only answer that means the place is gone.
In the document form. $1 request $2 hl or gl (or api_version: "v2") is the document-form
Google Maps Place call (country and include are then not read), answered as the document: search_metadata,
search_parameters, search_information {}, place_result (title, description, address,
phone, rating, reviews, reviews_histogram, website, hours, open_hours, amenities,
images, review_results.reviews, popular_times, ...). hl is the
language the record is read in; gl also sets the country the request is made from where one is available. A bare place_id
is the older call above. Never answered (not in Google's record): weather, located_in,
booking_link, posts, admissions, experiences, questions_and_answers, at_this_place,
hotels_nearby, similar_rentals_nearby, review_results.hotel_summary, .summaries,
.web_reviews.
X-API-Key<token>Your API key.
cancel_token?stringA name you make up for this request (a UUID is fine), so you can later GET /v1/cancel
with it. Only you know it, so only you can cancel. Use a new one for every request, retries included: a cancelled token stays cancelled for a few minutes.
1 <= length <= 128place_id?stringA Google place id, ChIJ….
^[A-Za-z0-9_-]{16,300}$data_id?stringThe hex feature id.
^0x[0-9a-fA-F]{1,16}:0x[0-9a-fA-F]{1,16}$data_cid?stringThe decimal customer id, as a string (it overflows a 53-bit number).
^\d{1,20}$country?stringThe country the page is loaded from and Google's gl, default us. Keep it the business' own country.
Countries a request can be made from: us, ca, mx, br, ar, au, nz, in, sg, jp, ph, ae, za, gb, ie, de, fr, es, it, nl, be, pt, at, ch, se, no, dk, fi, pl, cz, gr, ro, hu.
^[A-Za-z]{2}$include?array<>Sections to return; default all. A section left out is null ("not loaded"). An
unknown name is refused.
hl?stringThe language the record is read in (the claim test is English).
"en"gl?stringCountry, two letters; also the country the request is made from, where one is available.
api_version?stringSelects this call when neither hl nor gl is sent.
The place; with hl/gl, the document.
application/json- response
The first three keys of every parsed 200 (the answer is the document itself, no success/data
envelope): what the search was (search_metadata), what it asked (search_parameters), the
parser's own search_information ({} when it has none). The engine's blocks follow, at the same
level. An engine whose answer is a list puts it under results.
search_metadata*search_parameters*The request's own fields as sent, engine first, without cancel_token.
search_information*The parser's own, e.g. yelp_search's; otherwise {}.
place*null means "not known"; [] means "Google shows none". A reduced version of the record
(every look since 2026-10-13) has fewer attributes but its review_count; the engine looks twice in all
before accepting one.
curl -X GET 'https://api.justserp.com/v1/google/maps/place?place_id=ChIJifIePKtZwokRVZ-UdRGkZzs&country=us&include=hours&include=attributes'{ "search_metadata": { "id": "string", "status": "Success", "created_at": "string", "request_url": "string", "html_url": "string" }, "search_parameters": {}, "search_information": {}, "place": { "place_id": "string", "data_id": "string", "data_cid": "string", "maps_url": "string", "name": "string", "categories": [ "string" ], "address": "string", "address_components": { "street": "string", "city": "string", "region": "string", "postal_code": "string", "country_code": "string" }, "latitude": 0, "longitude": 0, "plus_code": "string", "phone": "string", "phone_international": "string", "website": "string", "booking_url": "string", "menu_url": "string", "status": "operational", "hours": { "weekly": { "property1": { "status": "open", "ranges": [ { "open": "string", "close": "string" } ] }, "property2": { "status": "open", "ranges": [ { "open": "string", "close": "string" } ] } }, "special": [ { "status": "open", "ranges": [ { "open": "string", "close": "string" } ], "date": "2019-08-24", "label": "string" } ], "might_differ": true, "confirmed_by_business": true }, "description": "string", "claimed": true, "attributes": [ { "group": "string", "items": [ { "name": "string", "value": null } ] } ], "rating": 0, "review_count": 0, "photos": { "count": 0, "latest": null }, "scraped_at": "2019-08-24T14:15:22Z", "order_links": null, "services": null, "products": null, "questions": null, "social_profiles": null }}Google News Light GET
The articles in Google's News tab under the Google News Light parameters (`q`, `location`/`uule`, `hl`, `gl`, `nfpr`, `filter`, `page`, `time_period`, `sort_by`), answered as the document: `search_metadata`, `search_parameters`, `search_information` (`query_displayed`, `showing_results_for`, `page`), `organic_results` (`position`, `title`, `link`, `source`, `date`, `snippet`, `thumbnail`), `top_stories` (`position`, `title`, `link`, `source`, `date`) and `pagination` (`current`, `previous`, `next`).
Google reviews GET
A Google place's rating, review count and reviews, newest first, with exact times, original text, owner replies and edits.