v1Resources/Locations/patchUpdate a location
Update a location
Edits an existing location's business details — address, categories, Google Business Profile attributes, services, and hours. Pass only the fields you want to change; a field you do pass replaces its current value entirely (an empty string clears a text field, a full new list replaces an existing one). The country can't be changed after creation. Saved changes are automatically queued to sync out to the connected directories and listings.
patch
locations:write/api/v1/locations/{id}Query parameters
idstringrequired
The location to update.
Request body
namestringoptional
The location's business name.
descriptionstringoptional
A short description of the business.
taglinestringoptional
A short tagline/slogan for the business.
storeCodestringoptional
Your internal store code / reference for this location.
logoUrlstringoptional
URL of the location's logo image.
languageCodestringoptional
The primary language of the listing, as a code (e.g. "en").
streetstringoptional
Street address.
street1stringoptional
Street address, line 2.
citystringoptional
City.
stateIsostringoptional
State or region, as an ISO code (e.g. "CA").
postalCodestringoptional
Postal or ZIP code.
latitudenumberoptional
Latitude. If you change the address without also setting this, it's re-derived automatically.
longitudenumberoptional
Longitude. If you change the address without also setting this, it's re-derived automatically.
phonestringoptional
Phone number.
additionalPhonesarray of stringoptional
Any additional phone numbers beyond the primary one.
websitestringoptional
Website URL.
businessEmailstringoptional
A public contact email for the business.
categoryIdstringoptional
General category id — look it up with GET /api/v1/locations/categories.
categoryNamestringoptional
General category display name.
publisherCategoriesobjectoptional
Per-publisher PRIMARY category — currently only google is supported here (an id and a name are both required; passing one alone would clear the category). Facebook/Apple/Bing can only be changed in the location editor. Look up google's id/name pair with GET /api/v1/locations/publisher-categories.
googleobjectoptional
idstringoptional
namestringoptional
additionalCategoriesarray of objectoptional
Up to 9 extra categories, each an { id?, name }. A bare name is accepted and its id is resolved from the category catalog where one matches. Look up ids yourself with GET /api/v1/locations/categories.
idstringoptional
namestringoptional
attributesobjectoptional
Google Business Profile attributes, as a map of attribute id to value (e.g. { "attributes/wi_fi": "free" }) — REPLACES the whole set, so read the current ones from GET /api/v1/locations/{id} and pass back everything you want kept. An id with no valid Google representation for this location's category is dropped and reported back in rejectedAttributes rather than failing the whole request. There's no endpoint listing which attribute ids are valid for a category — that's Google's own Business Profile attribute reference, not Synup's.
servicesarray of objectoptional
The services or products this location offers — replaces the existing list.
namestringoptional
descriptionstringoptional
pricenumberoptional
currencystringoptional
googleServiceTypeIdstringoptional
ownerNamestringoptional
The owner's name.
menuUrlstringoptional
URL of the business's menu.
yearEstablishednumberoptional
The year the business was established (e.g. 2012).
tagsarray of stringoptional
Internal tags for your own organization — not shown publicly. Replaces the existing list.
labelsarray of stringoptional
Internal labels for this location. Replaces the existing list.
regularHoursarray of objectoptional
The weekly regular-hours schedule — replaces the existing schedule entirely. One entry per day of the week.
daystring (MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY)optional
closedbooleanoptional
periodsarray of objectoptional
openstringoptional
closestringoptional
moreHoursarray of objectoptional
Extra hour types beyond regular hours (delivery, takeout, happy hour, etc.), replaces the existing list.
specialHoursarray of objectoptional
One-off date overrides — holiday closures or a single day's special hours — replaces the existing list. Any calendar date works, not just named holidays.
applyToPublishersarray of string (google | facebook | apple | bing)optional
Change these values for specific publishers only instead of the shared default every publisher inherits.
Response
dataobjectoptional
locationobjectoptional
The full business profile for one location: address, hours, categories, attributes, services, media, and status — everything update_location can change, plus what create returned.
idstringoptional
Unique identifier for the location.
namestringoptional
The location's business name.
descriptionstringoptional
A description of the business, or null.
taglinestringoptional
A short tagline/slogan for the business, or null.
storeCodestringoptional
Your internal store code / reference for this location, or null.
logoUrlstringoptional
URL of the location's logo image, or null.
streetstringoptional
Street address, line 1, or null.
street1stringoptional
Street address, line 2, or null.
citystringoptional
City.
statestringoptional
State or region.
postalCodestringoptional
Postal or ZIP code, or null.
countrystringoptional
Country, as an ISO-3166-1 alpha-2 code, or null.
latitudenumberoptional
Latitude, or null.
longitudenumberoptional
Longitude, or null.
phonestringoptional
Primary phone number, or null.
additionalPhonesarray of stringoptional
Any additional phone numbers beyond the primary one.
websitestringoptional
The location's website URL, or null.
businessEmailstringoptional
A public contact email for the business, or null.
categoryNamestringoptional
The general category's display name, or null.
primaryCategoryDisplaystringoptional
The effective primary category's display name — per-publisher (Google) if set, else general — or null.
primaryCategoryGooglestringoptional
The location's primary Google category id (gcid), or null.
additionalCategoriesarray of objectoptional
Up to 9 extra categories, each with an id (when resolved) and a display name.
idstringoptional
namestringoptional
attributesarray of objectoptional
Google Business Profile attributes, as the stored { id, value } list.
idstringoptional
valueobjectoptional
The attribute's value — a boolean for yes/no attributes, a string for single-choice ones, or an object with setValues/unsetValues for multi-select.
servicesarray of objectoptional
The services or products this location offers.
namestringoptional
descriptionstringoptional
pricenumberoptional
currencystringoptional
googleServiceTypeIdstringoptional
ownerNamestringoptional
The owner's name, or null.
menuUrlstringoptional
URL of the business's menu, or null.
yearEstablishednumberoptional
The year the business was established, or null.
tagsarray of stringoptional
Internal tags for your own organization — not shown publicly.
labelsarray of stringoptional
Internal labels for this location.
regularHoursarray of objectoptional
The weekly regular-hours schedule, or null.
daystring (MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY)optional
closedbooleanoptional
periodsarray of objectoptional
moreHoursarray of objectoptional
Extra hour types beyond regular hours (delivery, takeout, etc.), or null.
specialHoursarray of objectoptional
One-off date overrides — holiday closures or a single day's special hours — or null.
mediaByCategoryobjectoptional
Media items grouped by category (e.g. EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Each item has a url, and optionally a label, kind (PHOTO or VIDEO), source, starred flag, and asset key.
clientIdstringoptional
ID of the client this location belongs to, or null.
archivedbooleanoptional
Whether the location is archived.
scheduledArchiveAtstringoptional
When archival was requested (also the token cancel-archive matches on), as an ISO 8601 timestamp, or null if none is pending.
verificationStatusstring (verified | pending | unverified | unknown)optional
Google verification state: verified, pending, unverified, or unknown, or null.
rejectedAttributesarray of stringoptional
Attribute ids from the request that were NOT written — either they have a dedicated field of their own, or their value had no valid Google representation. Present only when at least one was rejected.
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
404The resource wasn't found, or doesn't belong to your agency.
422The request is missing a required parameter or is otherwise malformed.
429Too many requests. Retry after the number of seconds in the Retry-After header.
patch/api/v1/locations/{id}
Your API key
id *
Request body
{
"data": {
"location": {
"id": "loc_456",
"name": "Acme Dental — Downtown",
"tagline": "Gentle care, on time",
"city": "Austin",
"state": "TX",
"clientId": "cli_123"
},
"rejectedAttributes": []
}
}