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 →
Updated in real time · the API always checks the live database
What our customers get from Block Lists
How the spam check API works
Three steps. Invisible to your users.
Send the IP and email
From any sign-up, comment, checkout or form — both in one HTTP request.
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.
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"
}
}
} 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.
- Full live database via API
- Offline copy: ~174K IPs · 128K emails (reported by 150+ sites)
- Full live database via API
- Offline copy: ~356K IPs · 219K emails (reported by 100+ sites)
- Full live database via API
- Offline copy: ~516K IPs · 288K emails (reported by 50+ sites)
- Full live database via API
- Offline copy: full database, ~1.3M IPs · 414K emails
Testing on a small project? 10,000 checks for $3 →
Pay yearly and save 20%. Need more than 22M checks a month? Contact us →
A live IP & email reputation database
Collected in real time from 320,000+ websites.
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 →