POST /api/v1/campaigns/{campaignId}/test-send
Envía un correo (la campaña exactamente como está escrita) a la dirección que elijas, para que una persona pueda comprobar la llegada a la bandeja y el renderizado antes del envío real. Es la cara API del botón «Enviar una prueba».
json
{"success": true, "data": {"campaignId": "…", "email": "you@example.com", "status": "test_sent"}}Una prueba consume un envío real. Sale por el mismo camino que una campaña (misma identidad de remitente, mismo conjunto de configuración, mismo asunto y HTML, sin prefijo
[TEST]) y cuenta para la cuota de envío de 24 h. A diferencia de POST /api/v1/render, este endpoint no es gratuito para llamarlo en bucle.| En un envío real | En una prueba |
|---|---|
| Píxel de seguimiento de aperturas | Ausente: el píxel se asocia a una fila de envío |
| Enlaces reescritos para los clics | No reescritos: el seguimiento de clics se asocia a una fila de envío |
| Etiquetas de combinación por destinatario | Datos de ejemplo de la vista previa, los mismos que muestra el panel de vista previa |
| Enlace de baja | Un enlace de vista previa que no da de baja a nadie |
List-Unsubscribe.
| Condición | Respuesta |
|---|---|
draft o scheduled, todo permitido | 200: la prueba se envió |
email ausente o mal formado | 400: no se envió nada |
| sin enlace de baja en el contenido | 400: misma comprobación que /render, no se envió nada |
| envío masivo desactivado en toda la cuenta | 409: no se envió nada |
| organización sin permiso para enviar | 409: no se envió nada |
| dirección en la lista de supresión de la organización | 409: no se envió nada |
campaña sending, sent o failed | 409: una prueba es para una campaña en preparación |
| más de 10 pruebas en la última hora, mismo usuario | 409: el límite se comparte con la interfaz |
| campaña desconocida, o de otra organización | 404 |
El límite lo lleva el usuario detrás de la clave, no el endpoint. Diez pruebas por hora, compartidas con el botón «Enviar una prueba» de la app: llamar a la API no es una forma de saltarse el presupuesto de la interfaz.
Autorización
| Rol en la organización | Este endpoint |
|---|---|
OWNER | Permitido |
ADMIN | Permitido |
MEMBER | Rechazado — 403 |
Ejemplo
bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
"https://www.agentsmail.io/api/v1/campaigns/$CAMPAIGN_ID/test-send" \
-d '{ "email": "you@example.com" }'Respuesta
200 OK: la llamada tuvo éxito.401 Unauthorized: clave ausente o no válida, o su propietario dejó la organización.403 Forbidden: el propietario de la clave esmemberde la organización, noadmin.404 Not Found: no existe ese recurso, o pertenece a otra organización. La API nunca confirma que un id existe a quien no tiene derecho sobre él.429 Too Many Requests: más de 120 solicitudes en un minuto para esta clave.
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Indica si la operación tuvo éxito |
data.status | string | sent, o el motivo por el que no salió |
Ejemplo de respuesta
json
{
"success": true,
"data": {
"status": "subscribed"
}
}