VendeeDocs
Referência

Atividades

Tarefas, ligações e reuniões da agenda comercial.

GET    {BASE_URL}/api-v1-activities      # lista
GET    {BASE_URL}/api-v1-activities/:id  # detalhe
POST   {BASE_URL}/api-v1-activities      # cria
PATCH  {BASE_URL}/api-v1-activities/:id  # atualiza

Use os endereços acima — são os que respondem hoje. A API está migrando para um endereço único ({BASE_URL}/api-v1/activities), que ainda não foi publicado: enquanto isso, qualquer chamada para ele devolve 404 not_found. Quando entrar no ar, esta página muda junto, e os endereços acima continuam valendo.

Escopos: activities:read para os GET; activities:write para a escrita.

Os campos de integração com agenda externa ficam fora do contrato público de propósito. Atividade não troca de dono de registro: PATCH não altera deal, contact, company nem lead.

Campos

CampoTipoEscritaNotas
iduuidsomente leitura
workspace_iduuidsomente leituraSempre o workspace da chave de API usada na chamada.
deal_iduuidcriar: opcional, editar: nãoFormato uuid; deve existir na ficha deals.
contact_iduuidcriar: opcional, editar: nãoFormato uuid; deve existir na ficha contacts.
company_iduuidcriar: opcional, editar: nãoFormato uuid; deve existir na ficha companies.
lead_iduuidcriar: opcional, editar: nãoFormato uuid.
activity_type_iduuidcriar: obrigatório, editar: simTraduzível pela ficha activity-types. formato uuid; deve existir na ficha activity-types.
owner_iduuidcriar: opcional, editar: simFormato uuid; deve existir na ficha owners.
titlestringcriar: obrigatório, editar: simDe 1 a 255 caracteres.
descriptionstringcriar: opcional, editar: simMáximo 10000 caracteres.
statusstringcriar: opcional, editar: simLeitura conhece 4 valores; a escrita não aceita 'encerrada' (só o CRM fecha assim). valores: pendente, concluida, cancelada.
scheduled_atdatetimecriar: obrigatório, editar: simFormato datetime.
start_timedatetimecriar: opcional, editar: simOmitido na criação, herda scheduled_at. formato datetime.
end_timedatetimecriar: opcional, editar: simPrecisa ser maior ou igual ao início. formato datetime.
completed_atdatetimecriar: opcional, editar: simSó aceito quando o status efetivo é 'concluida'; nunca no futuro. formato datetime.
is_online_meetingbooleancriar: opcional, editar: sim
created_atdatetimesomente leitura
updated_atdatetimesomente leitura

Listar atividades

GET {BASE_URL}/api-v1-activities

Parâmetro (query)TipoNotas
deal_iduuid
lead_iduuid
owner_iduuid
activity_type_iduuid
statusstringAceita os 4 valores do banco, inclusive 'encerrada'. Valores: pendente, concluida, cancelada, encerrada.
sincedatetimeSó registros criados a partir desta data (ISO 8601). Compara: maior ou igual a.
limitnumberTamanho da página. Padrão 50, máximo 200.
cursoruuidPróxima página — use o meta.next_cursor da resposta anterior.

Ordenação: id crescente. Paginação por cursor.

curl "{BASE_URL}/api-v1-activities?deal_id=8f3c..." \
  -H "X-API-Key: vnd_sua_chave_aqui"
{
  "data": [ /* registros */ ],
  "meta": { "next_cursor": "8f3c...", "has_more": true }
}

Consultar um registro

GET {BASE_URL}/api-v1-activities/:id → o recurso completo, ou 404 not_found.

curl "{BASE_URL}/api-v1-activities/8f3c..." \
  -H "X-API-Key: vnd_sua_chave_aqui"

Criar

POST {BASE_URL}/api-v1-activities — escopo activities:write.

