Exportar el historial de consentimientos
/v1/consent-events/exportPara 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
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. 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.
- 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.
curl -X GET "https://$API_HOST/v1/consent-events/export?format=csv&action=deny" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG"
{
"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",
"purpose_id": 1,
"action": "allow",
"created_at": "2026-05-08T14:22:31Z",
"confirmed_at": "2026-05-08T14:22:31Z",
"expired_at": null
}
]
}