Exportar el historial de consentimientos
GET
/v1/consent-events/exportPara desarrolladores
Descripción
Exporta en CSV o JSON el historial de consentimientos de la cuenta. Es evidencia auditable de los consentimientos otorgados o revocados. A diferencia de GET /v1/consent-events, no pagina: recorre todo el historial que coincida con los filtros.
Una fila del resultado es una regla de un evento, no el evento completo: un evento con dos reglas (por ejemplo, dos finalidades distintas) produce dos filas que comparten los mismos datos de evento (consent_event_id, term_id, method, source, etc.).
Guía relacionada
- Consentimiento — Registre y consulte el consentimiento de sus contactos.
Autenticación
Authorizationbearer tokenheaderobligatorio- API key con scope
consent:read. Formato:Bearer <API_KEY>. X-Instance-Slugstringheaderobligatorio- Identificador de su instancia. Ver Autenticación.
Request
Query params:
formatstring, enum: `csv | json`- Formato de salida. Default:
csv. term_idinteger | null- Filtra por término aceptado (ver `GET /v1/consent-terms`).
statusstring, enum: `confirmed | pending | expired` | null- Filtra por estado del evento.
contactstring | null- Filtra por identificador presente en alguna regla, con coincidencia exacta contra la forma almacenada, igual que `GET /v1/consent-events`. Las direcciones de correo se guardan en minúsculas: busque
[email protected], no[email protected]. channelstring, enum: `mail | sms | wsp | call | push` | null- Filtra por canal de una regla. Si se combina con
purpose_idyaction, los tres filtran sobre una misma regla: un evento entra solo si tiene una regla que cumpla los tres a la vez, no si tiene alguna regla con cada valor por separado. purpose_idinteger | null- Filtra por finalidad de una regla (ver `GET /v1/consent-purposes`). Combinado con
channelyaction, los tres aplican sobre una misma regla. actionstring, enum: `allow | deny` | null- Filtra por el veredicto de una regla. Combinado con
channelypurpose_id, los tres aplican sobre una misma regla. start_datestring (date) | null- Fecha local de inicio (
YYYY-MM-DD), sobre la fecha de creación del evento. end_datestring (date) | null- Fecha local de fin (
YYYY-MM-DD). tzstring (zona IANA) | null- Zona horaria con la que se formatean las fechas del archivo. Sin valor: UTC.
Response
200 OKRespuesta en streaming, en
text/csv o application/json según format. El CSV incluye BOM UTF-8 para que Excel reconozca la codificación. En JSON, un array de objetos.text/csvapplication/jsonconsent_event_id- Identificador del evento.
term_id- Término aceptado.
term_version_id- Versión exacta que el titular aceptó.
event_status- Estado del evento:
confirmed | pending | expired. methodsingle_opt_in | double_opt_in.source- Origen del registro:
form | api | import | system. channel- Canal de esta regla.
contact_type- Tipo de identificador de esta regla.
contact- Identificador del titular.
purpose_id- Finalidad de esta regla.
action- Veredicto de esta regla:
allow | deny. created_at- Fecha y hora en que se registró esta regla.
confirmed_at- Fecha y hora en que el evento quedó confirmado, si aplica.
expired_at- Fecha y hora de expiración del evento, si aplica.
submission_id- Envío de formulario que originó el evento. Vacío cuando
sourceno esform. Un mismo envío puede producir varios eventos, uno por término aceptado. Por eso este campo permite reconocer entre sí las filas de un mismo acto. form_id- Formulario del que provino el envío. Vacío cuando
sourceno esform. form_name- Nombre de ese formulario al momento de exportar. Se conserva aunque el formulario haya sido eliminado.
Notas
submission_id,form_idyform_namese agregaron al final de la fila, así que una integración que lea el archivo por posición de columna sigue funcionando.- Celdas que empiezan con
=,+,-o@. Para que una planilla no ejecute como fórmula un texto que la contenga, el CSV antepone un apóstrofo (') a toda celda de texto que empiece con=,+,-,@, una tabulación o un retorno de carro. Lo mismo hace con los encabezados. Si un texto ya empieza con apóstrofos seguidos de uno de esos caracteres, recibe un apóstrofo más. Una celda que es solo un número, sin signo o negativo, se escribe sin cambios:-5,-1200.50. Un teléfono como+56912345678sí lleva el apóstrofo, para que la planilla lo conserve como texto y no le quite el+. Si el archivo se abre directamente en Excel, el apóstrofo se ve dentro de la celda. Si las columnas se separan con Datos → Dividir texto en columnas (Excel para la web), o el archivo se importa en Google Sheets, el apóstrofo no se muestra y la celda presenta el valor tal como está guardado. Si procesa el archivo con un programa, quite un solo apóstrofo inicial de esas celdas. El formato JSON entrega los valores sin cambios.
Notas
- El export queda registrado en el log de actividad, con quién lo pidió y cuándo.
- Para el estado vigente en vez del historial completo, use
GET /v1/consent-rules/resolve.
Request
curl -X GET "https://$API_HOST/v1/consent-events/export?format=csv&action=deny" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG" \
-o consent-events.csv
Response
consent_event_id,term_id,term_version_id,event_status,method,source,channel,contact_type,contact,purpose_id,action,created_at,confirmed_at,expired_at,submission_id,form_id,form_name
42,4,7,confirmed,double_opt_in,api,mail,email_address,[email protected],1,deny,2026-05-08T14:22:31Z,2026-05-08T14:22:31Z,,,,