API de Datasets

Um dataset é uma tabela sua dentro do CrazyLeads: você define as colunas, envia as linhas e consulta de volta. Serve para trazer dados que não vêm de uma fonte conectada — uma planilha de vendas, o resultado de um sistema interno, uma lista de produtos.

Autenticação

Toda chamada leva uma chave de dataset no cabeçalho Authorization. A chave é criada no painel e vale para um projeto. Nos endpoints de dados — os que leem, enviam e alteram linhas — ela carrega ainda a permissão por dataset: read para ler e write para escrever; pedir acima disso devolve 403, dizendo qual permissão faltou e em qual dataset. Os endpoints que mexem na estrutura do dataset exigem a chave e são operação administrativa: use uma chave dedicada a eles e não a distribua junto com a que só lê.

Primeira chamada
curl https://apiserver.crazyleads.com.br/api/datasets/ \
  -H "Authorization: Bearer dskey_SUA_CHAVE_AQUI"

Gerenciar o dataset

EndpointO que fazPermissão
GET /Lista os datasets do projetochave
POST /Cria um datasetchave
GET /{id}/Detalha um datasetchave
PATCH /{id}/Renomeia ou altera o datasetchave
DELETE /{id}/Apaga o dataset e as linhas delechave
GET /{id}/schema/Colunas, tipos e versão em vigorchave
POST /{id}/columns/Acrescenta uma colunachave
PATCH /{id}/columns/{coluna}/Altera uma colunachave
DELETE /{id}/columns/{coluna}/Remove uma colunachave
POST /{id}/publish/Publica a versão corrente do schemachave
POST /{id}/rollback/Volta para uma versão anteriorchave
GET /{id}/usage/Uso e contagens do datasetchave

Enviar dados

EndpointO que fazPermissão
POST /{slug}/rows/bulk-upsert/Insere ou atualiza linhas em lotewrite
POST /{slug}/rows/bulk-delete/Remove linhas em lotewrite
POST /{slug}/csv/upload/Envia um CSVwrite

Consultar

EndpointO que fazPermissão
GET /{slug}/rows/Lê as linhas, com filtro e paginaçãoread
PATCH /{slug}/rows/Atualiza linhas que casem com um filtrowrite
GET /{slug}/rows/export/Exporta as linhasread
GET /{slug}/summary/Resumo do conteúdo do datasetread

Enviar linhas em lote

A chave do upsert é sempre o campo id: mandou um id que já existe, atualiza; mandou um que não existe, insere com aquele identificador; não mandou, insere com um identificador novo. Isso significa que reenviar o mesmo lote não duplica linha — desde que você seja dono dos ids. Se deixar o sistema gerar, reenviar cria linhas novas.

POST /{slug}/rows/bulk-upsert/
{
  "rows": [
    { "id": "8f14e45f-ceea-467a-9e6b-1f0e8f0b5d21",
      "produto": "Plano Anual",
      "valor": 1990.00,
      "vendido_em": "2025-06-15T10:30:00+00:00" },
    { "produto": "Plano Mensal", "valor": 199.00 }
  ]
}

O parâmetro upsert_keys foi descontinuado e é ignorado — se o seu código ainda o envia, pode tirar sem mudar o resultado.

Versões do schema

Acrescentar ou mudar uma coluna altera o schema em rascunho. publish torna esse rascunho a versão em vigor, e rollback volta para uma anterior. Consulte schema antes de uma carga grande: enviar coluna que não existe na versão em vigor é erro, não é criação silenciosa.

Limites

OperaçãoLimitePico
Leitura3.000 por minuto300
Escrita600 por minuto100
Importação de CSV10 por hora2

Os limites valem por chave. Ao estourar, a resposta é 429 com o tempo de espera — respeite-o em vez de repetir em seguida, ou a espera só aumenta.