Spamhaus blacklist check: the four zones, the fix for each, and what changes when an agent sends

Look up your IP or domain on Spamhaus, read which zone lists you, fix the cause, then request removal. An agent sender adds one rule: it checks before it sends, and it never resends to test.

VerifiedBy Kam Low, Co-founder and CTO·Updated

How to run a Spamhaus blacklist check

A Spamhaus blacklist check tells you whether your IP or domain is listed on Spamhaus, a DNS blacklist that receiving mail servers query before they accept mail.

Run it on Spamhaus's own lookup at check.spamhaus.org.

  1. Note the IP address your mail is sent from (the Received header of a message you sent shows it) and the sending domain.
  2. Enter the IP at check.spamhaus.org, then enter the domain. Spamhaus lists the two separately.
  3. Read which zone lists you, then follow that zone's removal route in the table below.

An AI agent gets a sender listed in its own ways: it imports a scraped list that hits a spam trap, or a loop sends a burst from a new IP. The agent cannot see a listing unless it is told to look.

The zone decides the fix
SBLspam sources
PBLspace that should not send direct-to-MX, usually an auth misconfiguration
DBLdomains, not addresses
XBLexploited machines
ISP must request removal
self-service
expires once the cause stops
fix the machine
four zones, four different removal routes
Four zones, four removal routes.

Listed is not one condition. Spamhaus runs four zones, and each one has its own removal route, so read the zone before starting the remedy.

Spamhaus zones and how each listing is removed

ZoneWhat it listsHow removal works
SBLSpam sourcesThe ISP that controls the IP must request removal.
PBLAddress space that should not send direct to MX, usually an authentication misconfigurationSelf-service removal.
DBLDomains, not addressesThe listing expires once the domain stops showing the behavior that got it listed.
XBLExploited machinesClean the machine that is sending.

What changes when an AI agent is the sender

An agent that sends email, whether it works over MCP in an assistant or from code a coding assistant wrote, runs unattended, imports lists, writes the copy and retries when something fails. Each of those habits maps onto a Spamhaus zone, which is why the guide to sending email from LLMs treats the sending domain and the list as the first things to get right.

  • Lists the agent assembled or imported. Spam traps are addresses kept by mailbox providers and anti-spam organizations that never sign up for anything: old addresses that bounced for a long time, addresses created as traps, and typo variants of real domains. A scraped or stale list carries them, and trap hits are a common route onto a blacklist. nitro_import_contacts subscribes inline records only with an explicit opt_in and preserves existing subscription state, so an imported list does not become a subscribed list by default.
  • Volume spikes from a loop. A loop that resends, or a backlog sent in one go, arrives as a burst from an IP or domain with no history. Even a genuine business can torch a shared IP with a list that is stale or was not collected with consent.
  • Links the model put in the copy. DBL lists domains, and receivers look up the domains in a message's links as well as the sender. A link a model added from a scraped page or a shortener can land on a DBL-listed domain and drag down an otherwise clean campaign.
  • Agent inboxes on shared domains. An inbox on a shared vendor domain or a personal Gmail account is for one-to-one mail only, never a marketing identity. The From domain cannot align with your DMARC, there is no List-Unsubscribe or suppression join, and the sender inherits the shared domain's reputation, including any Spamhaus listing it picks up.

Why Spamhaus matters most

Receiving servers that query Spamhaus reject or junk mail from a listed IP or domain, so a listing reaches past any one provider. If you're debugging a delivery problem, Spamhaus is the first list to check. Its own lookup and the ZEN combined list are the authoritative sources.

A listing hurts most on transactional email, where it silently stops password resets and receipts that customers are waiting on. Those sends go through an email API with nobody watching at the moment delivery starts failing.

That breadth is why the check comes early in deliverability testing rather than late. Content scores and rendering fixes are wasted effort while a listing is active, since the wider work of email deliverability assumes receivers are willing to consider your mail at all.

The lookup itself is free, as is most of what surrounds it. The free testing stack covers blacklist lookups alongside authentication checks, and a quick Mail-Tester run reports blacklist status as part of its score, which is often how senders discover a listing in the first place.

Domain and IP listings are not fully separate either. A domain listing can spread to the IPs that send for it, which follows Spamhaus's own logic and is hard to predict from outside, so check both. Once Spamhaus is clear, a multi-list blacklist check covers the other lists, and the blacklist guide explains how each one is run.

Getting off Spamhaus

  1. Fix the cause first. The usual causes are spam sent from a compromised account, a complaint spike, and spam trap hits.
  2. Confirm authentication is clean.
  3. Request removal by the zone's route. Start from the listing the check.spamhaus.org lookup returned and follow that zone's route in the table above. Some listings clear on their own once the behavior stops. Others need a manual request.
  4. Test before real volume. Confirm the server accepts mail with an SMTP test or a telnet SMTP test, then send a test email to a seed set. Delisting restores eligibility, not reputation.

Send from a subdomain. Better than removal is never sharing a listing's blast radius. Putting the sending service on a subdomain rather than the apex keeps DNS and sending reputation apart from the company inbox, so a listing on the sending side does not take the corporate mail down with it.

Worked example: an agent checks a drop in delivery before the next send

Opens dropped and a campaign is due Thursday. The prompt: "Opens fell off a cliff yesterday. Check whether we're blocklisted before Thursday's campaign goes."

Before. Left unguided, the agent resends Thursday's campaign to the whole list to "test" whether mail is arriving. That adds a burst of volume from a domain that may already be listed and sends again to every spam trap on the list.

