Google Business
Get attributes
The attributes currently set on the location (Wi-Fi, outdoor seating, wheelchair access, …). Requires a connected Google Business account; bodies/responses are honest passthroughs of Google’s resource shapes, so every Google field works. Requires scope social:read.
GET
/
social
/
accounts
/
{account_id}
/
gmb
/
attributes
Get attributes
curl --request GET \
--url https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes', 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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes",
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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes"
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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes")
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,
"data": {
"name": "locations/123456789/attributes",
"attributes": [
{
"name": "attributes/has_wifi_free",
"valueType": "BOOL",
"values": [
true
]
}
]
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Post not found.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "PLATFORM_ERROR",
"message": "Google Business rejected the request: Invalid attribute mask.",
"details": {
"google_status": "INVALID_ARGUMENT"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}Authorizations
API key from Developer dashboard (Bearer token).
Path Parameters
Connected Google Business account id.
Previous
Available attributesWhich attributes Google allows for THIS location's category, with display names and value types - fetch before updating attributes. Requires a connected Google Business account; bodies/responses are honest passthroughs of Google's resource shapes, so every Google field works. Requires scope `social:read`.
Next
⌘I
Get attributes
curl --request GET \
--url https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes', 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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes",
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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes"
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.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/social/accounts/{account_id}/gmb/attributes")
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,
"data": {
"name": "locations/123456789/attributes",
"attributes": [
{
"name": "attributes/has_wifi_free",
"valueType": "BOOL",
"values": [
true
]
}
]
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Post not found.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "PLATFORM_ERROR",
"message": "Google Business rejected the request: Invalid attribute mask.",
"details": {
"google_status": "INVALID_ARGUMENT"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}
