Change a Google Business Profile listing
https://seolyticize.com /api/v1/tools/update_business_profile Changes the client's own Google Business Profile listing through its connected Business Profile (the connection review replies are posted with): regularHours (the whole week, 24-hour HH:MM, closeDay past midnight), specialHours (holidays and one-off dates, closed or open–close; needs regular hours on the listing), description (up to 750 characters), phone (primary and up to two additional), website, categories (Google ids such as gcid:dentist; primary and up to nine additional) and simple yes/no attributes by Google id. Only the fields given are changed (locations.patch with an updateMask; attributes through updateAttributes); phone and category lists Google replaces whole keep the half not given from the listing. dryRun: true changes nothing and returns the exact patch and updateMask, the listing's fields before and after, and Google's own check of the change (validateOnly) — show it to the person first. Refused with missing_scope when the connection was not granted permission to manage the listing, and not_connected when the location has none; next says how to connect it. Google may hold a change for review before it shows. Answers 'update our opening hours' and 'change the business description'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredlocationIdstringchangesobjectrequiredShow child parameters
descriptionstringphoneobjectShow child parameters
primarystringrequiredadditionalstring[]websitestringcategoriesobjectShow child parameters
primarystringrequiredadditionalstring[]regularHoursobject[]Show child parameters
daystringrequiredopenstringrequiredclosestringrequiredcloseDaystringspecialHoursobject[]Show child parameters
datestringrequiredclosedbooleanopenstringclosestringattributesobjectdryRunboolean{
"clientId": "string",
"locationId": "string",
"changes": {
"description": "string",
"phone": {
"primary": "string",
"additional": [
"string"
]
},
"website": "string",
"categories": {
"primary": "string",
"additional": [
"string"
]
},
"regularHours": [
{
"day": "MONDAY",
"open": "string",
"close": "string",
"closeDay": "MONDAY"
}
],
"specialHours": [
{
"date": "string",
"closed": true,
"open": "string",
"close": "string"
}
],
"attributes": {}
},
"dryRun": false
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/update_business_profile" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","locationId":"string","changes":{"description":"string","phone":{"primary":"string","additional":["string"]},"website":"string","categories":{"primary":"string","additional":["string"]},"regularHours":[{"day":"MONDAY","open":"string","close":"string","closeDay":"MONDAY"}],"specialHours":[{"date":"string","closed":true,"open":"string","close":"string"}],"attributes":{}},"dryRun":false}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/update_business_profile
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/update_business_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger