sendsend.email

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

StatusCodeWhen
404not_foundNo such resource in this project.
400validation_errorThe request body or parameters are invalid. The message says which field.
401unauthorizedThe API key is missing, invalid or revoked.
403forbiddenThe key does not have the scope this endpoint needs.
429rate_limitedToo many requests. Wait for the number of seconds in the Retry-After header.

Every error has the same shape. See Errors.