Synupv1
Criar chave
v1Recursos/Locations

Locations

Crie, leia, atualize e gerencie o ciclo de vida de arquivamento dos locais pertencentes aos seus clientes.

Retorna uma página de locais, os mais recentes primeiro. Todos os filtros são opcionais e se combinam (um local precisa corresponder a todos); para avançar para mais resultados, envie novamente o nextCursor retornado.

Listar / buscar locais

get/api/v1/locations
locations:read
Parâmetros de consulta
clientIdstringopcional
Restringe os resultados a um cliente. Quando sua chave está limitada a clientes específicos, este deve ser um deles. Procure com GET /api/v1/clients.
searchstringopcional
Busca por texto livre no nome, endereço, cidade ou telefone do local (sem diferenciar maiúsculas/minúsculas, correspondências parciais permitidas).
statusstring (all | active | archived | archival_pending | verification_pending | unapproved | requires_action)opcional
Um único grupo de status: all, active (não arquivado), archived, archival_pending, verification_pending (aprovação do Google pendente), unapproved ou requires_action. O padrão é all.
tagsarray of stringopcional
Tags internas — corresponde a um local que tenha qualquer uma destas.
categoriesarray of stringopcional
Nomes de exibição de categoria — corresponde a um local cuja categoria geral ou do Google seja qualquer uma destas.
verificationarray of string (verified | pending | unverified | unknown)opcional
Estado de verificação do Google: verified, pending, unverified ou unknown.
createdAfterstringopcional
Somente locais criados nesta data ou depois.
createdBeforestringopcional
Somente locais criados nesta data ou antes.
cursorstringopcional
Cursor de paginação do nextCursor de uma resposta anterior. Deixe vazio para a primeira página.
limitintegeropcional
Locais a retornar por página, 1–200. O padrão é 50.
Resposta
dataobjectopcional
locationsarray of objectopcional
Os locais correspondentes para esta página.
idstringopcional
Identificador único do local.
namestringopcional
O nome comercial do local.
addressstringopcional
O endereço do local (linhas de rua combinadas), ou null.
citystringopcional
Cidade.
statestringopcional
Estado ou região.
postalCodestringopcional
CEP ou código postal, ou null.
countrystringopcional
País, como código ISO-3166-1 alfa-2, ou null.
phonestringopcional
Número de telefone principal, ou null.
websitestringopcional
A URL do site do local, ou null.
storeCodestringopcional
Seu código interno de loja / referência para este local, ou null.
categorystringopcional
A categoria de exibição do local (categoria primária por publisher, se definida, senão a categoria geral), ou null.
tagsarray of stringopcional
Tags internas para organização própria — não exibidas publicamente.
labelsarray of stringopcional
Etiquetas internas para este local.
statusstring (active | archived | archival_pending | verification_pending | unapproved | requires_action)opcional
Status derivado: active, archived, archival_pending, verification_pending (aprovação do Google pendente), unapproved ou requires_action.
verificationStatusstring (verified | pending | unverified | unknown)opcional
Estado de verificação do Google: verified, pending, unverified ou unknown, ou null.
pendingChangesnumberopcional
Número de edições salvas na fila para publicação, mas ainda não sincronizadas com os diretórios conectados.
lastPublishedAtstringopcional
Quando os detalhes deste local foram sincronizados com sucesso pela última vez com um publisher, como timestamp ISO 8601, ou null.
clientIdstringopcional
ID do cliente ao qual este local pertence, ou null.
clientNamestringopcional
Nome comercial do cliente ao qual este local pertence, ou null.
createdAtstringopcional
Data de criação do local, como timestamp ISO 8601.
nextCursorstringopcional
Cursor de paginação para a próxima página, ou null quando não há mais resultados.
totalnumberopcional
Número total de locais que correspondem aos filtros, em todas as páginas.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations
Sua chave de API
clientId
search
status
tags
categories
verification
createdAfter
createdBefore
cursor
limit
{
  "data": [
    {
      "id": "loc_456",
      "name": "Acme Dental — Downtown",
      "city": "Austin",
      "state": "TX",
      "clientId": "cli_123",
      "createdAt": "2026-01-15T10:05:00.000Z"
    }
  ]
}
v1Recursos/Locations/postCriar um local

Cria um novo local para um cliente existente e o envia para publicação.

Criar um local

