cURL
curl --request GET \
--url https://api.gmbapi.com/external-api/gmb/location/updates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gmbapi.com/external-api/gmb/location/updates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gmbapi.com/external-api/gmb/location/updates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gmbapi.com/external-api/gmb/location/updates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gmbapi.com/external-api/gmb/location/updates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gmbapi.com/external-api/gmb/location/updates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gmbapi.com/external-api/gmb/location/updates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"payload": {
"data": [
{
"api_token_id": "external-token-doc-id",
"update_source": "API_UPDATE",
"update_type": "LOCATION",
"location_update_status": "IN_PROGRESS",
"updateMask": [
"title",
"websiteUri"
],
"timestamp": 1769795413131,
"locationDto": {}
},
{
"api_token_id": "external-token-doc-id",
"update_source": "API_UPDATE",
"update_type": "LOCATION",
"location_update_status": "IN_PROGRESS",
"updateMask": [
"categories"
],
"timestamp": 1769795413131,
"locationDto": {
"categories": {
"primaryCategory": {
"displayName": "Hair salon",
"name": "categories/gcid:hair_salon"
},
"additionalCategories": [
{
"displayName": "Barber shop",
"name": "categories/gcid:barber_shop"
},
{
"displayName": "Beauty salon",
"name": "categories/gcid:beauty_salon"
}
]
}
}
}
],
"pagination": {
"has_more": true,
"next_page_token": "MTc2NDIzNDA5NjU2MQ==",
"page_size": 5
}
}
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"success": false,
"msg": "RATE_LIMIT_EXCEEDED",
"payload": {
"allowed": false,
"limit": 200,
"remaining": 0,
"retryAfter": 123
}
}Locations
Get Location Updates
Returns update history for a location.
GET
/
location
/
updates
cURL
curl --request GET \
--url https://api.gmbapi.com/external-api/gmb/location/updates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gmbapi.com/external-api/gmb/location/updates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gmbapi.com/external-api/gmb/location/updates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gmbapi.com/external-api/gmb/location/updates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gmbapi.com/external-api/gmb/location/updates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gmbapi.com/external-api/gmb/location/updates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gmbapi.com/external-api/gmb/location/updates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"payload": {
"data": [
{
"api_token_id": "external-token-doc-id",
"update_source": "API_UPDATE",
"update_type": "LOCATION",
"location_update_status": "IN_PROGRESS",
"updateMask": [
"title",
"websiteUri"
],
"timestamp": 1769795413131,
"locationDto": {}
},
{
"api_token_id": "external-token-doc-id",
"update_source": "API_UPDATE",
"update_type": "LOCATION",
"location_update_status": "IN_PROGRESS",
"updateMask": [
"categories"
],
"timestamp": 1769795413131,
"locationDto": {
"categories": {
"primaryCategory": {
"displayName": "Hair salon",
"name": "categories/gcid:hair_salon"
},
"additionalCategories": [
{
"displayName": "Barber shop",
"name": "categories/gcid:barber_shop"
},
{
"displayName": "Beauty salon",
"name": "categories/gcid:beauty_salon"
}
]
}
}
}
],
"pagination": {
"has_more": true,
"next_page_token": "MTc2NDIzNDA5NjU2MQ==",
"page_size": 5
}
}
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"success": false,
"msg": "RATE_LIMIT_EXCEEDED",
"payload": {
"allowed": false,
"limit": 200,
"remaining": 0,
"retryAfter": 123
}
}Returns update history for a location. Pass
update_id to fetch a single update (the id from Update Google Location).
Statuses include in_progress, completed, failed, verification, and partially_completed.
per_page is 5–10 (default 5). Use page_token from pagination.next_page_token for the next page.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Account ID. Required when using an organization token.
Location ID to retrieve update history for
Number of results per page. Minimum is 5, maximum is 10.
Required range:
5 <= x <= 10Token for pagination. Use the next_page_token from the previous response to get the next page.
If provided, returns only this update instead of the full history.