Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.consentfly.com/llms.txt

Use this file to discover all available pages before exploring further.

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

CenárioEndpointResposta
Site com < 100k linhasGET /api/v1/sites/{siteId}/consents/export?format=csv200 com text/csv em streaming
Site com > 100k linhas (auto)mesma rota acima202 com id (vira async automaticamente)
Forçar async (qualquer volume)mesma rota + ?async=true202 com id
Sempre async, independente do tamanhoPOST /api/v1/sites/{siteId}/exports202 com id
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.
SITE_ID=6b8b4567-327a-4d10-92a5-9e8c4f5a7d12
curl -L \
  -H "Authorization: Bearer $CONSENTFLY_API_KEY" \
  -o consents.csv \
  "https://www.consentfly.com.br/api/v1/sites/$SITE_ID/consents/export?format=csv"

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

SITE_ID=6b8b4567-327a-4d10-92a5-9e8c4f5a7d12
curl -X POST \
  -H "Authorization: Bearer $CONSENTFLY_API_KEY" \
  "https://www.consentfly.com.br/api/v1/sites/$SITE_ID/exports"
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.
curl https://www.consentfly.com.br/api/v1/exports/exp_01HK8WD2QXKB4R7N9F1H3P5T0G \
  -H "Authorization: Bearer $CONSENTFLY_API_KEY"

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.
curl -L \
  -H "Authorization: Bearer $CONSENTFLY_API_KEY" \
  -o consents.csv \
  "https://www.consentfly.com.br/api/v1/exports/exp_01HK8WD2QXKB4R7N9F1H3P5T0G/download"

Estados possíveis

StatusSignificado
queuedEsperando o worker pegar
runningWorker está escrevendo o arquivo
readyArquivo pronto, download_url disponível
failedFalha durante a escrita — error_message traz o detalhe
expiredPassados 7 dias, o cron de limpeza removeu o arquivo do disco
streamedFoi servido inline (modo síncrono) — sem arquivo persistente

Listar seus exports recentes

GET /api/v1/exports?limit=20 retorna os exports mais recentes (máximo 100 por chamada).
curl "https://www.consentfly.com.br/api/v1/exports?limit=20" \
  -H "Authorization: Bearer $CONSENTFLY_API_KEY"

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

Código HTTPerrorQuando
401unauthorizedAPI Key inválida, revogada ou token de download expirado
403plan_limit_exceededPlano Free tentando usar consent_export
404not_foundExport ou site não pertence à sua conta
409conflictTentou baixar um export ainda em queued/running/failed
410not_foundArquivo foi expurgado (passados os 7 dias)
429quota_exceededCota mensal esgotada ou cap de exports do período atingido

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