Synupv1
Criar chave
v1Recursos/Post Ideas

Post Ideas

Leia, crie e publique ideias de publicação em rascunho aguardando revisão, e publique-as como publicações reais.

Retorna ideias de publicação em um de três modos: passe locationId para a grade paginada de um único local; passe clientId com scope=locations para o resumo das ideias em nível de local em todos os locais de um cliente; ou passe clientId com scope=brand para as ideias em nível de marca desse cliente.

Listar ideias de publicação

get/api/v1/post-ideas
ideas:read
Parâmetros de consulta
locationIdstringopcional
Lista ideias para este local (modo paginado).
clientIdstringopcional
Lista ideias para este cliente. Requer scope.
scopestring (locations | brand)opcional
Qual conjunto de ideias em nível de cliente retornar: locations (resumo dos locais do cliente) ou brand (ideias em nível de marca).
bucketstring (idea | holiday | calendar | series)opcional
Restringe os resultados a um bucket (somente no modo locationId).
statusstringopcional
Restringe os resultados a um status, ou "archived" para listar ideias arquivadas em vez disso (somente no modo locationId).
seriesIdstringopcional
Restringe os resultados a ideias nesta série de conteúdo (somente no modo locationId).
searchstringopcional
Correspondência sem diferenciar maiúsculas/minúsculas com o título da ideia (somente no modo locationId).
pageintegeropcional
Número da página, começando em 1. O padrão é 1 (somente no modo locationId).
perPageintegeropcional
Resultados por página, até 50. O padrão é 20 (somente no modo locationId).
includeRejectedbooleanopcional
Inclui ideias rejeitadas durante a aprovação. O padrão é false (somente nos modos clientId).
Resposta
dataobjectopcional
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/post-ideas
Sua chave de API
locationId
clientId
scope
bucket
status
seriesId
search
page
perPage
includeRejected
{
  "data": {
    "rows": [
      {
        "id": "cm_idea_abc123",
        "agencyId": "cm_agency_1",
        "locationId": "cm_loc_1",
        "clientLocationId": "cm_loc_1",
        "clientId": null,
        "brandName": null,
        "agentMeta": null,
        "title": "Spotlight our new patient special",
        "content": "Book this month and get 20% off your first cleaning!",
        "imagePrompt": null,
        "imageUrl": null,
        "type": "announcement",
        "status": "draft",
        "bucket": "idea",
        "platforms": [
          "google",
          "facebook"
        ],
        "seriesId": null,
        "scheduledDate": null,
        "scheduledTime": null,
        "observanceName": null,
        "observanceDate": null,
        "generationBatchId": null,
        "generationJobId": null,
        "isUserGenerated": true,
        "source": "os",
        "externalId": "cm_idea_abc123",
        "reviewStatus": null,
        "archived": false,
        "archivedAt": null,
        "createdAt": "2026-01-20T09:00:00.000Z",
        "updatedAt": "2026-01-20T09:00:00.000Z"
      }
    ],
    "total": 1,
    "page": 1,
    "perPage": 20,
    "counts": [
      {
        "bucket": "idea",
        "_count": {
          "id": 4
        }
      }
    ]
  }
}
v1Recursos/Post Ideas/postCriar uma ideia de publicação

Cria (ou, para um externalId repetido, atualiza) uma ideia de publicação em rascunho, aguardando revisão ou pronta para publicar.

Criar uma ideia de publicação

