Saltar para o conteúdo principal
Todos os endpoints de listagem da API Vendaze retornam resultados paginados. A resposta sempre inclui um array data e um objeto meta com os detalhes de navegação.

Parâmetros de consulta

ParâmetroTipoPadrãoDescrição
pageinteiro1Número da página. Deve ser um inteiro positivo.
per_pageinteiro50Quantidade de registros por página. Máximo: 100.
order_bystringcreated_atCampo para ordenação. Os valores aceitos variam por endpoint.
orderstringdescDireção da ordenação. Deve ser asc ou desc.

Valores aceitos para order_by por recurso

RecursoValores aceitos
peoplecreated_at, updated_at, full_name
companiescreated_at, updated_at, full_name
dealscreated_at, updated_at, name
pipelinescreated_at, name
taskscreated_at, updated_at, due_date
task-typescreated_at, title
productscreated_at, name
tagscreated_at, name
listscreated_at, name
custom-fieldscreated_at, label

Estrutura da resposta

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "full_name": "Maria Silva",
      "emails": [{ "email": "maria@empresa.com", "type": "work" }],
      "phones": [{ "phone": "+5511999990001", "type": "mobile" }],
      "owner": {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "email": "joao@empresa.com",
        "name": "João Silva"
      },
      "avatar_url": null,
      "entity_id": "g7wwkh0",
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-01-15T10:30:00Z",
      "custom_fields": []
    }
  ],
  "meta": {
    "total": 120,
    "page": 1,
    "per_page": 50,
    "has_more": true
  }
}

Campos do meta

CampoTipoDescrição
totalinteiroTotal de registros no workspace que correspondem à consulta.
pageinteiroNúmero da página atual.
per_pageinteiroQuantidade de registros retornados nesta página.
has_morebooleanotrue quando há páginas adicionais após esta.

Listagem vs. detalhe

Os endpoints de listagem retornam um objeto compacto por registro. Relações embutidas (company, tags, lists) não são incluídas nas respostas de listagem. Use o endpoint GET /:id para obter um registro com todos os dados embutidos.
CampoListagemDetalhe (GET /:id)
Campos baseSimSim
custom_fieldsSimSim
companyNãoSim (somente pessoas)
tagsNãoSim
listsNãoSim

Percorrendo todas as páginas

async function buscarTodasAsPessoas(accessToken) {
  const resultados = [];
  let pagina = 1;
  let temMais = true;

  while (temMais) {
    const res = await fetch(
      `https://api.vendaze.com/v1/people?page=${pagina}&per_page=50&order_by=created_at&order=asc`,
      { headers: { Authorization: `Bearer ${accessToken}` } },
    );

    if (!res.ok) throw new Error(`Requisição falhou: ${res.status}`);

    const { data, meta } = await res.json();
    resultados.push(...data);

    temMais = meta.has_more;
    pagina += 1;
  }

  return resultados;
}

Erros de validação

Enviar parâmetros de paginação inválidos retorna um 422 com os erros por campo:
{
  "error": {
    "code": "validation_error",
    "message": "Validation failed.",
    "fields": {
      "per_page": "Must be between 1 and 50.",
      "order_by": "Must be one of: created_at, updated_at, full_name."
    },
    "request_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}