post/api/v1/locations
locations:write
Corpo da solicitação
clientIdstringobrigatório
ID do cliente sob o qual este local será criado. Procure com GET /api/v1/clients.
namestringobrigatório
O nome comercial do local.
countryIsostringobrigatório
Código de país ISO, ex.: US.
streetstringobrigatório
Endereço.
street1stringopcional
Endereço, linha 2.
citystringobrigatório
Cidade.
stateIsostringobrigatório
Código do estado ou região.
postalCodestringobrigatório
CEP ou código postal.
phonestringopcional
Número de telefone.
additionalPhonesarray of stringopcional
Quaisquer números de telefone adicionais além do principal.
websitestringopcional
URL do site.
categoryIdstringopcional
ID da categoria geral — consulte com GET /api/v1/locations/categories.
categoryNamestringopcional
Nome de exibição da categoria geral.
publisherCategoriesobjectopcional
Categorias por publisher, uma para cada publisher, cada uma um { id, name } obtido via GET /api/v1/locations/publisher-categories.
googleobjectopcional
idstringopcional
namestringopcional
facebookobjectopcional
idstringopcional
namestringopcional
appleobjectopcional
idstringopcional
namestringopcional
bingobjectopcional
idstringopcional
namestringopcional
additionalCategoriesarray of objectopcional
Até 9 categorias extras, cada uma um { id?, name }. Um nome isolado é aceito e seu id é resolvido a partir do catálogo de categorias, quando houver correspondência. Procure os ids você mesmo com GET /api/v1/locations/categories.
idstringopcional
namestringopcional
descriptionstringopcional
Uma breve descrição do negócio.
tagsarray of stringopcional
Tags internas para organização própria — não exibidas publicamente.
latitudenumberopcional
Latitude, em graus decimais. Derivada automaticamente do endereço, se omitida.
longitudenumberopcional
Longitude, em graus decimais. Derivada automaticamente do endereço, se omitida.
customFieldsobjectopcional
Valores de campos personalizados a definir neste local, indexados por id de campo.
Resposta
dataobjectopcional
locationIdstringopcional
ID do local recém-criado.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
422Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations
Sua chave de API
Corpo da solicitação*
{
  "data": {
    "locationId": "loc_456"
  }
}
v1Recursos/Locations/getObter um local

Retorna o perfil comercial completo de um local: endereço, horários, categorias, atributos, serviços, mídia e status de verificação.

Obter um local