post/api/v1/post-ideas
ideas:write
Corpo da solicitação
locationIdstringopcional
O local para o qual esta ideia se destina, ou omita para uma ideia em nível de marca.
clientIdstringopcional
O cliente para o qual esta ideia se destina (ideias em nível de marca).
titlestringobrigatório
O título da ideia. Obrigatório na criação.
contentstringopcional
A legenda/conteúdo do corpo da ideia.
externalIdstringobrigatório
Um id estável que você controla — repetir uma criação com o mesmo externalId atualiza a ideia existente em vez de duplicá-la. Obrigatório na criação.
originstring (channel | routine | os_button)obrigatório
De onde esta ideia está vindo: channel, routine ou os_button. Obrigatório na criação.
typestring (announcement | offer | tip | showcase | story | event)opcional
Tipo de ideia.
bucketstring (idea | holiday | calendar | series)opcional
Em qual bucket da grade a ideia se encontra.
platformsarray of stringopcional
Plataformas para as quais esta ideia se destina.
imageUrlstringopcional
URL de uma imagem para anexar à ideia.
imagePromptstringopcional
O prompt usado para gerar a imagem da ideia.
seriesIdstringopcional
ID da série de conteúdo à qual anexar esta ideia.
scheduledDatestringopcional
Data planejada de publicação (YYYY-MM-DD).
scheduledTimestringopcional
Horário planejado de publicação.
generationJobIdstringopcional
ID do job de geração por IA que produziu esta ideia, se houver.
Resposta
dataobjectopcional
idstringopcional
Identificador único da ideia de publicação.
createdbooleanopcional
Se esta chamada criou uma nova ideia (false se uma ideia com este externalId já existia e foi atualizada em vez disso).
reviewStatusstringopcional
Portão de aprovação: null (sem portão), pending, approved ou rejected.
statusstringopcional
Status da ideia: draft, published ou archived.
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.
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/post-ideas
Sua chave de API
Corpo da solicitação*
{
  "data": {
    "id": "cm_idea_abc123",
    "created": true,
    "reviewStatus": null,
    "status": "draft"
  }
}
v1Recursos/Post Ideas/getObter uma ideia de publicação

Retorna uma única ideia de publicação. id aceita seu próprio id ou o externalId com o qual foi criada.

Obter uma ideia de publicação

get/api/v1/post-ideas/{id}
ideas:read
Parâmetros de consulta
idstringobrigatório
A ideia de publicação a ser consultada — seu id ou externalId.
Resposta
dataobjectopcional
idstringopcional
Identificador único da ideia de publicação.
locationIdstringopcional
ID do local ao qual esta ideia pertence, ou null para uma ideia em nível de marca.
clientLocationIdstringopcional
ID do registro de local resolvido, ou null.
clientIdstringopcional
ID do cliente ao qual esta ideia pertence (ideias em nível de marca), ou null.
brandNamestringopcional
Nome de exibição do perfil da marca, para ideias em nível de marca, ou null.
titlestringopcional
O título da ideia.
contentstringopcional
A legenda/conteúdo do corpo da ideia.
imageUrlstringopcional
URL da imagem da ideia, ou null.
imagePromptstringopcional
O prompt usado para gerar a imagem da ideia, ou null.
typestring (announcement | offer | tip | showcase | story | event)opcional
Tipo de ideia: announcement, offer, tip, showcase, story ou event.
statusstring (draft | published | archived)opcional
Status da ideia: draft, published ou archived.
bucketstring (idea | holiday | calendar | series)opcional
Em qual bucket da grade a ideia se encontra: idea, holiday, calendar ou series.
platformsarray of stringopcional
Plataformas para as quais esta ideia se destina.
seriesIdstringopcional
ID da série de conteúdo à qual esta ideia pertence, ou null.
scheduledDatestringopcional
Data planejada de publicação (YYYY-MM-DD), ou null.
scheduledTimestringopcional
Horário planejado de publicação, ou null.
externalIdstringopcional
id estável com o qual esta ideia foi criada, se veio de uma fonte externa.
sourcestring (os | agent)opcional
De onde a ideia veio: os (criada no Synup) ou agent (enviada por um agente de IA).
reviewStatusstring (pending | approved | rejected)opcional
Portão de aprovação: null (sem portão), pending, approved ou rejected.
generationJobIdstringopcional
ID do job de geração por IA que produziu esta ideia, se houver, ou null.
isUserGeneratedbooleanopcional
Se uma pessoa (em vez de um agente) criou esta ideia.
archivedbooleanopcional
Se esta ideia foi arquivada.
archivedAtstringopcional
Quando esta ideia foi arquivada, como timestamp ISO 8601, ou null.
createdAtstringopcional
Quando esta ideia foi criada, como timestamp ISO 8601.
updatedAtstringopcional
Quando esta ideia foi atualizada por último, como timestamp ISO 8601.
locationNamestringopcional
Nome de exibição do local da ideia. Presente apenas ao listar as ideias em nível de local de um cliente.
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/post-ideas/{id}
Sua chave de API
id *
{
  "data": {
    "id": "cm_idea_abc123",
    "agencyId": "cm_agency_1",
    "locationId": "cm_loc_1",
    "clientLocationId": "cm_loc_1",
    "clientId": null,
    "brandName": null,
    "agentMeta": null,
    "title": "Spotlight our new patient special",
    "content": "Book this month and get 20% off your first cleaning!",
    "imagePrompt": null,
    "imageUrl": null,
    "type": "announcement",
    "status": "draft",
    "bucket": "idea",
    "platforms": [
      "google",
      "facebook"
    ],
    "seriesId": null,
    "scheduledDate": null,
    "scheduledTime": null,
    "observanceName": null,
    "observanceDate": null,
    "generationBatchId": null,
    "generationJobId": null,
    "isUserGenerated": true,
    "source": "os",
    "externalId": "cm_idea_abc123",
    "reviewStatus": null,
    "archived": false,
    "archivedAt": null,
    "createdAt": "2026-01-20T09:00:00.000Z",
    "updatedAt": "2026-01-20T09:00:00.000Z"
  }
}
v1Recursos/Post Ideas/patchAtualizar uma ideia de publicação

