Products

Spam Filter for Procaptcha and Prosopo Protect

Spam Filter is part of Procaptcha — it runs inside every Procaptcha verification, not as a separate SDK or endpoint. It pairs an Email Filter (throwaway addresses, disposable-domain detection via DNS/CNAME/MX lookups, custom regex blocklist) with a Traffic Filter (eight independent network-class toggles: abusive networks, VPN, proxy, Tor, datacenter, crawler, mobile, satellite), each tunable per site.

Because it lives inside the verification path Procaptcha already runs, there's no extra endpoint to call and no separate integration to maintain. Enable the filters you want in the dashboard; every verification your captcha handles is evaluated against them; blocked requests come back with a distinct reason per filter so your application can show a tailored message.

How Spam Filter runs inside Procaptcha

Rule-based evaluation that happens during each Procaptcha verification, with a distinct reason for every block.

  1. 01

    Email Filter (curated + custom)

    Curated default patterns catch throwaway addresses from Gmail, iCloud, Yahoo and other major providers. Optional Gmail-style normalisation collapses plus-addressing and dot-tricks to a canonical mailbox. Add your own regex patterns for organisation-specific abuse (up to the per-site regex limit).

  2. 02

    Disposable-domain detection

    The Email Filter checks the address against a maintained disposable-domain list and follows the domain through HTTP redirects, DNS CNAME chains and MX records — so a freshly-registered throwaway domain that CNAMEs to a known disposable backend still gets caught.

  3. 03

    Traffic Filter (eight independent toggles)

    Block submissions by network class — abusive networks, VPN, proxy, Tor, datacenter, crawler, mobile, satellite — each toggleable per site. Abusive-network blocking is on by default for every account, including free tier. The other seven are opt-in per site.

  4. 04

    Tunable per site

    Every filter is independently tunable per site key. High-risk endpoints (signup, checkout, contact) can run tight rules while low-risk endpoints run permissive. Abuser-score threshold is a numeric knob (0.0-1.0) rather than an on/off toggle.

  5. 05

    Distinct reason per block

    Every blocked verification returns a reason code — the specific filter that rejected the request. Your application can show 'Please disconnect your VPN and try again' or 'This form isn't supported over Tor' rather than a generic failure.

Why Spam Filter is worth turning on

Zero extra integration

Runs inside the Procaptcha verification you already have. Toggle a filter in the dashboard and the next captcha verification enforces it — no new endpoint, no new SDK, no code deploy.

Curated by our threat research team

Default email patterns and abusive-network signals are maintained centrally. New evasion tricks caught for one customer are blocked for everyone the moment the pattern lands in the default set.

Per-block reason codes

Every blocked request comes back with a distinct reason per filter — VPN, Tor, disposable domain, custom-regex match — so your application can show a tailored user message instead of a generic failure.

Independent per-site toggles

Eight traffic filters and the email filter each toggle independently per site key. Sensitive endpoints (signup, checkout) can run tight rules while low-risk endpoints (documentation, marketing pages) run permissive.

No user-facing widget

The evaluation happens server-side during the Procaptcha verify call. Real users see nothing different from a normal Procaptcha challenge; blocked requests fail before your form's success flow runs.

How Spam Filter fits into Procaptcha

Spam Filter is not a separate SDK, a separate <script> or a separate endpoint. It's a rule set that runs inside every Procaptcha verification — the same /verify call your backend already makes to Prosopo when a user submits a form or hits a protected endpoint. Enable the filters you want in the dashboard; the next verification enforces them. No new integration surface, no extra network hop, no code deploy.

Two rule layers evaluated per verification:

  1. Email Filter — matches on the email address the form submitted (or that your backend passed to /verify). Curated patterns for throwaway addresses, optional normalisation, custom regex blocklist, disposable-domain detection via DNS.
  2. Traffic Filter — matches on the network the request came from. Eight independent toggles for VPN, proxy, Tor, datacenter, crawler, mobile, satellite, and generic "abusive" networks scored by our upstream reputation feed.

Each layer can be toggled independently per site key, so the same Prosopo account can run tight rules on your signup endpoint and permissive rules on your comment form.

Why your forms keep getting spam

If your inbox is filling up with fake signups, your contact form is generating obvious junk, or your WordPress site keeps sending spam emails you didn't author, the cause is almost always the same: a bot is submitting your form directly, faster than any keyword filter or honeypot can keep up. The fix isn't a smarter inbox rule. It's stopping the submission before the form processes it.

Anti-spam measures that only run after submission (Akismet, server-side keyword filters, post-hoc email validation) treat the symptom. Prosopo's Spam Filter treats the cause — it evaluates during the Procaptcha verification, so an abusive request is rejected before your form's success flow runs.

Email Filter: stop signup spam

Most signup spam doesn't come from random email accounts. It comes from a small set of evasion techniques that turn a single mailbox into thousands of apparent addresses, or from networks of disposable inboxes that exist only to bypass verification.

