JustSERPDocs
Google

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.

GET
/v1/google/maps/place

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.

Authorization

headerX-API-Key<token>

Your API key.

Query Parameters

cancel_token?string

A 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.

Length1 <= length <= 128
place_id?string

A Google place id, ChIJ….

Match^[A-Za-z0-9_-]{16,300}$
data_id?string

The hex feature id.

Match^0x[0-9a-fA-F]{1,16}:0x[0-9a-fA-F]{1,16}$
data_cid?string

The decimal customer id, as a string (it overflows a 53-bit number).

Match^\d{1,20}$
country?string

The 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.

Match^[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?string

The language the record is read in (the claim test is English).

Default"en"
gl?string

Country, two letters; also the country the request is made from, where one is available.

api_version?string

Selects this call when neither hl nor gl is sent.

Response Body

The place; with hl/gl, the document.

application/json
  1. 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.

Example Request
curl -X GET 'https://api.justserp.com/v1/google/maps/place?place_id=ChIJifIePKtZwokRVZ-UdRGkZzs&country=us&include=hours&include=attributes'
Example Response
{  "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  }}