Atualiza os campos editáveis de uma ideia de publicação. id aceita seu próprio id ou o externalId com o qual foi criada.

Atualizar uma ideia de publicação

patch/api/v1/post-ideas/{id}
ideas:write
Parâmetros de consulta
idstringobrigatório
A ideia de publicação a ser atualizada — seu id ou externalId.
Corpo da solicitação
titlestringopcional
O título da ideia. Obrigatório na criação.
contentstringopcional
A legenda/conteúdo do corpo da ideia.
imageUrlstringopcional
URL de uma imagem para anexar à ideia.
imagePromptstringopcional
O prompt usado para gerar a imagem da ideia.
typestring (announcement | offer | tip | showcase | story | event)opcional
Tipo de ideia.
statusstring (draft | published | archived)opcional
Status da ideia.
platformsarray of stringopcional
Plataformas para as quais esta ideia se destina.
scheduledDatestringopcional
Data planejada de publicação (YYYY-MM-DD).
scheduledTimestringopcional
Horário planejado de publicação.
Resposta
dataobjectopcional
idstringopcional
Identificador único da ideia de publicação.
locationIdstringopcional
ID do local ao qual esta ideia pertence, ou null para uma ideia em nível de marca.
clientLocationIdstringopcional
ID do registro de local resolvido, ou null.
clientIdstringopcional
ID do cliente ao qual esta ideia pertence (ideias em nível de marca), ou null.
brandNamestringopcional
Nome de exibição do perfil da marca, para ideias em nível de marca, ou null.
titlestringopcional
O título da ideia.
contentstringopcional
A legenda/conteúdo do corpo da ideia.
imageUrlstringopcional
URL da imagem da ideia, ou null.
imagePromptstringopcional
O prompt usado para gerar a imagem da ideia, ou null.
typestring (announcement | offer | tip | showcase | story | event)opcional
Tipo de ideia: announcement, offer, tip, showcase, story ou event.
statusstring (draft | published | archived)opcional
Status da ideia: draft, published ou archived.
bucketstring (idea | holiday | calendar | series)opcional
Em qual bucket da grade a ideia se encontra: idea, holiday, calendar ou series.
platformsarray of stringopcional
Plataformas para as quais esta ideia se destina.
seriesIdstringopcional
ID da série de conteúdo à qual esta ideia pertence, ou null.
scheduledDatestringopcional
Data planejada de publicação (YYYY-MM-DD), ou null.
scheduledTimestringopcional
Horário planejado de publicação, ou null.
externalIdstringopcional
id estável com o qual esta ideia foi criada, se veio de uma fonte externa.
sourcestring (os | agent)opcional
De onde a ideia veio: os (criada no Synup) ou agent (enviada por um agente de IA).
reviewStatusstring (pending | approved | rejected)opcional
Portão de aprovação: null (sem portão), pending, approved ou rejected.
generationJobIdstringopcional
ID do job de geração por IA que produziu esta ideia, se houver, ou null.
isUserGeneratedbooleanopcional
Se uma pessoa (em vez de um agente) criou esta ideia.
archivedbooleanopcional
Se esta ideia foi arquivada.
archivedAtstringopcional
Quando esta ideia foi arquivada, como timestamp ISO 8601, ou null.
createdAtstringopcional
Quando esta ideia foi criada, como timestamp ISO 8601.
updatedAtstringopcional
Quando esta ideia foi atualizada por último, como timestamp ISO 8601.
locationNamestringopcional
Nome de exibição do local da ideia. Presente apenas ao listar as ideias em nível de local de um cliente.
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.
patch/api/v1/post-ideas/{id}
Sua chave de API
id *
Corpo da solicitação
{
  "data": {
    "id": "cm_idea_abc123",
    "agencyId": "cm_agency_1",
    "locationId": "cm_loc_1",
    "clientLocationId": "cm_loc_1",
    "clientId": null,
    "brandName": null,
    "agentMeta": null,
    "title": "Spotlight our new patient special (updated)",
    "content": "Book this month and get 25% off your first cleaning!",
    "imagePrompt": null,
    "imageUrl": null,
    "type": "announcement",
    "status": "draft",
    "bucket": "idea",
    "platforms": [
      "google",
      "facebook"
    ],
    "seriesId": null,
    "scheduledDate": null,
    "scheduledTime": null,
    "observanceName": null,
    "observanceDate": null,
    "generationBatchId": null,
    "generationJobId": null,
    "isUserGenerated": true,
    "source": "os",
    "externalId": "cm_idea_abc123",
    "reviewStatus": null,
    "archived": false,
    "archivedAt": null,
    "createdAt": "2026-01-20T09:00:00.000Z",
    "updatedAt": "2026-01-20T09:05:00.000Z"
  }
}
v1Recursos/Post Ideas/deleteArquivar uma ideia de publicação