After. With the Nitrosend MCP tools, the agent works through a fixed sequence:

  1. nitro_get_status gets the account context, sender identity and readiness, so the agent knows which domain is sending.
  2. nitro_manage_domains diagnoses that customer sending domain.
  3. nitro_get_insights gets email analytics with trends, benchmarks and recommendations, which shows when the drop started.
  4. A person, or the agent with its own web access, looks up the sending domain and every domain linked in Thursday's campaign at check.spamhaus.org and reads any listing by zone. No Nitrosend tool runs this lookup.
  5. nitro_review_delivery runs a read-only review of Thursday's campaign, with validation, spam analysis, preflight and previews. It never approves or sends.
  6. A person holds or approves the campaign with nitro_control_delivery, which approves or controls campaign delivery after review. While a listing is active, the campaign stays held.

The difference in one line: before, the agent answers a delivery drop by sending more mail. After, it finds out why before anything else goes out.

Where it goes wrong when an agent hits a Spamhaus listing

  • A scraped or imported list with spam traps. One import of scraped addresses can hit enough traps to get the sender blacklisted, and the next send from the same list hits them again. Lists should come from people who asked for the mail.
  • A send loop from a fresh IP or domain. A new sender has no history to absorb a spike. On the Free plan, recipients per rolling 24 hours run from 100 to 5,000 by sender standing, with a new account at the low end, as the pricing page sets out, and an agent should treat that limit as a stop.
  • A link domain in generated copy that is on DBL. The sender is clean but the copy is not. Every domain a model puts in a link belongs in the lookup before the campaign goes.
  • Requesting removal before the cause is fixed. An agent told to "get us off the list" can file the request while the same list and the same loop keep running, and the listing comes back.
  • Switching to a new domain to dodge a DBL listing. A fresh domain sending the same mail inherits the same problem with no reputation to cushion it. Any sending limit or listing is a stop for the agent, never a prompt to find another route.

How Nitrosend handles a Spamhaus listing

  • Delisting on request. For customer sending domains, Nitrosend can file the Spamhaus delisting request on the sender's behalf once the cause is fixed. Ask at [email protected].
  • Consent on import. nitro_import_contacts subscribes inline records only with an explicit opt_in.
  • Review before approval. nitro_review_delivery runs spam analysis and preflight on a campaign and never sends, and a person approves with nitro_control_delivery.
  • A volume ceiling. On the Free plan, recipients per rolling 24 hours run from 100 to 5,000 by sender standing.

FAQ

How do I check an IP or domain on Spamhaus?

Enter the sending IP address at check.spamhaus.org, then enter the sending domain, because Spamhaus lists the two separately. Three of its four zones, SBL, PBL and XBL, list IP addresses, while DBL lists domains. A domain listing can also spread to the IPs that send for it, so check both every time.

Which Spamhaus zone am I listed on?

The lookup result names the zone, and each of the four has its own route. SBL is a spam source, and the ISP that controls the IP must request removal. PBL is address space that should not send direct to MX, with self-service removal. DBL lists domains and expires once the cause stops. XBL is an exploited machine to clean.

How do I get removed from Spamhaus?

Fix the cause first: a compromised account, a complaint spike or spam trap hits. Confirm authentication is clean, then follow the removal route for the zone the lookup named. Of the four zones, only PBL offers self-service removal. Some listings clear once the behavior stops. For customer sending domains, Nitrosend can file the delisting request.

Can an AI agent run a Spamhaus check?

An agent with its own web access can run the lookup at check.spamhaus.org; no Nitrosend tool runs it. Through Nitrosend, the agent diagnoses the sending domain with nitro_manage_domains, reviews the campaign with nitro_review_delivery, and treats a listing, or the Free plan's 100 to 5,000 recipients per rolling 24 hours, as a stop.

Go deeper

Diagnose the sending domain before the first send.

Simple pricing. Unlimited contacts.

Every plan includes full stack emailing: Flows, Newsletter Campaigns and Transactional Email, plus our NitroWheel LLM and all agent integrations (Claude, ChatGPT, Codex, Cursor and others). Pay for what you send, not who you store.

Choose your billing interval

Every paid plan includes 3 agent inboxes and no Nitrosend footer.

Starter

For your first email program.

$16USD / month

$192 billed yearly.

20,000 emails / month

Choose Starter
  • 5 brands · 3 seats
  • 5 custom sending domains
  • 500 email verifications/month
  • $1.50 / 1,000 extra emails

Pro

For a growing audience.

$40USD / month

$480 billed yearly.

60,000 emails / month

Choose Pro
  • 10 brands · 5 seats
  • 10 custom sending domains
  • 1,000 email verifications/month
  • $1.20 / 1,000 extra emails

Growth

For teams and agencies.

$120USD / month

$1,440 billed yearly.

200,000 emails / month

Choose Growth
  • Unlimited brands · 10 seats
  • 25 custom sending domains
  • 2,500 email verifications/month
  • $0.90 / 1,000 extra emails

Scale

For high-volume sending.

$240USD / month

$2,880 billed yearly.

500,000 emails / month

Choose Scale
  • Unlimited brands · 20 seats
  • 100 custom sending domains
  • 5,000 email verifications/month
  • $0.70 / 1,000 extra emails
Enterprise

Hey, big sender.

Sending 500,000+ emails a month? Get a custom plan designed for you, with volume email pricing and capacity that fits your business.

Start free. No card needed.

5,000 emails to start, then 500 emails every month. No expiry on your starter emails.

Start free

Daily allowances depend on your plan and sender standing. Strong list, domain and delivery evidence can raise standing, including on day one. Trusted receives the full plan allowance; available email credits, safety checks and delivery pacing still apply.

Free forever. No credit card required. See full comparison →