Saltar al contenido principal

Exportar el historial de consentimientos

GET/v1/consent-events/export

Para 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_id y action, 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 channel y action, los tres aplican sobre una misma regla.
actionstring, enum: `allow | deny` | null
Filtra por el veredicto de una regla. Combinado con channel y purpose_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/json
consent_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.
method
single_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 source no es form. 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 source no es form.
form_name
Nombre de ese formulario al momento de exportar. Se conserva aunque el formulario haya sido eliminado.
Notas
  • submission_id, form_id y form_name se 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 +56912345678 sí 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
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,,,,