POSTapi.synup.com/api/v4/locations/update
Update business location
Update Location
This API allows you to modify the attributes of an existing location within your account. It enables businesses to keep their location data up to date by updating key details such as address, contact information, business hours, categories, and other metadata.
Requires an API key. Send it as
Authorization: API <your-key> — see Getting started.Parameters
Body
| Name | Type | Required | Description |
|---|---|---|---|
input | object | required | |
input.id | string | required | Unique identifier in Base64 encoded format. Must be in the format Location:<Location ID> |
input.name | string | optional | Name of the business |
input.archived | boolean | optional | Indicates if the location is archived. Read-only. |
input.archivedAt | string | optional | Timestamp when the location was archived. Read-only. |
input.billingPeriod | string | optional | Billing cycle period. Read-only. |
input.bizUrl | string | optional | URL of the business website |
input.bookingUrl | null | optional | URL for booking appointments. Applicable only for Food industry businesses |
input.city | string | optional | City where the business is located |
input.countryIso | string | optional | Country ISO code. Refer to the Places API for valid ISOs. |
input.customAttributes | array of object | optional | |
input.customAttributes[].archived | boolean | optional | |
input.customAttributes[].enumValues | array of string | optional | |
input.customAttributes[].name | string | optional | |
input.customAttributes[].slug | string | optional | |
input.customAttributes[].type | string | optional | |
input.customAttributes[].value | array of string | optional | |
input.description | string | optional | Detailed description of the business |
input.facebookUrl | string | optional | URL of the business's Facebook page |
input.googleAdsPhone | string | optional | Google Ads-specific phone number |
input.hideAddress | boolean | optional | Set to true if location is a Service Area Business |
input.instagramUrl | string | optional | URL of the business's Instagram page |
input.linkedinUrl | string | optional | URL of the business's LinkedIn page |
input.offeringsUrl | null | optional | URL for listing business offerings. Applicable only for food industry businesses |
input.ownerEmail | string | optional | Email of the business owner |
input.ownerName | string | optional | Name of the business owner |
input.paymentMethods | array of string | optional | Accepted payment methods ("VISA", "MASTERCARD", "AMEX", "CASH", "CHEQUE", "CRYPTO", "DINERS_CLUB", "DISCOVER", "FINANCING", "INVOICE", "TRAVELERS_CHECK", "APPLE_PAY", "SAMSUNG_PAY", "PAYPAL", "ANDROID_PAY" ) |
input.phone | string | optional |
|
input.additionalPhones | array of string | optional | Additional contact phone numbers |
input.pinterestUrl | string | optional | URL of the business's Pinterest page |
input.postalCode | string | optional | Postal code of the business location |
input.reservationUrl | null | optional | URL for making reservations. Applicable only for restaurant only businesses. |
input.serviceItems | array of string | optional | |
input.stateIso | string | optional | State ISO code. Refer to the Places API for valid ISOs. |
input.storeId | null | optional | Unique store identifier. Must be unique across all locations. |
input.street | string | optional | Street address of the business |
input.street1 | string | optional | Additional street address information |
input.subCategoryId | integer | optional | ID of the subcategory the business belongs to |
input.additionalCategoryIds | array of string | optional | Additional category IDs for the business |
input.tagline | string | optional | Tagline of the business |
input.tags | array of string | optional | |
input.temporarilyClosed | boolean | optional | Set to true if the location's business hours should be marked as closed |
input.tiktokUrl | null | optional | URL of the business's TikTok page |
input.twitterUrl | string | optional | URL of the business's Twitter page |
input.videos | array of string | optional | List of valid video URLs |
input.yearOfIncorporation | integer | optional | Year the business was established |
input.youtubeUrl | null | optional | URL of the business's YouTube page |
input.enabledSiteIds | array of integer | optional | List of site IDs where the business details should be published |
input.submissionDisabledSiteIds | array of integer | optional | List of site IDs where the business details should not be published |
input.placeActionLinks | array of object | required | |
input.placeActionLinks[].placeActionType | string | required | One of the valid types.APPOINTMENTONLINE_APPOINTMENTDINING_RESERVATIONFOOD_ORDERINGFOOD_DELIVERYFOOD_TAKEOUT |
input.placeActionLinks[].isPreferred | boolean | required | Marks this link preferred for its type. At most one preferred per type. |
input.placeActionLinks[].uri | string | required | Destination URL. |
input.placeActionLinks[].name | string | optional | The link's identifier, returned by the read endpoints once the link has synced to Google. Optional on write — include it (when available) to target a specific saved link most accurately. |
input.placeActionLinks[].action | string | optional | add (default) or delete (for deleting saved uri) |
input.businessHours | array of object | optional | Business hours for each day of the week |
input.businessHours[].day | string | required | Day of the week | SpecialMONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAYSPECIAL |
input.businessHours[].slots | array of object | required | Array of time slots (minimum 1, maximum 2). Required only if type is OPEN. |
input.businessHours[].slots[].start | string | optional | Opening time. Valid formats: <HH>:<MM>am OR <HH>:<MM>pm |
input.businessHours[].slots[].end | string | optional | Closing time. Valid formats: <HH>:<MM>am OR <HH>:<MM>pm |
input.businessHours[].type | string | required | Type of business hours (e.g., OPEN, CLOSED, OPEN_24x7)OPENOPEN_24x7CLOSED |
input.businessHours[].specialDate | string | optional | Day should be SPECIAL. Regular hours is mandatory. Regular hours is mandatory for special hours to be allowed |
Request
Request
curl -X POST 'https://api.synup.com/api/v4/locations/update' \
-H 'Authorization: API YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"input": {
"id": "TG9jYXRpb246MTE4MjcxOA==",
"name": "Greenleaf Bakery 2",
"businessHours": [
{
"day": "SUNDAY",
"slots": null,
"specialDate": null,
"type": "CLOSED"
},
{
"day": "MONDAY",
"slots": [
{
"end": "12:00pm",
"start": "08:00am"
},
{
"end": "06:00pm",
"start": "01:00pm"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "TUESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "WEDNESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "THURSDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "FRIDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "SATURDAY",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "SPECIAL",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": "2025-07-12",
"type": "OPEN"
}
],
"placeActionLinks": [
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://order.example.com",
"name": "<link-name-if-synced>",
"action": "delete"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://new-order.example.com",
"isPreferred": true,
"action": "add"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://ordering.sample_discovered_url.com",
"isPreferred": false,
"action": "add"
}
]
}
}'const res = await fetch('https://api.synup.com/api/v4/locations/update', {
method: 'POST',
headers: {
Authorization: 'API YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"input": {
"id": "TG9jYXRpb246MTE4MjcxOA==",
"name": "Greenleaf Bakery 2",
"businessHours": [
{
"day": "SUNDAY",
"slots": null,
"specialDate": null,
"type": "CLOSED"
},
{
"day": "MONDAY",
"slots": [
{
"end": "12:00pm",
"start": "08:00am"
},
{
"end": "06:00pm",
"start": "01:00pm"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "TUESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "WEDNESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "THURSDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "FRIDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "SATURDAY",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": null,
"type": "OPEN"
},
{
"day": "SPECIAL",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": "2025-07-12",
"type": "OPEN"
}
],
"placeActionLinks": [
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://order.example.com",
"name": "<link-name-if-synced>",
"action": "delete"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://new-order.example.com",
"isPreferred": true,
"action": "add"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://ordering.sample_discovered_url.com",
"isPreferred": false,
"action": "add"
}
]
}
}),
});
const data = await res.json();import requests
res = requests.post(
"https://api.synup.com/api/v4/locations/update",
headers={
"Authorization": "API YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"input": {
"id": "TG9jYXRpb246MTE4MjcxOA==",
"name": "Greenleaf Bakery 2",
"businessHours": [
{
"day": "SUNDAY",
"slots": None,
"specialDate": None,
"type": "CLOSED"
},
{
"day": "MONDAY",
"slots": [
{
"end": "12:00pm",
"start": "08:00am"
},
{
"end": "06:00pm",
"start": "01:00pm"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "TUESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "WEDNESDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "THURSDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "FRIDAY",
"slots": [
{
"end": "06:00pm",
"start": "08:00am"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "SATURDAY",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": None,
"type": "OPEN"
},
{
"day": "SPECIAL",
"slots": [
{
"end": "04:00pm",
"start": "08:00am"
}
],
"specialDate": "2025-07-12",
"type": "OPEN"
}
],
"placeActionLinks": [
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://order.example.com",
"name": "<link-name-if-synced>",
"action": "delete"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://new-order.example.com",
"isPreferred": True,
"action": "add"
},
{
"placeActionType": "FOOD_ORDERING",
"uri": "https://ordering.sample_discovered_url.com",
"isPreferred": False,
"action": "add"
}
]
}
},
)
data = res.json()req, _ := http.NewRequest("POST", "https://api.synup.com/api/v4/locations/update", bytes.NewBufferString(payload))
req.Header.Set("Authorization", "API YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)Responses
| Status | Description |
|---|---|
200 | Location created successfully |
400 |
Example response (generated from the schema)
{
"data": {
"updateLocation": {
"clientMutationId": null,
"errors": [
{
"code": "string",
"contextInfo": [
{
"key": null,
"value": null
}
],
"message": "string"
}
],
"location": {
"accountId": 0,
"additionalCategoryIds": [
"string"
],
"additionalInfo": null,
"additionalPhones": [
"string"
],
"archived": true,
"archivedAt": null,
"billingPeriod": null,
"bizUrl": "string",
"bookingUrl": null,
"businessHours": [
{
"day": "string",
"slots": [
null
],
"specialDate": "string",
"type": "string"
}
],
"categoryId": 0,
"city": "string",
"countryIso": "string",
"customAttributes": [
{
"archived": true,
"enumValues": [
null
],
"name": "string",
"slug": "string",
"type": "string",
"value": [
null
]
}
],
"databaseId": 0,
"description": "string",
"facebookUrl": "string",
"folderId": "string",
"folderName": "string",
"googleAdsPhone": "string",
"googleplusUrl": null,
"hideAddress": true,
"id": "string",
"instagramUrl": "string",
"isRestaurant": true,
"latitude": 0,
"linkedinUrl": "string",
"locationPhotos": [
"string"
],
"longitude": 0,
"moreHours": [
"string"
],
"name": "string",
"offeringsUrl": null,
"ownerEmail": "string",
"ownerName": "string",
"package": "string",
"paymentMethods": [
"string"
],
"phone": "string",
"pinterestUrl": "string",
"planId": 0,
"planName": "string",
"postalCode": "string",
"publisherAttributes": [
"string"
],
"reservationUrl": null,
"serviceItems": [
"string"
],
"stateIso": "string",
"storeId": null,
"street": "string",
"street1": "string",
"subCategory": {
"databaseId": 0,
"id": "string",
"name": "string",
"primary": true
},
"subCategoryId": 0,
"subCategoryName": "string",
"tagline": "string",
"tags": [
"string"
],
"temporarilyClosed": true,
"tiktokUrl": null,
"toplineMessage": null,
"toplineMessageText": null,
"twitterUrl": "string",
"videos": [
"string"
],
"yearOfIncorporation": 0,
"youtubeUrl": null
},
"success": true,
"warnings": [
"string"
],
"code": "string"
}
}
}Response body
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Contains the response data for the create location request. |
data.updateLocation | object | required | Encapsulates details about the created location. |
data.updateLocation.clientMutationId | null | required | |
data.updateLocation.errors | array of object | required | Errors encountered during the location creation process, if any. Null if no errors. |
data.updateLocation.errors[].code | string | optional | |
data.updateLocation.errors[].contextInfo | array of object | optional | |
data.updateLocation.errors[].contextInfo[].key | string | optional | |
data.updateLocation.errors[].contextInfo[].value | string | optional | |
data.updateLocation.errors[].message | string | optional | |
data.updateLocation.location | object | required | Details of the created location. |
data.updateLocation.location.accountId | integer | required | Unique identifier of the account associated with the location. |
data.updateLocation.location.additionalCategoryIds | array of string | required | List of additional category IDs assigned to the location. |
data.updateLocation.location.additionalInfo | null | required | Additional information about the location, if applicable. |
data.updateLocation.location.additionalPhones | array of string | required | List of additional phone numbers associated with the location. |
data.updateLocation.location.archived | boolean | required | Indicates whether the location has been archived. |
data.updateLocation.location.archivedAt | null | required | Timestamp indicating when the location was archived, if applicable. |
data.updateLocation.location.billingPeriod | null | required | Billing period associated with the location, if applicable. |
data.updateLocation.location.bizUrl | string | required | URL of the business website. |
data.updateLocation.location.bookingUrl | null | required | URL for booking appointments with the business. |
data.updateLocation.location.businessHours | array of object | required | List of business hours for each day of the week. |
data.updateLocation.location.businessHours[].day | string | required | Day of the week. |
data.updateLocation.location.businessHours[].slots | array of object | required | Time slots indicating when the business is open. |
data.updateLocation.location.businessHours[].slots[].end | string | required | Closing time of the slot. |
data.updateLocation.location.businessHours[].slots[].start | string | required | Opening time of the slot. |
data.updateLocation.location.businessHours[].specialDate | string | required | Special date for business hours, if applicable. |
data.updateLocation.location.businessHours[].type | string | required | Type of business hour entry (e.g., OPEN, CLOSED). |
data.updateLocation.location.categoryId | integer | required | ID of the primary category assigned to the business. |
data.updateLocation.location.city | string | required | City where the business is located. |
data.updateLocation.location.countryIso | string | required | Country ISO code of the business location. |
data.updateLocation.location.customAttributes | array of object | required | |
data.updateLocation.location.customAttributes[].archived | boolean | required | |
data.updateLocation.location.customAttributes[].enumValues | array of string | required | |
data.updateLocation.location.customAttributes[].name | string | required | |
data.updateLocation.location.customAttributes[].slug | string | required | |
data.updateLocation.location.customAttributes[].type | string | required | |
data.updateLocation.location.customAttributes[].value | array of string | required | |
data.updateLocation.location.databaseId | integer | required | Internal id |
data.updateLocation.location.description | string | required | Detailed description of the business. |
data.updateLocation.location.facebookUrl | string | required | URL of the business's Facebook page. |
data.updateLocation.location.folderId | string | required | |
data.updateLocation.location.folderName | string | required | |
data.updateLocation.location.googleAdsPhone | string | required | |
data.updateLocation.location.googleplusUrl | null | required | |
data.updateLocation.location.hideAddress | boolean | required | If the location is an SAB |
data.updateLocation.location.id | string | required | Encoded Location Id in base64 format. Location:<Location id> |
data.updateLocation.location.instagramUrl | string | required | URL of the business's Instagram profile. |
data.updateLocation.location.isRestaurant | boolean | required | |
data.updateLocation.location.latitude | number | required | |
data.updateLocation.location.linkedinUrl | string | required | URL of the business's LinkedIn profile. |
data.updateLocation.location.locationPhotos | array of string | required | |
data.updateLocation.location.longitude | number | required | |
data.updateLocation.location.moreHours | array of string | required | The time periods during which a location is open for certain types of business. Only for Google |
data.updateLocation.location.name | string | required | Name of the business. |
data.updateLocation.location.offeringsUrl | null | required | Menu URL |
data.updateLocation.location.ownerEmail | string | required | Email of the business owner. |
data.updateLocation.location.ownerName | string | required | |
data.updateLocation.location.package | string | required | |
data.updateLocation.location.paymentMethods | array of string | required | Accepted payment methods ("VISA", "MASTERCARD", "AMEX", "CASH", "CHEQUE", "CRYPTO", "DINERS_CLUB", "DISCOVER", "FINANCING", "INVOICE", "TRAVELERS_CHECK", "APPLE_PAY", "SAMSUNG_PAY", "PAYPAL", "ANDROID_PAY" ) |
data.updateLocation.location.phone | string | required | Primary contact phone number. |
data.updateLocation.location.pinterestUrl | string | required | |
data.updateLocation.location.planId | integer | required | |
data.updateLocation.location.planName | string | required | |
data.updateLocation.location.postalCode | string | required | |
data.updateLocation.location.publisherAttributes | array of string | required | |
data.updateLocation.location.reservationUrl | null | required | |
data.updateLocation.location.serviceItems | array of string | required | |
data.updateLocation.location.stateIso | string | required | State ISO code of the business location. |
data.updateLocation.location.storeId | null | required | Unique store identifier, if applicable. |
data.updateLocation.location.street | string | required | Street address of the business. |
data.updateLocation.location.street1 | string | required | |
data.updateLocation.location.subCategory | object | required | |
data.updateLocation.location.subCategory.databaseId | integer | required | |
data.updateLocation.location.subCategory.id | string | required | |
data.updateLocation.location.subCategory.name | string | required | |
data.updateLocation.location.subCategory.primary | boolean | required | |
data.updateLocation.location.subCategoryId | integer | required | |
data.updateLocation.location.subCategoryName | string | required | |
data.updateLocation.location.tagline | string | required | |
data.updateLocation.location.tags | array of string | required | |
data.updateLocation.location.temporarilyClosed | boolean | required | Indicates whether the business is temporarily closed. |
data.updateLocation.location.tiktokUrl | null | required | |
data.updateLocation.location.toplineMessage | null | required | |
data.updateLocation.location.toplineMessageText | null | required | |
data.updateLocation.location.twitterUrl | string | required | URL of the business's Twitter profile. |
data.updateLocation.location.videos | array of string | required | |
data.updateLocation.location.yearOfIncorporation | integer | required | Year in which the business was established. |
data.updateLocation.location.youtubeUrl | null | required | |
data.updateLocation.success | boolean | required | Indicates whether the location creation was successful. |
data.updateLocation.warnings | array of string | required | List of warnings generated during the request processing, if any. |
data.updateLocation.code | string | required |