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 funcionalidadeconsent_exporté gerenciada server-side: contas Free recebem403 plan_limit_exceededao 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
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
readyvivem 7 dias; depois flipam paraexpirede o download retorna410 Gone. - Cross-tenant: chamadas para
ids que não pertencem à sua conta retornam404(nunca403, 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
