Skip to main content
A API de exportação dá ao seu backend duas formas de extrair os registros de consentimento de um site em CSV: streaming síncrono para volumes até ~100k linhas, ou jobs assíncronos para volumes maiores. Ambas as rotas aceitam Authorization: Bearer sk-... e consomem 1 unidade da cota mensal por chamada (o feature consent_export está disponível a partir do plano Starter).
A funcionalidade consent_export é gerenciada server-side: contas Free recebem 403 plan_limit_exceeded ao chamar qualquer rota desta página.

Quando usar cada modo

A trilha de auditoria (cap de 5 exports por período no plano Starter / ilimitado no Pro+) é compartilhada — não dá para burlar trocando de rota.

Modo síncrono (streaming CSV)

GET /api/v1/sites/{siteId}/consents/export?format=csv responde com Content-Type: text/csv; charset=utf-8, Content-Disposition: attachment; filename="consents-<domain>-<YYYYMMDD>.csv" e BOM UTF-8 no início (Excel abre sem perguntar encoding). A paginação por keyset mantém o uso de memória O(batch_size) mesmo em sites grandes — você pode salvar direto num arquivo. Colunas: consent_id, accepted, analytics, marketing, country, region, user_agent, policy_version, created_at.

Modo assíncrono (enqueue + status + download)

Quando o site cruza ~100k linhas (ou quando você força com ?async=true), a mesma rota responde 202 Accepted. Para sempre enfileirar (independente do tamanho), use POST /api/v1/sites/{siteId}/exports.

Enfileirar um export

A resposta 202 traz id (use-o para polling), status: "queued", e status_url para consulta.

Consultar status do job

GET /api/v1/exports/{id} devolve o ExportDTO com o status atual. Quando status="ready", o campo download_url é uma URL assinada com TTL de 10 minutos.

Baixar o arquivo pronto

GET /api/v1/exports/{id}/download retorna um 302 para uma URL assinada (TTL 10 min). Use -L no cURL para seguir o redirect. Se o token expirar, basta chamar GET /exports/{id} de novo — uma URL fresca é mintada a cada chamada.

Estados possíveis

Listar seus exports recentes

GET /api/v1/exports?limit=20 retorna os exports mais recentes (máximo 100 por chamada).

Limites e retenção

  • Cota mensal: cada chamada API-key conta 1 unidade contra request_limit.
  • Cap por período de cobrança: Starter 5 exports / período, Pro+ ilimitado.
  • Retenção em disco: arquivos ready vivem 7 dias; depois flipam para expired e o download retorna 410 Gone.
  • Cross-tenant: chamadas para ids que não pertencem à sua conta retornam 404 (nunca 403, para não vazar existência).

Erros frequentes

Próximo passo

Exports cobrem o passado: você pega os dados que já estão armazenados. Para reagir a eventos em tempo real (todo novo consentimento, toda mudança), configure Webhooks — o ConsentFly empurra o evento assinado para o seu endpoint assim que acontece, e seu pipeline fica sempre sincronizado sem polling.

Dúvidas? suporte@consentfly.com.br