IP & Email Spam Check API Know the spammer before they sign up

One API call checks IPs and emails against CleanTalk's database of known spammers — on sign-up forms, comments, orders or newsletter sign-ups.

Want to try it first? Look up any IP or email — free, no sign-up →

Demo dataBlock Lists · spam_check
 
Example responses
4.5M+spam IPs seen in the last 30 days
695K+spam emails seen in the last 30 days
320K+websites reporting spam in real time

Updated in real time · the API always checks the live database

Customer use cases

What our customers get from Block Lists

Online marketplacechecks new sellers and buyers before they can list or message.Buyers feel safe — and keep coming back.
Email newsletter serviceblocks fake sign-ups before the confirmation email goes out.Every send goes out without worrying about the spam folder.
Website platformkeeps spam sign-ups and abusive content off the platform.No more mornings spent deleting fake accounts.
Legal marketing agencyfilters fake inquiries out of law firms' lead forms.Law firms only get real inquiries — so they keep trusting the agency.
Travel companykeeps spam out of booking and inquiry forms.Staff answer real travelers, not bots.
IT integratorbuilds spam protection into the products it delivers.Delivers protection clients trust — without maintaining a spam database.
IP and email in one requestMany services check one or the other. We check both in a single API call.
More than a yes or noSpam history, how many websites reported it, VPN / Tor / hosting networks — in one answer. Disposable and existence checks for single addresses.
How it works

How the spam check API works

Three steps. Invisible to your users.

01

Send the IP and email

From any sign-up, comment, checkout or form — both in one HTTP request.

02

Get the verdict

Known spammer or not, how many websites reported it, how much spam it sent in the last 24 hours, when it was last seen.

03

You set the threshold

Block if either is on the list right now, review addresses with a spam history, let real users in.

Not sure where to start? Block if appears = 1. What every field means →

After payment, copy your API key from your CleanTalk dashboard and paste it in place of YOUR_KEY.

curl "https://api.cleantalk.org/?method_name=spam_check&auth_key=YOUR_KEY&ip=45.142.120.33"
$ip = '45.142.120.33';
$res = json_decode(file_get_contents(
    "https://api.cleantalk.org/?method_name=spam_check&auth_key=YOUR_KEY&ip=$ip"
), true);

if ($res['data'][$ip]['appears'] == 1) {
    // known spammer — block
}
import requests

ip = "45.142.120.33"
res = requests.get("https://api.cleantalk.org/", params={
    "method_name": "spam_check", "auth_key": "YOUR_KEY", "ip": ip,
}).json()

if res["data"][ip]["appears"] == 1:
    pass  # known spammer — block
const email = "user@example.com";
const url = "https://api.cleantalk.org/?method_name=spam_check"
  + "&auth_key=YOUR_KEY&email=" + encodeURIComponent(email);

const { data } = await (await fetch(url)).json();
if (data[email].appears === 1) {
  // known spammer — block
}
curl -X POST "https://api.cleantalk.org/?method_name=spam_check&auth_key=YOUR_KEY" \
  -d "data=45.142.120.33,bulk.offers@mailinator.com,203.0.113.7"

You should get a response like this (shortened):

{
  "data": {
    "45.142.120.33": {
      "appears": 1,
      "frequency": 846,
      "spam_rate": 1,
      "spam_frequency_24h": 37,
      "updated": "2026-10-23 09:14:02",
      "network_type": "hosting"
    }
  }
}
Pricing

Spam check API pricing: pay only for the checks you use

Every plan checks the full, live database via API. One check = one IP or email. Larger plans also include a bigger offline copy of the database for your own servers.

750,000checks / month
Level 2plan level
$75per month · $720 billed yearly
Level 2
$33/mo
250,000 checks / month
  • Full live database via API
  • Offline copy: ~356K IPs · 219K emails (reported by 100+ sites)
Choose Level 2
Level 3
$83/mo
1,000,000 checks / month
  • Full live database via API
  • Offline copy: ~516K IPs · 288K emails (reported by 50+ sites)
Choose Level 3
Level 4 · Full database
$350/mo
6,000,000 checks / month
  • Full live database via API
  • Offline copy: full database, ~1.3M IPs · 414K emails
Choose Level 4

Testing on a small project? 10,000 checks for $3 →

Pay yearly and save 20%. Need more than 22M checks a month? Contact us →

Always fresh data

A live IP & email reputation database

Collected in real time from 320,000+ websites.

150,000+spam IPs active every day
4,000+new spammers added every day
Every houroffline file updates — the API is always live
14 dayswithout spam, and a record is removed
Beyond the API

Same spam database, three more ways to use it

Prefer a file, a mail-server setup or a one-off list check? Pick what fits — we'll show you how it works.

Download the database via SFTP as CSV or IPSet files, updated every hour, and run checks on your own servers — no requests leave your network. Included in every plan; larger plans include a bigger offline copy.

Query the list over DNS from your mail server and reject spam before it reaches the inbox. Setup takes a few lines in Postfix, Sendmail or SpamAssassin. Included in every plan.

Paste or upload a list of IPs and emails — we flag the ones seen spamming, and you can download the results as CSV or JSON. Each record uses one check from your plan. We don't check whether mailboxes exist. Try up to 5 records for free.

Spam check API: questions

One IP address or one email. A sign-up checked by both IP and email uses 2 checks — so 100,000 checks cover about 50,000 sign-ups. Batch requests of up to 1,000 are counted the same way.

Your dashboard shows how many checks you've used and how many are left, so you can move to a bigger plan before you run out.

From real-world spam reports sent by CleanTalk plugins and integrations — more than 5 million every month. Every record shows how many websites reported it and when.

Records are removed from the list after 14 days without spam activity, and anyone can request removal of an IP or email on the public lookup page. You can also use frequency and last-seen date to set your own threshold instead of blocking on any match.

We're not a validator. We tell you whether an address has been seen spamming — on how many websites and how recently. You can check a whole list in your dashboard and we'll flag known spammers, but we don't clean lists of dead or fake mailboxes.

Yes. Every plan includes the offline database — download it as CSV or IPSet files via SFTP, updated hourly, and run checks on your own servers — no requests leave your network. Using the API? Send SHA-256 hashes instead of raw IPs and emails.

Yes. Query the list over DNS (DNSBL) and reject spam before it reaches the inbox. DNSBL is included in every plan — no separate subscription.

Stop cleaning up after spammers.

Set it up once — every sign-up is checked from then on.

Get 100,000 checks — $20/month →

Talk to us about large volumes

Tell us what you need — we'll reply within one business day.