v1Resources/Locations/postUpload photos to a location

Upload photos to a location

Adds one or more photos to a location, in a given category. Provide each image as a public https URL (fetched and re-hosted) or as base64 bytes. Only images are supported (jpeg, png, gif, webp), max 5 MB each. The LOGO category holds a single logo — uploading to LOGO replaces the current one. Every other category appends. Saved photos are automatically queued to publish to Google.

post/api/v1/locations/{id}/media
locations:write
Query parameters
idstringrequired
The location to add photos to.
Request body
categorystring (COVER | PROFILE | LOGO | EXTERIOR | INTERIOR | PRODUCT | FOOD_AND_DRINK | MENU | AT_WORK | TEAMS | ROOMS | COMMON_AREA | ADDITIONAL)required
The photo category to add to. LOGO replaces the current logo; every other category appends.
imagesarray of objectrequired
One or more images to add. Each needs a url or base64.
urlstringoptional
A public https URL to the image — it is fetched and re-hosted.
base64stringoptional
The image bytes as base64 (a data: URL prefix is accepted). Use this instead of url when you have the bytes.
labelstringoptional
Optional caption/label for the photo.
Response
dataobjectoptional
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.
addedarray of objectoptional
The photo(s) that were actually added, each with the category it landed in and its hosted URL.
categorystringoptional
urlstringoptional
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.
post/api/v1/locations/{id}/media
Your API key
id *
Request body*
{
  "data": {
    "mediaByCategory": {
      "EXTERIOR": [
        {
          "url": "https://cdn.synup.com/media/1.jpg",
          "source": "agent_upload"
        }
      ]
    },
    "added": [
      {
        "category": "EXTERIOR",
        "url": "https://cdn.synup.com/media/1.jpg"
      }
    ]
  }
}