Saltar al contenido principal

Actividad de aperturas

GET/v1/activities/opens

Descripción

Aperturas de email. group_by define el nivel de agregación: none (default) devuelve un registro por evento de apertura; mail_id, una fila por destinatario; msg_id, una fila por mensaje que agrega todos sus destinatarios. El conteo se agrega desde las aperturas dentro del rango, así que cuadra con la suma del detalle. Los filtros se aplican antes de agrupar.

Autenticación

Authorizationbearer tokenheaderobligatorio
API key con scope mail:read. Formato: Bearer FD.<key_id>.<token>.
X-Instance-Slugstringheaderobligatorio

Request

Query params:

start_datestring (date, `YYYY-MM-DD`) | null
Fecha local de inicio.
end_datestring (date, `YYYY-MM-DD`) | null
Fecha local de fin.
tzstring (zona IANA) | null
Zona para interpretar las fechas.
pageinteger
Página, 1-indexed. Default: 1.
page_sizeinteger
Tamaño de página, 1–100. Default: 20.
group_bystring, enum: `none | mail_id | msg_id`
Nivel de agregación. Default: none.
msg_idstring | null
Filtra por message ID.
mail_idstring | null
Filtra por mail ID.
sender_idinteger | null
Filtra por id del remitente.
recipientstring | null
Filtra por email del destinatario - coincidencia exacta por default; recipient_operator=starts_with la cambia a prefijo. Ver Filtros de texto.
recipient_operatorstring, enum: `eq | starts_with`
Operador de coincidencia para recipient: eq (exacto, default) o starts_with (el destinatario empieza con el valor dado). Se ignora si recipient no está presente.
custom_msg_idstring | null
Filtra por identificador de mensaje personalizado.
custom_group_codestring | null
Filtra por código de grupo personalizado.
subjectstring | null
Filtra por asunto - coincidencia parcial, insensible a mayúsculas. Ver Filtros de texto.

Response

200 OKEnvelope {data, pagination}. La forma de cada elemento de data depende de group_by.

(default) — un evento por apertura

mail_idstringobligatorio
Identificador del mail.
msg_idstring | null
Identificador del mensaje lógico.
tostringobligatorio
Email del destinatario.
senderstringobligatorio
Email del remitente.
opened_atstring (date-time)obligatorio
Fecha y hora de la apertura.
sent_atstring (date-time) | null
Fecha y hora de entrega.
custom_msg_idstring | null
Identificador personalizado del mensaje.
custom_group_codestring | null
Código de grupo personalizado.
Notas
  • pagination.total_items solo viene poblado con group_by=none (cuenta eventos); en mail_id/msg_id viene null porque cada fila es un destinatario o mensaje distinto, no un evento — usar pagination.has_more para paginar en esos modos.
  • Para exportar el mismo listado completo en CSV/JSON, ver GET .../opens/export.
Request
curl -X GET "https://$API_HOST/v1/activities/opens?group_by=msg_id&start_date=2026-07-01&end_date=2026-07-31" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG"
Response
{
"data": [
{
"msg_id": "0190...",
"sender": "newsletter@example.com",
"subject": "Hello",
"open_count": 18,
"recipients_opened": 11,
"rcpt_count": 25,
"first_opened_at": "2026-05-08T14:25:47Z",
"last_opened_at": "2026-05-08T17:02:58Z",
"custom_msg_id": null,
"custom_group_code": null
}
],
"pagination": {
"page": 1,
"page_size": 20,
"has_more": false,
"total_items": 1,
"total_pages": 1
}
}