The Email Filter catches both:

  • Throwaway address normalisation. Throwaway variants from Gmail, iCloud, Yahoo and other major providers all resolve to the same mailbox. The filter optionally normalises addresses before applying your rules, so one rule catches every variant.
  • Curated default patterns. A maintained ruleset that targets throwaway address tactics from the major providers used to bypass signup verification.
  • Custom blocklist. Add your own patterns to block addresses unique to abuse you're seeing.
  • Disposable-domain detection. Optionally rejects addresses from known throwaway providers — and follows the domain through redirects, CNAMEs and MX records so freshly-registered throwaway domains can't slip through by pointing at a known backend.

Traffic Filter: block abusive network sources

The Traffic Filter rejects requests by the type of network they came from. Each filter is an independent toggle, so you can build the exact policy your audience needs:

FilterWhat it blocksRecommended for
Abusive networksNetworks with a strong abuse signalEveryone — on by default for all accounts
VPNKnown consumer VPN servicesSites with high signup-fraud exposure
ProxyHTTP, HTTPS and SOCKS proxiesAPI endpoints and high-value forms
TorTor exit nodesMost consumer-facing forms
Datacenter / HostingCloud and hosting IP spaceSites whose users browse from residential networks
CrawlerKnown automated botsMost forms (excluding documentation/marketing pages)
MobileCellular networksNiche — only when fixed-line access is required
SatelliteSatellite internetNiche — only when ground-based access is required

Blocks are reported back to your application with a distinct reason for each filter, so you can show users a tailored message ("Please disconnect your VPN and try again", "This form isn't supported over Tor", and so on) rather than a generic failure.

What's on by default

  • Free tier accounts get abusive-network blocking on by default. It's the single highest-signal traffic filter and is safe to leave on for any account. The other seven traffic filters and the Email Filter come with Professional and above.
  • Professional, Enterprise and Custom include every filter, per-site tuning, custom regex patterns and Gmail-style address normalisation.

You need Procaptcha to use Spam Filter

Because Spam Filter runs inside the Procaptcha verification, you need Procaptcha (or Prosopo Protect) on the endpoint first — the widget on a form, or Protect as a script tag on your forms or an edge worker (Cloudflare Workers or AWS Lambda@Edge) in front of your site and API. If you haven't yet, start with Procaptcha for a form-level integration or Prosopo Protect for a whole-site / API deployment; then turn Spam Filter on in the dashboard.

How Prosopo Spam Filter compares

Full capability Partial / caveat Not available
CapabilityProsopo Spam FilterAkismetreCAPTCHA / hCaptcha
Network-level blocking (VPN, Tor, datacenter)●●●
Email signup-evasion blocking●●●
Disposable-domain detection●● Limited●
Custom blocklists●●●
Per-block reason codes for tailored user messages●● Limited●
GDPR-compliant data handling●● Varies●

Common use cases

Platform-specific guides

If you're trying to stop spam on a specific form plugin or platform, jump to the install guide:

Configuration reference

Full details of the Email Filter rules, the eight Traffic Filter toggles and their block reasons are in the docs:

See what's reaching your site

A Bot Exposure Assessment is a 30-minute call with an engineer. We look at your traffic, show where your current setup leaves gaps, and agree how a trial would be judged. Nothing to install first.

Questions

Something else? Ask an engineer.

How does the spam filter work?

Our spam filter combines two layers: an email filter that catches throwaway addresses and signup-evasion tricks, and a traffic filter that blocks requests from networks heavily associated with abuse — VPNs, proxies, Tor exits, datacenters, crawlers and more. Each layer can be tuned independently per site.

Will legitimate messages be blocked?

Defaults are tuned to minimise false positives — the curated email patterns target known evasion tricks rather than legitimate names, and the only traffic filter enabled by default targets networks with a strong abuse signal. Every filter is independently toggleable, so you can dial sensitivity to your audience.

Can the spam filter be integrated with our existing systems?

There's nothing extra to integrate. Spam Filter runs inside the Procaptcha or Protect check you already have, including the WordPress plugins and framework integrations.

Does the spam filter work for non-English content?

Yes. The email and traffic filters are language-agnostic — they look at addresses, domains and network properties rather than message text — so they work the same for content in any language.

Can you stop throwaway Gmail, iCloud and Yahoo addresses?

Yes. The Email Filter comes with a curated default ruleset that catches the throwaway address patterns used by Gmail, iCloud, Yahoo and other major providers — where a single mailbox can pose as dozens of distinct signups. You can also opt in to address normalisation, which resolves provider-specific variants to a single canonical address before evaluating your custom regex blocklist, so one rule catches every variant of the same mailbox.

Can I block submissions coming from VPNs, proxies, or Tor?

Yes. The Traffic Filter provides independent toggles for blocking VPN, proxy, Tor, datacenter, crawler, mobile and satellite traffic. Each block returns a distinct reason so your application can show the user a tailored message — for example asking VPN users to reconnect, or telling Tor users the form isn't supported on that network.

Are abusive networks blocked automatically?

Yes. Traffic from networks flagged for abuse is blocked by default for every account, including free tier. Paid-tier accounts can adjust this setting, but it is recommended to keep it enabled.

What traffic types can I filter?

The Traffic Filter supports eight independent filters: VPN, proxy, Tor, abusive ASNs, datacenter/hosting IPs, crawlers, mobile networks, and satellite connections. Each can be toggled on or off per site. Traffic filtering is included from Professional upwards; abusive-network blocking is on for every account, including Free.