Getting information about a place
There are two ways to get additional information (address, description, rating, image, and more) about a particular place.
Following a nimble_place_link
nimble_place_linkIn the previous page, we used google_maps_search to search for a list of places with a query string and coordinates. In the response, each place result includes a nimble_place_link that, when accessed, returns additional data about that place.
For example, if the place link returned was:
https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&csrf_token=cjHpY_DuJqSr5NoP8P6wuAo&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8Then the link would be accessed with the below example:
curl --location --request GET 'https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&csrf_token=cjHpY_DuJqSr5NoP8P6wuAo&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8' \
--header 'Authorization: Basic <credential string>'import requests
url = f"https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&csrf_token=cjHpY_DuJqSr5NoP8P6wuAo&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8"
headers = {
    'Authorization': 'Basic <credential string>'
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())
const axios = require('axios');
const url = `https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&csrf_token=cjHpY_DuJqSr5NoP8P6wuAo&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8`;
const headers = {
  'Authorization': 'Basic <credential string>'
};
axios.get(url, { headers })
  .then(response => {
    console.log(response.status);
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
package main
import (
	"fmt"
	"net/http"
)
func main() {
	url := "https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&csrf_token=cjHpY_DuJqSr5NoP8P6wuAo&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8"
	headers := map[string]string{
		"Authorization": "Basic <credential string>",
	}
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	for key, value := range headers {
		req.Header.Set(key, value)
	}
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer resp.Body.Close()
	fmt.Println(resp.StatusCode)
	// Read the response body if needed
	// body, err := ioutil.ReadAll(resp.Body)
	// fmt.Println(string(body))
}
Using a place_id
If you already have a place_id from a previous Places API search or otherwise, you can directly request information about that place, as in the example below:
curl --location --request POST 'https://api.webit.live/api/v1/realtime/serp' \
--header 'Authorization: Basic <credential string>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "search_engine": "google_maps_place",
    "place_id": "desired-place-id"
}'import requests
url = 'https://api.webit.live/api/v1/realtime/serp'
headers = {
    'Authorization': 'Basic <credential string>',
    'Content-Type': 'application/json'
}
data = {
    "search_engine": "google_maps_place",
    "place_id": "desired-place-id"
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())
const axios = require('axios');
const url = 'https://api.webit.live/api/v1/realtime/serp';
const headers = {
  'Authorization': 'Basic <credential string>',
  'Content-Type': 'application/json'
};
const data = {
  "search_engine": "google_maps_place",
  "place_id": "desired-place-id"
};
axios.post(url, data, { headers })
  .then(response => {
    console.log(response.status);
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
package main
import (
	"bytes"
	"fmt"
	"net/http"
	"encoding/json"
)
func main() {
	url := "https://api.webit.live/api/v1/realtime/serp"
	payload := []byte(`{
		"search_engine": "google_maps_place",
		"place_id": "desired-place-id"
	}`)
	headers := map[string]string{
		"Authorization":  "Basic <credential string>",
		"Content-Type":   "application/json",
	}
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	if err != nil {
		fmt.Println(err)
		return
	}
	for key, value := range headers {
		req.Header.Set(key, value)
	}
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer resp.Body.Close()
	fmt.Println(resp.StatusCode)
	// Read the response body if needed
	// body, err := ioutil.ReadAll(resp.Body)
	// fmt.Println(string(body))
}
Request options
search_engine
Required
Enum: google_maps_search | google_maps_place | google_maps_reviews
The search engine from which to collect results.
place_id/data_id
Required
String
A string used by Google to identify a particular place. place_id and data_id cannot both be used in a single request.
domain
Optional
String
Search through a custom top-level domain of Google. eg: "co.uk"
country
Optional (default = all)
String
Country used to access the target URL, use ISO Alpha-2 Country Codes i.e. US, DE, GB
locale
Optional (default = en)
String
String | LCID standard locale used for the URL request. Alternatively, user can use auto for automatic locale based on country targeting.
parse
Optional (default = true)
Enum: true | false
Instructs Nimble whether to structure the results into a JSON format or return the raw HTML.
Response
200 - OK
{
    "status": "success",
    "html_content": "HTML...",
    "status_code": 200,
    "headers": {
        ...
    },
    "parsing": {
        "status": "success",
        "entities": {
            "Place": [
                {
                    ...
                    "nimble_reviews_link": "https://api.webit.live/api/v1/realtime/serp?search_engine=google_maps_reviews&domain=com&place_id=ChIJ_58pLKJZwokRvRwO5eftKC8&csrf_token=TTfpY8XLE-SUwbkPobi1wAs"
                }
            ]
        },
        "total_entities_count": 1,
        "entities_count": {
            "Place": 1
        },
        "metrics": {}
    },
    "url": "https://www.google.com/maps/place?q=place_id:ChIJ_58pLKJZwokRvRwO5eftKC8"
}Notice that in the above response, a nimble_reviews_link is included that allows for a separate Places API request to collect the reviews written by people about the targeted place. For more information on collecting reviews, see the Collecting reviews page.
500 Error
{
        "status": "error",
        "task_id": "<task_id>",
        "msg": "can't download the query response - please try again"
}400 Input Error
{
        "status": "failed",
        "msg": error
}Response Codes
200
OK.
400
The requested resource could not be reached.
401
Unauthorized/invalid credental string.
500
Internal service error.
501
An error was encountered by the proxy service.
Last updated
