Direcciones bloqueadas
Consulta y gestiona las direcciones a las que Emailit no enviará emails.
Crear un bloqueo
Añade una dirección a la lista de direcciones bloqueadas de tu espacio de trabajo. Los emails enviados por la API y por SMTP a una dirección con un bloqueo recipient reciben el estado suppressed en lugar de enviarse, y las campañas omiten las direcciones bloqueadas. Requiere una clave de API con el permiso full.
/suppressionsCuerpo de la petición
emailstringObligatorioLa dirección que se bloquea. Emailit la guarda en minúsculas.
typestringEl tipo de bloqueo. Por defecto, recipient. Emailit usa recipient, bounce, complaint y unsubscribe.
Solo los bloqueos recipient detienen los emails enviados por la API y por SMTP. Las campañas omiten todas las direcciones con un bloqueo activo de cualquier tipo. Una dirección puede tener un bloqueo de cada tipo.
reasonstringUna nota de texto libre, por ejemplo manual o Asked to stop receiving invoices.
keep_untilstring | number | nullCuándo caduca el bloqueo. Acepta una marca de tiempo ISO 8601 (2026-12-31T00:00:00Z), una marca de tiempo Unix en segundos (1798675200) o lenguaje natural, como in 30 days o tomorrow at 9am. Omítelo o envía null para crear un bloqueo permanente.
Pasado ese momento, el bloqueo deja de impedir los envíos. Sigue en la lista hasta que lo elimines.
Devuelve
Devuelve 201 Created con el objeto de bloqueo. Emailit también envía un evento de webhook suppression.created.
| Código | Cuándo |
|---|---|
400 |
email no es una dirección válida o keep_until no se puede analizar (el cuerpo incluye una cadena error), o falta email (error de validación estándar). |
409 |
La dirección ya tiene un bloqueo de este tipo. El cuerpo incluye el bloqueo existente en existing. |
{
"object": "suppression",
"id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
"type": "recipient",
"email": "ada@example.com",
"reason": "manual",
"created_at": "2026-10-01T09:30:12.481000+00:00",
"keep_until": null
}{
"error": "Invalid keep_until format. Accepts ISO 8601, Unix timestamp, or natural language like \"tomorrow at 9am\"."
}{
"error": "Suppression already exists for this email and type",
"existing": {
"object": "suppression",
"id": "sup_2xKz0Pq5Rm8Nw2Tb7YdLc4HsE1a",
"type": "recipient",
"email": "ada@example.com",
"reason": "too many bounces",
"created_at": "2026-09-12T16:04:51.207000+00:00",
"keep_until": null
}
}Obtener un bloqueo
Devuelve un bloqueo, buscado por su ID o por la dirección de email. Requiere una clave de API con el permiso full.
/suppressions/:idParámetros de ruta
idstringObligatorioEl ID del bloqueo (sup_…) o la dirección bloqueada. Codifica la dirección para URL, por ejemplo ada%40example.com.
Una dirección puede tener un bloqueo de cada tipo. Si buscas por dirección, Emailit devuelve uno de ellos; usa el ID para obtener un tipo concreto.
Devuelve
Devuelve 200 OK con el objeto de bloqueo. Un bloqueo cuyo keep_until ya ha pasado deja de impedir los envíos.
Devuelve 400 si id no es un ID sup_ ni una dirección de email válida, y 404 si ningún bloqueo coincide.
{
"object": "suppression",
"id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
"type": "recipient",
"email": "ada@example.com",
"reason": "too many bounces",
"created_at": "2026-10-01T09:30:12.481000+00:00",
"keep_until": null
}{
"error": "Invalid identifier. Must be a suppression ID (sup_xxx) or valid email address."
}{
"error": "Suppression not found"
}Actualizar un bloqueo
Actualiza un bloqueo. Envía solo los campos que quieras cambiar; tienes que enviar al menos uno. Requiere una clave de API con el permiso full.
/suppressions/:idParámetros de ruta
idstringObligatorioEl ID del bloqueo (sup_…) o la dirección bloqueada, codificada para URL (ada%40example.com). Si una dirección tiene bloqueos de varios tipos, usa el ID.
Cuerpo de la petición
emailstringLa nueva dirección. Se guarda en minúsculas.
typestringEl nuevo tipo: recipient, bounce, complaint o unsubscribe. Solo los bloqueos recipient detienen los envíos por la API y por SMTP.
reasonstringEl nuevo motivo, en texto libre.
keep_untilstring | number | nullLa nueva fecha de caducidad, en los mismos formatos que al crear el bloqueo: ISO 8601, una marca de tiempo Unix en segundos o lenguaje natural, como in 30 days. Envía null para que el bloqueo sea permanente.
Devuelve
Devuelve 200 OK con el bloqueo actualizado. Emailit también envía un evento de webhook suppression.updated.
| Código | Cuándo |
|---|---|
400 |
El cuerpo no incluye ninguno de los campos anteriores, email no es válido o keep_until no se puede analizar. |
404 |
Ningún bloqueo coincide con id. |
409 |
Ya existe otro bloqueo para la nueva dirección y el nuevo tipo. |
{
"object": "suppression",
"id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
"type": "recipient",
"email": "ada@example.com",
"reason": "Asked to pause invoices until January",
"created_at": "2026-10-01T09:30:12.481000+00:00",
"keep_until": "2027-01-01T00:00:00.000000+00:00"
}{
"error": "No valid fields provided for update. Provide at least one of: email, type, reason, keep_until"
}{
"error": "Suppression not found"
}{
"error": "Another suppression already exists for this email and type combination"
}Listar direcciones bloqueadas
Devuelve los bloqueos de tu espacio de trabajo, del más reciente al más antiguo. El listado incluye los bloqueos que Emailit añade automáticamente tras rebotes y quejas, y los bloqueos caducados cuyo keep_until ya ha pasado. Requiere una clave de API con el permiso full.
/suppressionsParámetros de consulta
pageintegerEl número de página, empezando por 1. Por defecto, 1.
limitintegerBloqueos por página, de 1 a 100. Por defecto, 10.
searchstringBúsqueda en la dirección o en el motivo, sin distinguir mayúsculas y minúsculas. q funciona como alias.
matchstringall (por defecto) exige que coincidan todos los filtros key.condition. or exige que coincida cualquiera de ellos. Consulta Filtrado.
sortstringLa clave de ordenación: email, reason, type o created_at (por defecto).
orderstringLa dirección de la ordenación: asc o desc (por defecto).
Filtros
Los filtros de listado son un único nivel de parámetros de consulta key.condition=value. Consulta Filtrado para ver match, order, direction y la lista de condiciones de cada tipo.
Claves de filtro
| Clave | Tipo | Condiciones | Notas |
|---|---|---|---|
email | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
reason | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
type | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
created_at | date | exact, before, after, empty, not_empty | |
keep_until | date | exact, before, after, empty, not_empty |
Claves de ordenación
Este endpoint ordena con sort igual a una de estas claves y order igual a asc o desc (aquí order=<key> devuelve 400): email, reason, type, created_at, keep_until
En este endpoint, order solo acepta asc o desc. Pasa la clave de ordenación en sort, por ejemplo sort=email&order=asc.
Devuelve
Devuelve 200 OK con los bloqueos en data, además de next_page_url y previous_page_url (null si no hay página siguiente o anterior). Las URL de las páginas conservan tu búsqueda, tus filtros y tu orden.
{
"data": [
{
"object": "suppression",
"id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
"type": "recipient",
"email": "ada@example.com",
"reason": "too many bounces",
"created_at": "2026-10-01T09:30:12.481000+00:00",
"keep_until": null
},
{
"object": "suppression",
"id": "sup_2xKz0Pq5Rm8Nw2Tb7YdLc4HsE1a",
"type": "complaint",
"email": "grace@example.com",
"reason": "complaint",
"created_at": "2026-09-28T13:17:40.912000+00:00",
"keep_until": null
}
],
"next_page_url": "/v2/suppressions?limit=10&page=2",
"previous_page_url": null
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Invalid API key"
}Eliminar un bloqueo
Elimina un bloqueo para que la dirección pueda volver a recibir emails. Requiere una clave de API con el permiso full.
/suppressions/:idParámetros de ruta
idstringObligatorioEl ID del bloqueo (sup_…) o la dirección bloqueada, codificada para URL (ada%40example.com).
Una petición por dirección elimina un solo bloqueo. Si la dirección tiene bloqueos de varios tipos, elimínalos uno a uno por su ID o repite la petición hasta que devuelva 404.
Devuelve
Devuelve 200 OK con el id y el email del bloqueo eliminado y deleted: true. Emailit también envía un evento de webhook suppression.deleted.
Devuelve 400 si id no es un ID sup_ ni una dirección de email válida, y 404 si ningún bloqueo coincide.
{
"object": "suppression",
"id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
"email": "ada@example.com",
"deleted": true
}{
"error": "Invalid identifier. Must be a suppression ID (sup_xxx) or valid email address."
}{
"error": "Suppression not found"
}