Runs examples for real against your account. Test keys only; kept in this tab, never stored on our side. Get a key
ZapSMTP / Docs / Emails

Spam-check a sent email

POST/v1/emails/{id}/spam-check

Score an already sent email (live or test) from the content archive.

Requires a full-access key.

Always scored with the transactional pool's IP when the account has no dedicated IP. Availability follows GET /emails/{id}/content (plan log retention), although the 404 message says 7 days.

Path parameters

idstringrequired
Email id

Errors

restricted_api_keyHTTP 403
not_foundHTTP 404
content not available (kept for 7 days)
rate_limit_exceededHTTP 429
service_unavailableHTTP 503
scanner_unavailableHTTP 503
POST/v1/emails/{id}/spam-check
curl -X POST 'https://zapsmtp.xyz/v1/emails/019a1f2e-7c3b-7d41-9a52-0c4b8e6f1a23/spam-check' \
  -H "Authorization: Bearer $ZAP_API_KEY"
Set ZAP_API_KEY in your environment.
Response 200 OK
{
  "object": "spam_check",
  "score": 6.2,
  "threshold": 5,
  "verdict": "spam",
  "engines": [
    {
      "engine": "spamassassin",
      "score": 6.2,
      "threshold": 5,
      "verdict": "spam",
      "rules": [
        {
          "name": "URIBL_BLOCKED",
          "score": 0.001,
          "description": "ADMINISTRATOR NOTICE: The query to URIBL was blocked"
        }
      ]
    },
    {
      "engine": "rspamd",
      "score": 4.1,
      "threshold": 6,
      "verdict": "needs_work",
      "rules": []
    }
  ],
  "dkim_signed": false,
  "sending_ip": "203.0.113.25",
  "issues": [
    {
      "kind": "not_signed",
      "message": "The From domain is not verified, so the message is not DKIM-signed and fails DMARC. Verify the domain before sending."
    }
  ],
  "note": "Scored as a receiving server sees it: DKIM-signed with your key, sent from your egress IP, checked against live DNS blocklists. SpamAssassin is the headline score (≥ 5 = spam); rspamd is shown alongside.",
  "email_id": "019a1f2e-7c3b-7d41-9a52-0c4b8e6f1a23"
}