CampoTipoObrigatórioNotas
deal_iduuidNãoFormato uuid; deve existir na ficha deals.
contact_iduuidNãoFormato uuid; deve existir na ficha contacts.
company_iduuidNãoFormato uuid; deve existir na ficha companies.
lead_iduuidNãoFormato uuid.
activity_type_iduuidSimTraduzível pela ficha activity-types. formato uuid; deve existir na ficha activity-types.
owner_iduuidNãoFormato uuid; deve existir na ficha owners.
titlestringSimDe 1 a 255 caracteres.
descriptionstringNãoMáximo 10000 caracteres.
statusstringNãoLeitura conhece 4 valores; a escrita não aceita 'encerrada' (só o CRM fecha assim). valores: pendente, concluida, cancelada.
scheduled_atdatetimeSimFormato datetime.
start_timedatetimeNãoOmitido na criação, herda scheduled_at. formato datetime.
end_timedatetimeNãoPrecisa ser maior ou igual ao início. formato datetime.
completed_atdatetimeNãoSó aceito quando o status efetivo é 'concluida'; nunca no futuro. formato datetime.
is_online_meetingbooleanNão
curl -X POST "{BASE_URL}/api-v1-activities" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "activity_type_id": "8f3c...", "title": "...", "scheduled_at": "2026-08-01T14:00:00Z" }'

Atualizar

PATCH {BASE_URL}/api-v1-activities/:id — escopo activities:write. Todos os campos são opcionais; só o que vier no corpo muda.

CampoTipoObrigatórioNotas
activity_type_iduuidNãoTraduzível pela ficha activity-types. formato uuid; deve existir na ficha activity-types.
owner_iduuidNãoFormato uuid; deve existir na ficha owners.
titlestringNãoDe 1 a 255 caracteres.
descriptionstringNãoMáximo 10000 caracteres.
statusstringNãoLeitura conhece 4 valores; a escrita não aceita 'encerrada' (só o CRM fecha assim). valores: pendente, concluida, cancelada.
scheduled_atdatetimeNãoFormato datetime.
start_timedatetimeNãoOmitido na criação, herda scheduled_at. formato datetime.
end_timedatetimeNãoPrecisa ser maior ou igual ao início. formato datetime.
completed_atdatetimeNãoSó aceito quando o status efetivo é 'concluida'; nunca no futuro. formato datetime.
is_online_meetingbooleanNão
curl -X PATCH "{BASE_URL}/api-v1-activities/8f3c..." \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "activity_type_id": "8f3c...", "owner_id": "8f3c...", "title": "..." }'

Webhooks desta ficha

  • activity.created
  • activity.overdue

Formato do envio, cabeçalhos e verificação da assinatura em Webhooks.

Erros

HTTPcodeQuando
401missing_api_key / invalid_api_key / revoked_api_keyAutenticação.
403insufficient_scopeA chave não tem activities:read / activities:write.
404not_foundO registro não existe neste cliente.
422validation_errorCampo fora das regras da tabela acima.
422invalid_referencedeal_id, contact_id, company_id, activity_type_id, owner_id aponta para fora deste cliente.
422invalid_cursorO cursor enviado não é válido.
405method_not_allowedMétodo não suportado neste endereço.
500internal_errorFalha interna.

Catálogo completo em Erros.

Idempotência

Envie um header Idempotency-Key (1–255 caracteres, qualquer string única sua) para tornar o POST acima seguro de reenviar em caso de timeout de rede ou retry automático:

curl -X POST "{BASE_URL}/api-v1-activities" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-9f21" \
  -d '{ "deal_id": "8f3c...", "activity_type_id": "2b3c...", "title": "Ligação de qualificação", "scheduled_at": "2026-08-01T14:00:00Z" }'
  • Mesma chave, mesmo corpo: a segunda chamada não cria outra atividade — responde 200 OK com o corpo da resposta original (não 201).
  • Mesma chave, corpo diferente (ou reusada em outro recurso): 422 idempotency_conflict.
  • Mesma chave, requisição original ainda processando: 409 idempotency_in_progress — duas chamadas concorrentes com a mesma chave; espere e tente de novo.
  • Janela: a chave fica registrada por 24 horas; depois disso pode ser reusada como se fosse nova.
  • Sem o header: comportamento idêntico ao de hoje — cada POST cria uma atividade nova.

Erros específicos desta ficha

HTTPcodeQuando
400bad_requestCorpo ausente/JSON inválido.
422no_owner_availableSem responsável ativo possível.
400invalid_idempotency_keyIdempotency-Key fora de 1–255 caracteres.
422idempotency_conflictMesma Idempotency-Key com corpo ou recurso diferente.
409idempotency_in_progressMesma Idempotency-Key já em processamento (corrida).

Nesta página