Exclui de forma reversível (arquiva) uma ideia de publicação. id aceita seu próprio id ou o externalId com o qual foi criada.

Arquivar uma ideia de publicação

delete/api/v1/post-ideas/{id}
ideas:write
Parâmetros de consulta
idstringobrigatório
A ideia de publicação a ser arquivada — seu id ou externalId.
Resposta
dataobjectopcional
idstringopcional
Identificador único da ideia de publicação.
archivedbooleanopcional
Se esta ideia foi arquivada.
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/post-ideas/{id}
Sua chave de API
id *
{
  "data": {
    "id": "cm_idea_abc123",
    "archived": true
  }
}
v1Recursos/Post Ideas/postPublicar uma ideia de publicação

Publica uma ideia de publicação como uma publicação real, enviando-a para suas plataformas de destino. A menos que scheduledFor ou draft esteja definido, isso envia conteúdo real ao vivo imediatamente. id aceita o próprio id da ideia ou o externalId com o qual foi criada.

Publicar uma ideia de publicação

post/api/v1/post-ideas/{id}/publish
posts:write
Parâmetros de consulta
idstringobrigatório
A ideia de publicação a ser publicada — seu id ou externalId.
Corpo da solicitação
scheduledForstringopcional
Publica neste timestamp ISO 8601 futuro em vez de imediatamente.
draftbooleanopcional
Salva como uma publicação em rascunho em vez de publicar imediatamente.
Resposta
dataobjectopcional
Uma plataforma solicitada sem conexão ativa, ou um campo que a ideia precisa antes de poder ir ao ar, nunca faz esta chamada falhar — a ideia é salva como uma publicação em rascunho. Chamar isso novamente para uma ideia que já tem uma publicação retorna alreadyPublished: true em vez de criar uma segunda.
postIdstringopcional
ID da publicação com a qual esta ideia foi publicada, ou null se a publicação não foi concluída.
statusstringopcional
Status da ideia: draft, published ou archived.
ideaIdstringopcional
ID da ideia de publicação que foi publicada.
alreadyPublishedbooleanopcional
Se esta ideia já tinha uma publicação de uma chamada anterior — quando true, nada novo foi publicado.
missingFieldsarray of stringopcional
Campos ainda necessários antes que a publicação resultante possa ir ao ar, se houver.
missingPlatformsarray of stringopcional
Plataformas solicitadas sem conexão ativa, se houver.
scopestring (location | client)opcional
Se a lacuna de conexão/campo se aplica no nível do local ou do cliente.
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/post-ideas/{id}/publish
Sua chave de API
id *
Corpo da solicitação
{
  "data": {
    "postId": "cm_post_xyz789",
    "status": "scheduled",
    "ideaId": "cm_idea_abc123"
  }
}