Check an email before you send it
POST/v1/templates/check
Looks over an email’s HTML and says what is likely to go wrong: things Gmail, Outlook or Apple Mail strip or ignore (scripts, forms, flexbox, SVG, positioned elements, very large messages) and links that go nowhere (empty, #, placeholders like example.com, local addresses, plain http, text that shows one address and links to another). Send the html, or a template_id (and optionally a version). With live: true it also opens each https link, up to 25, to see whether the page still exists; sites that refuse automated visits are reported as “could not check”, never as broken. Findings are error, warning or info. ok is false when there is at least one error.
Required scope: templates:manage
Example
curl -X POST 'https://api.sendsend.email/v1/templates/check' \
-H "Authorization: Bearer $SENDSEND_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"html": "<a href=\"#\">Verify</a>",
"live": false
}'Response 200
{
"object": "email_check",
"links_checked": null,
"ok": false,
"errors": 1,
"warnings": 0,
"findings": [
{
"id": "link-empty",
"level": "error",
"message": "A link has no address (empty, \"#\" or javascript:), so clicking it does nothing.",
"fix": "Give every link a real address, or remove the link.",
"count": 1,
"example": "“Verify”"
}
]
}Errors
| Status | Code | When |
|---|---|---|
| 404 | not_found | No such resource in this project. |
| 400 | validation_error | The request body or parameters are invalid. The message says which field. |
| 401 | unauthorized | The API key is missing, invalid or revoked. |
| 403 | forbidden | The key does not have the scope this endpoint needs. |
| 429 | rate_limited | Too many requests. Wait for the number of seconds in the Retry-After header. |
Every error has the same shape. See Errors.