Product

Every submission, judged before it reaches you.

Send a form submission from your backend and get back a verdict, a score and the reasons, in about a millisecond. Deliver the real ones, hold the rest, and show people why.

1,000 checks a month freeNo CAPTCHA, no script on your pageCancel any time
What one request gives you

A verdict you can act on, and explain.

Four fields. Enough to deliver, hold or drop automatically, and to tell a person what happened in words they understand.

labelspam or ham

Always one of the two. Your code needs a branch to take, not a maybe.

score0.97

How sure the verdict is, as a probability. Route the confident ones automatically and the borderline ones to review.

reasonsSPAM_PHRASE, NAME_EMAIL_MISMATCH

Stable codes with plain wording you can show people. New ones get added; none are renamed.

stagerules · ml · llm

Which part decided: memory and rules, the classifier, or the second opinion on a borderline message.

It learns your site

Tell it what your site is. Correct it once. It remembers.

A sentence about your site is enough for spamex to judge whether a borderline message belongs there: a quote request is a customer for a plumber and noise for a research lab. When it gets one wrong, one click marks it, the sender gets a good mark for your site, and the same message never bounces again.

  • Site description read on every borderline message
  • Memory of what you marked legitimate, per site
  • Sender reputation that helps you without one customer blacklisting another
  • Bulk corrections for a whole folder at once
How to wire a verdict →
Review · 2held, not delivered
Data request
score 0.71
Would you be willing to share the dataset from your 2025 paper for a replication study? Happy to sign whatever is needed.
Name does not match address
Not spamDelete
Delivered. Future messages from [email protected] go straight through on this site.
Built for a production path

Fast enough to sit in front of delivery. Safe enough to fail.

About a millisecond

Rules and a compact model settle 95 % of submissions before a human could blink.

Fast mode

On a path that answers the visitor's browser, never wait: borderline cases are tagged and re-checked from your queue.

Fail open

A timeout or an outage delivers the message. Losing a real enquiry costs more than one spam email.

Every language

Spam and customers in English, German, Spanish, Japanese and a dozen more, read the same way.

Nothing on the page

No script, no widget, no CAPTCHA. Your form stays yours and your visitors never know.

Limits you can see

Per-key allowances, clear rate limits, a usage endpoint, and a dashboard that shows where every check went.

Works where your form lives

One request from the code you already have.

Copy-paste handlers for the common stacks, and it is plain HTTPS for everything else. Most teams are done in an afternoon, and the afternoon is mostly the review folder in their own UI.

Private by default

Your visitors' messages are not our data.

A verdict does not require keeping the message. By default spamex stores a fingerprint of the text and hashed sender details, enough to recognise a repeat and nothing else. Full storage is a switch per key, any record can be deleted with one call, and platforms get a data-processing agreement.

A sentence you can put in your own policy

"Submissions are checked for spam by a service that keeps a fingerprint of the message and hashed sender details, not the message itself. Any record can be deleted on request."

What is stored, exactly →
Start free
$0 for 1,000 checks a month

Every reason code, corrections, the dashboard. Pro at $19 a month adds 25,000 checks per key and unlimited keys, one per site.

Run a form service?
Give every customer form its own key, and show them the reasons.

The platform API manages a key per customer form, rolls usage up for your billing, and comes with a data-processing agreement.