Free. No keys, no accounts, no signup.
Base URL: https://spam.is/api. Rate limit on
/inbox/*: 30 requests/minute/IP. /domains/*:
20 requests/hour/IP. That's it, no registration, no tiers, use it.
Address format everywhere below: lowercase letters, numbers, dots,
underscores, hyphens, up to 64 characters. Local-part only, no
@spam.is in the URL.
All messages currently stored for that address.
400 if the address doesn't match the format above. An
empty messages array isn't an error, it just means
nothing has arrived yet, or the address never existed. There's no way
to tell those apart, on purpose.
Deletes everything stored for that address. Immediate, no undo.
Same as above, for a verified custom domain
instead of spam.is. 404 if the domain isn't registered and
verified. For private custom domains, requires management key authentication.
For GET: use x-management-key header or key query parameter.
For DELETE: use x-management-key header or in request body.
Public domains don't require authentication.
Bring your own domain: point its MX at mail.spam.is, prove
you control it with a DNS TXT record, and every address at it works
like @spam.is. No account - the managementKey
returned from POST /api/domains is required for
verify and DELETE, and is shown exactly once.
Full flow: domains.html.
409 if the domain is already registered.
Checks the TXT record and, on a match, starts accepting mail for the domain.
Public status check, no key needed.
Stops accepting mail for the domain. Requires the managementKey.
Get the list of public domains available for instant use without registration. These domains are pre-configured and verified by spam.is.
Public domains can be used immediately without any registration or verification. You can check inboxes on public domains just like any other custom domain, no management key needed.
Lost the managementKey? Current DNS control is exactly the proof we accepted the first time, so it's enough to issue a new one - no old key needed. Returns a fresh token to publish as the TXT record, replacing the old value. Doesn't affect mail already being accepted for the domain.
Checks the new TXT record and, on a match, issues a new managementKey.
Global counters. Not tied to any address, not affected by burns.
total_messages is exact. unique_addresses is
a HyperLogLog estimate (±0.81% typical error), there's no
stored list of every address ever used behind it, just a counter.
Attachments come back base64-encoded (filename,
contentType, size, content),
completely unfiltered, nothing is scanned. If you're building
something that renders html or opens attachments, treat
all of it as hostile input. See the Terms of
Service for what you can't use this for.