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 — evidencia auditable de los consentimientos otorgados o revocados. A diferencia de GET /v1/consent-events, no pagina: recorre todo el historial que matchee 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 FD.<key_id>.<token>.
X-Instance-Slugstringheaderobligatorio

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, coincidencia exacta (misma normalización que el listado — ver su ficha).
channelstring, enum: `mail | sms | wsp | call | push` | null
Filtra por canal de una regla.
purpose_idinteger | null
Filtra por finalidad de una regla — ver `GET /v1/consent-purposes`.
actionstring, enum: `allow | deny` | null
Filtra por el veredicto de una 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.

Cuando channel, purpose_id y action se combinan, filtran por una misma regla que matchee los tres a la vez — no por eventos que tengan alguna regla con cada valor por separado.

Response

200 OKRespuesta en streaming.

CSV (Content-Type: text/csv, con BOM UTF-8) o JSON (Content-Type: application/json, un array de objetos), según format. Columnas / campos:

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.
Notas
  • El export queda registrado como un evento de auditoría (actor, filtros aplicados).
  • No pagina: la combinación de filtros determina el volumen exportado, no un page/page_size.
  • Para el estado vigente en vez del historial completo, ver 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"
Response
{
"data": [
{
"consent_event_id": 42,
"term_id": 4,
"term_version_id": 7,
"event_status": null,
"method": "double_opt_in",
"source": "api",
"channel": "mail",
"contact_type": "email_address",
"contact": "ana@ejemplo.cl",
"purpose_id": 1,
"action": "allow",
"created_at": "2026-05-08T14:22:31Z",
"confirmed_at": "2026-05-08T14:22:31Z",
"expired_at": null
}
]
}