POST /api/v1/templates
Crea una plantilla. Responde 201.
La respuesta añade un campo a la plantilla: unsupportedTags.
json
{
"success": true,
"data": {
"id": "…",
"name": "August newsletter",
"defaultSubject": "What shipped in August",
"content": "…",
"unsupportedTags": ["*|DATE:d F Y|*"],
"createdAt": "…",
"updatedAt": "…"
}
}Las etiquetas de combinación de Mailchimp se convierten al entrar.
*|UNSUB|* se convierte en {{unsubscribeUrl}}, *|FNAME|* en {{firstName}}, *|CURRENT_YEAR|* en {{currentYear}}, y así sucesivamente. Una etiqueta sin equivalente se deja exactamente donde está y se enumera en unsupportedTags: te enteras mientras escribes, no cuando el email llega a una bandeja de entrada con un *|DATE:d F Y|* en bruto.Autorización
| Rol en la organización | Este endpoint |
|---|---|
OWNER | Permitido |
ADMIN | Permitido |
MEMBER | Rechazado — 403 |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | sí | De 1 a 100 caracteres |
defaultSubject | string | sí | De 1 a 200 caracteres, lo usan las campañas que no lo sobrescriben |
content | string | sí | El HTML del email |
Ejemplo
bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
-d '{
"name": "August newsletter",
"defaultSubject": "What shipped in August",
"content": "<html><body><p>Hi {{firstName}}</p><a href=\"{{unsubscribeUrl}}\">Unsubscribe</a></body></html>"
}' \
"https://www.agentsmail.io/api/v1/templates"Respuesta
201 Created: el recurso creado.401 Unauthorized: clave ausente o no válida, o su propietario salió de la organización.403 Forbidden: el propietario de la clave esmemberde la organización, noadmin.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 se realizó correctamente |
data.id | string | Identificador único de la plantilla |
data.name | string | Nombre de la plantilla |
data.defaultSubject | string | Asunto que hereda una campaña, y que puede sobrescribir |
data.content | string | El documento HTML completo |
data.createdAt | string | Fecha de creación ISO |
data.updatedAt | string | Fecha ISO del último cambio |
data.unsupportedTags | array | Etiquetas de Mailchimp que se dejaron intactas en tu HTML: léelo |
Ejemplo de respuesta
json
{
"success": true,
"data": {
"id": "4d19c0a2",
"name": "Newsletter",
"defaultSubject": "August news",
"content": "<html>…</html>",
"createdAt": "2026-08-23T10:22:05.000Z",
"updatedAt": "2026-08-23T10:22:05.000Z",
"unsupportedTags": []
}
}