get/api/v1/locations/{id}
locations:read
Parâmetros de consulta
idstringobrigatório
O local a consultar.
Resposta
dataobjectopcional
O perfil comercial completo de um local: endereço, horários, categorias, atributos, serviços, mídia e status — tudo o que update_location pode alterar, além do que create retornou.
idstringopcional
Identificador único do local.
namestringopcional
O nome comercial do local.
descriptionstringopcional
Uma descrição do negócio, ou null.
taglinestringopcional
Um breve slogan para o negócio, ou null.
storeCodestringopcional
Seu código interno de loja / referência para este local, ou null.
logoUrlstringopcional
URL da imagem do logotipo do local, ou null.
streetstringopcional
Endereço, linha 1, ou null.
street1stringopcional
Endereço, linha 2, ou null.
citystringopcional
Cidade.
statestringopcional
Estado ou região.
postalCodestringopcional
CEP ou código postal, ou null.
countrystringopcional
País, como código ISO-3166-1 alfa-2, ou null.
latitudenumberopcional
Latitude, ou null.
longitudenumberopcional
Longitude, ou null.
phonestringopcional
Número de telefone principal, ou null.
additionalPhonesarray of stringopcional
Quaisquer números de telefone adicionais além do principal.
websitestringopcional
A URL do site do local, ou null.
businessEmailstringopcional
Um e-mail de contato público para o negócio, ou null.
categoryNamestringopcional
O nome de exibição da categoria geral, ou null.
primaryCategoryDisplaystringopcional
O nome de exibição da categoria primária efetiva — por publisher (Google) se definida, senão a geral — ou null.
primaryCategoryGooglestringopcional
O id da categoria primária do Google do local (gcid), ou null.
additionalCategoriesarray of objectopcional
Até 9 categorias extras, cada uma com um id (quando resolvido) e um nome de exibição.
idstringopcional
namestringopcional
attributesarray of objectopcional
Atributos do perfil comercial do Google, como a lista armazenada de { id, value }.
idstringopcional
valueobjectopcional
O valor do atributo — um booleano para atributos sim/não, uma string para os de escolha única, ou um objeto com setValues/unsetValues para múltipla escolha.
servicesarray of objectopcional
Os serviços ou produtos que este local oferece.
namestringopcional
descriptionstringopcional
pricenumberopcional
currencystringopcional
googleServiceTypeIdstringopcional
ownerNamestringopcional
O nome do proprietário, ou null.
menuUrlstringopcional
URL do cardápio/menu do negócio, ou null.
yearEstablishednumberopcional
O ano em que o negócio foi fundado, ou null.
tagsarray of stringopcional
Tags internas para organização própria — não exibidas publicamente.
labelsarray of stringopcional
Etiquetas internas para este local.
regularHoursarray of objectopcional
A agenda semanal de horários regulares, ou null.
daystring (MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY)opcional
closedbooleanopcional
periodsarray of objectopcional
openstringopcional
closestringopcional
moreHoursarray of objectopcional
Tipos extras de horário além dos horários regulares (entrega, retirada etc.), ou null.
specialHoursarray of objectopcional
Substituições pontuais de data — fechamentos em feriados ou horários especiais de um único dia — ou null.
mediaByCategoryobjectopcional
Itens de mídia agrupados por categoria (ex.: EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Cada item tem uma url e, opcionalmente, um label, um kind (PHOTO ou VIDEO), uma source, um indicador starred e um assetKey.
clientIdstringopcional
ID do cliente ao qual este local pertence, ou null.
archivedbooleanopcional
Se o local está arquivado.
scheduledArchiveAtstringopcional
Quando o arquivamento foi solicitado (também o token usado por cancel-archive para correspondência), como timestamp ISO 8601, ou null se nenhum estiver pendente.
verificationStatusstring (verified | pending | unverified | unknown)opcional
Estado de verificação do Google: verified, pending, unverified ou unknown, ou null.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/{id}
Sua chave de API
id *
{
  "data": {
    "id": "loc_456",
    "name": "Acme Dental — Downtown",
    "description": null,
    "tagline": null,
    "storeCode": null,
    "logoUrl": null,
    "street": "123 Main St",
    "street1": null,
    "city": "Austin",
    "state": "TX",
    "postalCode": "78701",
    "country": "US",
    "latitude": 30.2672,
    "longitude": -97.7431,
    "phone": "+15125551234",
    "additionalPhones": [],
    "website": "https://acmedental.com",
    "businessEmail": null,
    "categoryName": "Dentist",
    "primaryCategoryDisplay": "Dentist",
    "primaryCategoryGoogle": "gcid:dentist",
    "additionalCategories": [],
    "attributes": [
      {
        "id": "attributes/wi_fi",
        "value": true
      }
    ],
    "services": [
      {
        "name": "Teeth Whitening",
        "description": null,
        "price": 150,
        "currency": "USD",
        "googleServiceTypeId": null
      }
    ],
    "ownerName": null,
    "menuUrl": null,
    "yearEstablished": null,
    "tags": [
      "vip"
    ],
    "labels": [],
    "regularHours": [
      {
        "day": "MONDAY",
        "closed": false,
        "periods": [
          {
            "openTime": "09:00",
            "closeTime": "17:00"
          }
        ]
      }
    ],
    "moreHours": [],
    "specialHours": [],
    "mediaByCategory": {
      "EXTERIOR": [
        {
          "url": "https://cdn.synup.com/media/1.jpg"
        }
      ]
    },
    "clientId": "cli_123",
    "archived": false,
    "scheduledArchiveAt": null,
    "verificationStatus": "verified"
  }
}
v1Recursos/Locations/patchAtualizar um local

Edita os detalhes comerciais de um local existente — endereço, categorias, atributos do perfil comercial do Google, serviços e horários. Envie apenas os campos que deseja alterar; um campo enviado substitui totalmente seu valor atual (uma string vazia limpa um campo de texto, uma lista nova completa substitui uma existente). O país não pode ser alterado após a criação. As alterações salvas são automaticamente colocadas na fila para sincronizar com os diretórios e listagens conectados.

Atualizar um local

patch/api/v1/locations/{id}
locations:write
Parâmetros de consulta
idstringobrigatório
O local a atualizar.
Corpo da solicitação
namestringopcional
O nome comercial do local.
descriptionstringopcional
Uma breve descrição do negócio.
taglinestringopcional
Um breve slogan para o negócio.
storeCodestringopcional
Seu código interno de loja / referência para este local.
logoUrlstringopcional
URL da imagem do logotipo do local.
languageCodestringopcional
O idioma principal da listagem, como um código (ex.: "en").
streetstringopcional
Endereço.
street1stringopcional
Endereço, linha 2.
citystringopcional
Cidade.
stateIsostringopcional
Estado ou região, como código ISO (ex.: "CA").
postalCodestringopcional
CEP ou código postal.
latitudenumberopcional
Latitude. Se você alterar o endereço sem também definir isso, ela é re-derivada automaticamente.
longitudenumberopcional
Longitude. Se você alterar o endereço sem também definir isso, ela é re-derivada automaticamente.
phonestringopcional
Número de telefone.
additionalPhonesarray of stringopcional
Quaisquer números de telefone adicionais além do principal.
websitestringopcional
URL do site.
businessEmailstringopcional
Um e-mail de contato público para o negócio.
categoryIdstringopcional
ID da categoria geral — consulte com GET /api/v1/locations/categories.
categoryNamestringopcional
Nome de exibição da categoria geral.
publisherCategoriesobjectopcional
Categoria PRIMÁRIA por publisher — atualmente apenas google é suportado aqui (um id e um name são ambos obrigatórios; enviar apenas um limparia a categoria). Facebook/Apple/Bing só podem ser alterados no editor de local. Procure o par id/name do google com GET /api/v1/locations/publisher-categories.
googleobjectopcional
idstringopcional
namestringopcional
additionalCategoriesarray of objectopcional
Até 9 categorias extras, cada uma um { id?, name }. Um nome isolado é aceito e seu id é resolvido a partir do catálogo de categorias, quando houver correspondência. Procure os ids você mesmo com GET /api/v1/locations/categories.
idstringopcional
namestringopcional
attributesobjectopcional
Atributos do perfil comercial do Google, como um mapa de id de atributo para valor (ex.: { "attributes/wi_fi": "free" }) — SUBSTITUI o conjunto inteiro, então leia os atuais em GET /api/v1/locations/{id} e envie de volta tudo o que deseja manter. Um id sem representação válida no Google para a categoria deste local é descartado e reportado em rejectedAttributes, em vez de falhar a solicitação inteira. Não há um endpoint que liste quais ids de atributo são válidos para uma categoria — essa é a própria referência de atributos do Business Profile do Google, não do Synup.
servicesarray of objectopcional
Os serviços ou produtos que este local oferece — substitui a lista existente.
namestringopcional
descriptionstringopcional
pricenumberopcional
currencystringopcional
googleServiceTypeIdstringopcional
ownerNamestringopcional
O nome do proprietário.
menuUrlstringopcional
URL do cardápio/menu do negócio.
yearEstablishednumberopcional
O ano em que o negócio foi fundado (ex.: 2012).
tagsarray of stringopcional
Tags internas para organização própria — não exibidas publicamente. Substitui a lista existente.
labelsarray of stringopcional
Etiquetas internas para este local. Substitui a lista existente.
regularHoursarray of objectopcional
A agenda semanal de horários regulares — substitui totalmente a agenda existente. Uma entrada por dia da semana.
daystring (MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY)opcional
closedbooleanopcional
periodsarray of objectopcional
openstringopcional
closestringopcional
moreHoursarray of objectopcional
Tipos extras de horário além dos horários regulares (entrega, retirada, happy hour etc.), substitui a lista existente.
specialHoursarray of objectopcional
Substituições pontuais de data — fechamentos em feriados ou horários especiais de um único dia — substitui a lista existente. Qualquer data do calendário funciona, não apenas feriados nomeados.
applyToPublishersarray of string (google | facebook | apple | bing)opcional
Altera esses valores apenas para publishers específicos, em vez do padrão compartilhado que todo publisher herda.
Resposta
dataobjectopcional
locationobjectopcional
O perfil comercial completo de um local: endereço, horários, categorias, atributos, serviços, mídia e status — tudo o que update_location pode alterar, além do que create retornou.
idstringopcional
Identificador único do local.
namestringopcional
O nome comercial do local.
descriptionstringopcional
Uma descrição do negócio, ou null.
taglinestringopcional
Um breve slogan para o negócio, ou null.
storeCodestringopcional
Seu código interno de loja / referência para este local, ou null.
logoUrlstringopcional
URL da imagem do logotipo do local, ou null.
streetstringopcional
Endereço, linha 1, ou null.
street1stringopcional
Endereço, linha 2, ou null.
citystringopcional
Cidade.
statestringopcional
Estado ou região.
postalCodestringopcional
CEP ou código postal, ou null.
countrystringopcional
País, como código ISO-3166-1 alfa-2, ou null.
latitudenumberopcional
Latitude, ou null.
longitudenumberopcional
Longitude, ou null.
phonestringopcional
Número de telefone principal, ou null.
additionalPhonesarray of stringopcional
Quaisquer números de telefone adicionais além do principal.
websitestringopcional
A URL do site do local, ou null.
businessEmailstringopcional
Um e-mail de contato público para o negócio, ou null.
categoryNamestringopcional
O nome de exibição da categoria geral, ou null.
primaryCategoryDisplaystringopcional
O nome de exibição da categoria primária efetiva — por publisher (Google) se definida, senão a geral — ou null.
primaryCategoryGooglestringopcional
O id da categoria primária do Google do local (gcid), ou null.
additionalCategoriesarray of objectopcional
Até 9 categorias extras, cada uma com um id (quando resolvido) e um nome de exibição.
idstringopcional
namestringopcional
attributesarray of objectopcional
Atributos do perfil comercial do Google, como a lista armazenada de { id, value }.
idstringopcional
valueobjectopcional
O valor do atributo — um booleano para atributos sim/não, uma string para os de escolha única, ou um objeto com setValues/unsetValues para múltipla escolha.
servicesarray of objectopcional
Os serviços ou produtos que este local oferece.
namestringopcional
descriptionstringopcional
pricenumberopcional
currencystringopcional
googleServiceTypeIdstringopcional
ownerNamestringopcional
O nome do proprietário, ou null.
menuUrlstringopcional
URL do cardápio/menu do negócio, ou null.
yearEstablishednumberopcional
O ano em que o negócio foi fundado, ou null.
tagsarray of stringopcional
Tags internas para organização própria — não exibidas publicamente.
labelsarray of stringopcional
Etiquetas internas para este local.
regularHoursarray of objectopcional
A agenda semanal de horários regulares, ou null.
daystring (MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY)opcional
closedbooleanopcional
periodsarray of objectopcional
moreHoursarray of objectopcional
Tipos extras de horário além dos horários regulares (entrega, retirada etc.), ou null.
specialHoursarray of objectopcional
Substituições pontuais de data — fechamentos em feriados ou horários especiais de um único dia — ou null.
mediaByCategoryobjectopcional
Itens de mídia agrupados por categoria (ex.: EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Cada item tem uma url e, opcionalmente, um label, um kind (PHOTO ou VIDEO), uma source, um indicador starred e um assetKey.
clientIdstringopcional
ID do cliente ao qual este local pertence, ou null.
archivedbooleanopcional
Se o local está arquivado.
scheduledArchiveAtstringopcional
Quando o arquivamento foi solicitado (também o token usado por cancel-archive para correspondência), como timestamp ISO 8601, ou null se nenhum estiver pendente.
verificationStatusstring (verified | pending | unverified | unknown)opcional
Estado de verificação do Google: verified, pending, unverified ou unknown, ou null.
rejectedAttributesarray of stringopcional
Ids de atributos da solicitação que NÃO foram gravados — ou porque têm um campo dedicado próprio, ou porque seu valor não tinha uma representação válida no Google. Presente apenas quando ao menos um foi rejeitado.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
422Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
patch/api/v1/locations/{id}
Sua chave de API
id *
Corpo da solicitação
{
  "data": {
    "location": {
      "id": "loc_456",
      "name": "Acme Dental — Downtown",
      "tagline": "Gentle care, on time",
      "city": "Austin",
      "state": "TX",
      "clientId": "cli_123"
    },
    "rejectedAttributes": []
  }
}
v1Recursos/Locations/getListar os serviços de um local

Os serviços do Perfil da Empresa no Google oferecidos por este local.

Listar os serviços de um local

get/api/v1/locations/{id}/services
locations:read
Parâmetros de consulta
idstringobrigatório
Resposta
dataobjectopcional
servicesarray of objectopcional
namestringobrigatório
Nome do serviço.
descriptionstringopcional
Descrição do serviço.
pricenumberopcional
Preço do serviço.
currencystringopcional
Código da moeda do preço.
googleServiceTypeIdstringopcional
ID de tipo de serviço estruturado do Google, se houver correspondência.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/{id}/services
Sua chave de API
id *
{
  "data": {
    "services": [
      {
        "name": "Teeth Whitening",
        "description": null,
        "price": 150,
        "currency": "USD",
        "googleServiceTypeId": null
      }
    ]
  }
}
v1Recursos/Locations/postAdicionar um serviço

Adiciona um serviço à lista do local e republica a lista completa no Google (o Google não tem adição atômica — cada salvamento substitui todo o array).

Adicionar um serviço

post/api/v1/locations/{id}/services
locations:write
Parâmetros de consulta
idstringobrigatório
Corpo da solicitação
namestringobrigatório
Nome do serviço.
descriptionstringopcional
Descrição do serviço.
pricenumberopcional
Preço do serviço.
currencystringopcional
Código da moeda do preço.
googleServiceTypeIdstringopcional
ID de tipo de serviço estruturado do Google, se houver correspondência.
Resposta
dataobjectopcional
servicesarray of objectopcional
namestringobrigatório
Nome do serviço.
descriptionstringopcional
Descrição do serviço.
pricenumberopcional
Preço do serviço.
currencystringopcional
Código da moeda do preço.
googleServiceTypeIdstringopcional
ID de tipo de serviço estruturado do Google, se houver correspondência.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/{id}/services
Sua chave de API
id *
Corpo da solicitação*
{
  "data": {
    "services": [
      {
        "name": "Teeth Whitening",
        "description": null,
        "price": 150,
        "currency": "USD",
        "googleServiceTypeId": null
      }
    ]
  }
}
v1Recursos/Locations/deleteRemover um serviço

Remove um serviço pelo nome e republica a lista restante no Google.

Remover um serviço

delete/api/v1/locations/{id}/services
locations:write
Parâmetros de consulta
idstringobrigatório
namestringobrigatório
Nome exato do serviço a remover.
Resposta
dataobjectopcional
servicesarray of objectopcional
namestringobrigatório
Nome do serviço.
descriptionstringopcional
Descrição do serviço.
pricenumberopcional
Preço do serviço.
currencystringopcional
Código da moeda do preço.
googleServiceTypeIdstringopcional
ID de tipo de serviço estruturado do Google, se houver correspondência.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
delete/api/v1/locations/{id}/services
Sua chave de API
id *
name *
{
  "data": {
    "services": []
  }
}
v1Recursos/Locations/postAgendar o arquivamento de um local

AGENDA um local para arquivar no final do período de faturamento atual. Até então, o local permanece totalmente ativo, faturável e continua contando para o limite de locais do plano — nada é excluído, e o agendamento não libera espaço para adicionar outro local até que o arquivamento realmente ocorra. Chame cancel-archive para cancelar isso antes que aconteça, ou reactivate depois para trazer o local de volta.

Agendar o arquivamento de um local

post/api/v1/locations/{id}/archive
locations:write
Parâmetros de consulta
idstringobrigatório
O local a agendar para arquivamento.
Resposta
dataobjectopcional
scheduledbooleanopcional
Sempre true em caso de sucesso.
scheduledArchiveAtstringopcional
Quando o arquivamento foi solicitado (também o token usado por cancel-archive para correspondência), como timestamp ISO 8601, ou null se nenhum estiver pendente.
archiveAtstringopcional
Quando o arquivamento agendado realmente ocorrerá — o limite de faturamento da agência. Null se a agência não tiver nenhum.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
409A solicitação entra em conflito com o estado atual do recurso — por exemplo, alterar o e-mail ou telefone de um destinatário que já recebeu uma mensagem, ou um convite de equipe que já foi aceito (ou que ainda não foi aceito).
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/{id}/archive
Sua chave de API
id *
{
  "data": {
    "scheduled": true,
    "scheduledArchiveAt": "2026-02-01T00:00:00.000Z",
    "archiveAt": "2026-03-01T00:00:00.000Z"
  }
}
v1Recursos/Locations/postCancelar um arquivamento agendado

Cancela um arquivamento de local pendente, de modo que um local agendado para arquivar no final do período de faturamento continue normalmente. Só funciona enquanto o arquivamento ainda estiver pendente — um local que já foi arquivado precisa ser reativado.

Cancelar um arquivamento agendado

post/api/v1/locations/{id}/cancel-archive
locations:write
Parâmetros de consulta
idstringobrigatório
O local cujo arquivamento pendente deve ser cancelado.
Resposta
dataobjectopcional
cancelledbooleanopcional
Sempre true em caso de sucesso.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
409A solicitação entra em conflito com o estado atual do recurso — por exemplo, alterar o e-mail ou telefone de um destinatário que já recebeu uma mensagem, ou um convite de equipe que já foi aceito (ou que ainda não foi aceito).
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/{id}/cancel-archive
Sua chave de API
id *
{
  "data": {
    "cancelled": true
  }
}
v1Recursos/Locations/postReativar um local arquivado

Restaura um local já arquivado — e todas as listagens vinculadas a ele — e limpa qualquer agendamento de arquivamento pendente. Um local que não está arquivado no momento é um sucesso sem efeito (no-op), não um erro.

Reativar um local arquivado

post/api/v1/locations/{id}/reactivate
locations:write
Parâmetros de consulta
idstringobrigatório
O local a reativar.
Resposta
dataobjectopcional
archivedbooleanopcional
Se o local está arquivado.
cancelledScheduledPostsnumberopcional
Número de publicações agendadas canceladas como parte da reativação a partir de um estado arquivado, se houver.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/{id}/reactivate
Sua chave de API
id *
{
  "data": {
    "archived": false,
    "cancelledScheduledPosts": 0
  }
}
v1Recursos/Locations/getObter resumo de localizações

Retorna a contagem agregada de localizações de toda a sua agência (ou de um cliente), detalhada por status, nível de pacote e status de verificação.

Obter resumo de localizações

get/api/v1/locations/summary
locations:read
Parâmetros de consulta
clientIdstringopcional
Limita às localizações de um cliente. Se omitido, resume todas as localizações que sua chave pode ver. Procure com GET /api/v1/clients.
tagsstringopcional
Limita a localizações com qualquer uma destas tags internas separadas por vírgula.
Resposta
dataobjectopcional
totalnumberopcional
Número total de localizações correspondentes.
byStatusobjectopcional
Contagem de localizações agrupada por status.
byVerificationobjectopcional
Contagem de localizações agrupada por status de verificação.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/summary
Sua chave de API
clientId
tags
{
  "data": {
    "total": 12,
    "byStatus": {
      "approved": 10,
      "pending_verification": 1,
      "archival_pending": 1
    },
    "byVerification": {
      "verified": 9,
      "pending": 1,
      "unknown": 2
    }
  }
}
v1Recursos/Locations/postCriar uma tag

Cria uma nova tag interna, associada a um cliente.

Criar uma tag

post/api/v1/locations/tags
locations:write
Corpo da solicitação
clientIdstringobrigatório
O cliente ao qual esta tag pertence. Procure com GET /api/v1/clients.
namestringobrigatório
O nome da tag.
Resposta
dataobjectopcional
idstringopcional
Identificador único da tag recém-criada.
namestringopcional
O nome da tag.
clientIdstringopcional
O cliente ao qual esta tag pertence. Procure com GET /api/v1/clients.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/tags
Sua chave de API
Corpo da solicitação*
{
  "data": {
    "id": "tag_789",
    "name": "VIP",
    "clientId": "cli_123"
  }
}
v1Recursos/Locations/deleteExcluir uma tag

Exclui uma tag interna. Isso não exclui as localizações às quais ela foi aplicada. locationsUnassigned na resposta informa quantos locais perderam esta tag.

Excluir uma tag

delete/api/v1/locations/tags/{id}
locations:write
Parâmetros de consulta
idstringobrigatório
ID da tag a ser excluída.
Resposta
dataobjectopcional
locationsUnassignednumberopcional
Número de locais que tinham esta tag — todos perderam a associação quando a tag foi excluída.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
delete/api/v1/locations/tags/{id}
Sua chave de API
id *
{
  "data": {
    "locationsUnassigned": 3
  }
}
v1Recursos/Locations/postAdicionar localizações a uma tag

Aplica uma tag existente a uma ou mais localizações.

Adicionar localizações a uma tag

post/api/v1/locations/tags/{id}/locations
locations:write
Parâmetros de consulta
idstringobrigatório
ID da tag.
Corpo da solicitação
locationIdsarray of stringobrigatório
IDs das localizações a serem marcadas.
Resposta
dataobjectopcional
addedarray of stringopcional
IDs das localizações às quais a tag foi realmente adicionada.
skippedarray of stringopcional
IDs das localizações ignoradas por já possuírem esta tag.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/tags/{id}/locations
Sua chave de API
id *
Corpo da solicitação*
{
  "data": {
    "added": [
      "loc_456"
    ],
    "skipped": []
  }
}
v1Recursos/Locations/deleteRemover uma localização de uma tag

Desassocia uma única localização, pelo id, de uma tag.

Remover uma localização de uma tag

delete/api/v1/locations/tags/{id}/locations
locations:write
Parâmetros de consulta
idstringobrigatório
ID da tag.
locationIdstringobrigatório
ID da localização a ser desmarcada.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
delete/api/v1/locations/tags/{id}/locations
Sua chave de API
id *
locationId *
{}
v1Recursos/Locations/getBuscar na taxonomia de categorias gerais

Pesquisa na taxonomia geral de categorias de negócio (reflete a do Google, milhares de entradas) — dados de referência globais, não restritos à sua agência. O id retornado é um id de Category para definir como categoryId de um local ao criar ou atualizar. Para o catálogo próprio de um publisher específico, use GET /api/v1/locations/publisher-categories. Omita search por completo para listar toda a taxonomia, sem limite.

Buscar na taxonomia de categorias gerais

get/api/v1/locations/categories
locations:read
Parâmetros de consulta
searchstringopcional
Substring do nome da categoria a corresponder. Omita para listar toda a taxonomia, sem limite (limit é ignorado nesse caso).
limitintegeropcional
Linhas a retornar, 1–100. O padrão é 25.
Resposta
dataobjectopcional
categoriesarray of objectopcional
As categorias gerais correspondentes.
idstringopcional
O Category id — envie isso como categoryId na criação ou atualização.
namestringopcional
O nome de exibição da categoria.
Erros
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/categories
Sua chave de API
search
limit
{
  "data": {
    "categories": [
      {
        "id": "cat_dentist",
        "name": "Dentist"
      },
      {
        "id": "cat_orthodontist",
        "name": "Orthodontist"
      }
    ]
  }
}
v1Recursos/Locations/getBuscar no catálogo de categorias próprio de um publisher

Pesquisa no catálogo próprio (GABF) de um publisher — dados de referência globais, não restritos à sua agência. Use o id retornado para publisherCategories de um local ao criar ou atualizar. Omita query por completo para listar todo o catálogo do publisher, sem limite.

Buscar no catálogo de categorias próprio de um publisher

get/api/v1/locations/publisher-categories
locations:read
Parâmetros de consulta
publisherstring (google | facebook | apple | bing)obrigatório
Em qual catálogo de publisher buscar: google, apple, bing ou facebook.
querystringopcional
Substring do nome da categoria a corresponder. Omita para listar todo o catálogo do publisher, sem limite.
countrystringopcional
País em ISO-3166-1 alfa-2 — recomendado para apple, cujas categorias são específicas por país.
Resposta
dataobjectopcional
categoriesarray of objectopcional
As categorias correspondentes no catálogo próprio do publisher solicitado.
idstringopcional
O id de categoria próprio do publisher — envie isso em publisherCategories na criação ou atualização. Null é possível para uma entrada de catálogo sem id.
displayNamestringopcional
O nome de exibição da categoria no catálogo daquele publisher.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/publisher-categories
Sua chave de API
publisher *
query
country
{
  "data": {
    "categories": [
      {
        "id": "gcid:dentist",
        "displayName": "Dentist"
      }
    ]
  }
}
v1Recursos/Locations/getListar locais com sua mídia

Lista locais junto com suas fotos, as mais recentes primeiro — mesmos filtros de GET /api/v1/locations. Use isso para perguntas como "quais locais não têm fotos?", em vez de GET /api/v1/media, que retorna a mídia de apenas UM local por vez.

Listar locais com sua mídia

get/api/v1/locations/media
media:read
Parâmetros de consulta
clientIdstringopcional
Limita aos locais de um cliente. Obrigatório quando sua chave está limitada a clientes específicos — não há um campo de cliente por linha aqui para verificar um resultado combinado e sem limitação, então um clientId omitido é rejeitado em vez de adivinhado. Procure com GET /api/v1/clients.
searchstringopcional
Busca por texto livre no nome, endereço, cidade ou telefone do local (sem diferenciar maiúsculas/minúsculas, correspondências parciais permitidas).
statusstring (all | active | archived | archival_pending | verification_pending | unapproved | requires_action)opcional
Um único grupo de status: all, active (não arquivado), archived, archival_pending, verification_pending (aprovação do Google pendente), unapproved ou requires_action. O padrão é all.
tagsarray of stringopcional
Tags internas — corresponde a um local que tenha qualquer uma destas.
categoriesarray of stringopcional
Nomes de exibição de categoria — corresponde a um local cuja categoria geral ou do Google seja qualquer uma destas.
verificationarray of string (verified | pending | unverified | unknown)opcional
Estado de verificação do Google: verified, pending, unverified ou unknown.
createdAfterstringopcional
Somente locais criados nesta data ou depois.
createdBeforestringopcional
Somente locais criados nesta data ou antes.
cursorstringopcional
Cursor de paginação do nextCursor de uma resposta anterior. Deixe vazio para a primeira página.
limitintegeropcional
Locais a retornar por página, 1–100. O padrão é 100.
Resposta
dataobjectopcional
locationsarray of objectopcional
Os locais correspondentes para esta página.
idstringopcional
Identificador único do local.
namestringopcional
O nome comercial do local.
logoUrlstringopcional
URL do logotipo do local, ou null.
mediaByCategoryobjectopcional
Itens de mídia agrupados por categoria (ex.: EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Cada item tem uma url e, opcionalmente, um label, um kind (PHOTO ou VIDEO), uma source, um indicador starred e um assetKey.
totalnumberopcional
Número total de fotos em todas as categorias para este local.
nextCursorstringopcional
Cursor de paginação para a próxima página, ou null quando não há mais resultados.
totalnumberopcional
Número total de locais que correspondem aos filtros, em todas as páginas.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
get/api/v1/locations/media
Sua chave de API
clientId
search
status
tags
categories
verification
createdAfter
createdBefore
cursor
limit
{
  "data": {
    "locations": [
      {
        "id": "loc_456",
        "name": "Acme Dental — Downtown",
        "logoUrl": null,
        "mediaByCategory": {
          "EXTERIOR": [
            {
              "url": "https://cdn.synup.com/media/1.jpg"
            }
          ]
        },
        "total": 1
      }
    ],
    "nextCursor": null,
    "total": 1
  }
}
v1Recursos/Locations/postEnviar fotos para um local

Adiciona uma ou mais fotos a um local, em uma determinada categoria. Informe cada imagem como uma URL https pública (buscada e re-hospedada) ou como bytes base64. Apenas imagens são suportadas (jpeg, png, gif, webp), com máximo de 5 MB cada. A categoria LOGO guarda um único logotipo — enviar para LOGO substitui o atual. Toda outra categoria apenas acrescenta. As fotos salvas são automaticamente colocadas na fila para publicação no Google.

Enviar fotos para um local

post/api/v1/locations/{id}/media
locations:write
Parâmetros de consulta
idstringobrigatório
O local ao qual adicionar fotos.
Corpo da solicitação
categorystring (COVER | PROFILE | LOGO | EXTERIOR | INTERIOR | PRODUCT | FOOD_AND_DRINK | MENU | AT_WORK | TEAMS | ROOMS | COMMON_AREA | ADDITIONAL)obrigatório
A categoria de foto à qual adicionar. LOGO substitui o logotipo atual; toda outra categoria apenas acrescenta.
imagesarray of objectobrigatório
Uma ou mais imagens a adicionar. Cada uma precisa de um url ou base64.
urlstringopcional
Uma URL https pública para a imagem — ela é buscada e re-hospedada.
base64stringopcional
Os bytes da imagem em base64 (um prefixo de URL data: é aceito). Use isso em vez de url quando você tiver os bytes.
labelstringopcional
Legenda/rótulo opcional para a foto.
Resposta
dataobjectopcional
mediaByCategoryobjectopcional
Itens de mídia agrupados por categoria (ex.: EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Cada item tem uma url e, opcionalmente, um label, um kind (PHOTO ou VIDEO), uma source, um indicador starred e um assetKey.
addedarray of objectopcional
A(s) foto(s) que foram realmente adicionadas, cada uma com a categoria em que ficou e sua URL hospedada.
categorystringopcional
urlstringopcional
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
422Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
post/api/v1/locations/{id}/media
Sua chave de API
id *
Corpo da solicitação*
{
  "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"
      }
    ]
  }
}
v1Recursos/Locations/deleteExcluir as fotos de um local

Remove fotos de um local. Envie urls para excluir fotos específicas, ou category para limpar uma categoria inteira. O logotipo nunca pode ser excluído por este endpoint — nem por url, nem por category — envie uma nova imagem LOGO para substituí-lo em vez disso. Isso remove as fotos no aplicativo; não as exclui do Google.

Excluir as fotos de um local

delete/api/v1/locations/{id}/media
locations:write
Parâmetros de consulta
idstringobrigatório
O local do qual remover fotos.
Corpo da solicitação
urlsarray of stringopcional
URLs de fotos específicas a remover (do mediaByCategory de um local).
categorystring (COVER | PROFILE | EXTERIOR | INTERIOR | PRODUCT | FOOD_AND_DRINK | MENU | AT_WORK | TEAMS | ROOMS | COMMON_AREA | ADDITIONAL)opcional
Limpa todas as fotos nesta categoria. LOGO não é um valor permitido — o logotipo não pode ser excluído.
Resposta
dataobjectopcional
mediaByCategoryobjectopcional
Itens de mídia agrupados por categoria (ex.: EXTERIOR, INTERIOR, FOOD_AND_DRINK, LOGO, TEAMS). Cada item tem uma url e, opcionalmente, um label, um kind (PHOTO ou VIDEO), uma source, um indicador starred e um assetKey.
Erros
400Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
401Chave de API ausente, inválida, expirada ou revogada.
403A chave não tem a permissão exigida, ou não está autorizada para este cliente/local.
404O recurso não foi encontrado, ou não pertence à sua agência.
422Falta um parâmetro obrigatório na solicitação, ou ela é inválida de outra forma.
429Muitas solicitações. Tente novamente após o número de segundos indicado no cabeçalho Retry-After.
delete/api/v1/locations/{id}/media
Sua chave de API
id *
Corpo da solicitação
{
  "data": {
    "mediaByCategory": {
      "EXTERIOR": []
    },
    "removed": [
      "https://cdn.synup.com/media/1.jpg"
    ]
  }
}