Blog/data
1 min read

My Bounce Rate, Before and After One API Call

How I stopped a cold campaign from bouncing by adding a single Strale email-validate call in front of my send, on Monid's pay-per-call wallet.

My Bounce Rate, Before and After One API Call

Copy this line to your agent to verify an email before you send.

set up https://monid.ai/SKILL.md and use strale to validate an email address and check deliverability

The fix was embarrassingly small. I put one email verification call in front of my send, and the bounces that were quietly wrecking my sender reputation mostly went away. No new vendor, no credit pack, no dashboard to log into. One GET request per address, priced per call, drawn from the same wallet I already use for scraping. If you have ever watched a cold campaign come apart at the seams, this is the short version of what I wish I had done first.

Let me back up and tell you how I got there, because the mistake is more common than anyone admits.

The campaign that taught me this

I had a list. Roughly 800 addresses I had pulled together for a small outreach push: some scraped from company pages, some typed in from a conference badge photo, a handful from an old signup form. I did the obvious thing. I dropped the whole list into my sequence and hit go.

The first morning looked fine. By the afternoon my inbox filled with the sound no sender wants to hear: mailer-daemon after mailer-daemon. Address not found. Domain does not exist. Mailbox full. A few were obvious typos I could have caught by reading carefully, @gmial.com instead of @gmail.com, that kind of thing. Plenty were just dead. And a surprising number were disposable throwaways someone had used to grab a lead magnet and never check again.

Here is the part that actually hurt. It was not the bounces themselves, it was what they did to everything after them. Mailbox providers watch your bounce rate. Send to enough dead addresses in a short window and they start reading you as a spammer, so your good mail, the messages to real people who might actually reply, starts sliding into spam folders. I had poisoned my own well for a list I never validated.

What actually bounces, and why you cannot eyeball it

Once I sat down to fix it, the failure modes sorted into a few clean buckets, and none of them are visible by scanning a spreadsheet:

  • Syntax that looks fine but is not. Real RFC 5322 rules are fussier than they seem, and a stray character sails past a human read.
  • Domains with no mail server. The domain resolves, the website loads, but there is no MX record, so no mail will ever land there.
  • Disposable domains. Ten-minute inboxes that existed only to clear a form. There are thousands of these, and I cannot keep the list in my head.
  • Typos in common providers. gmial.com, hotnail.com, yaho.com. Often recoverable if something suggests the correction.
  • Role addresses. info@, sales@, support@. Not wrong exactly, but they behave differently in a cold sequence and I usually want to flag them.

You cannot see any of this by looking. You have to ask a machine that already knows.

The one call I added

The machine I asked is Strale, an email and identity validation provider I reach through Monid. Monid is a pay-per-call data API marketplace: one integration and one balance reach hundreds of external data endpoints, so I did not have to sign up for a verifier as a separate account. I found the endpoint, checked its shape, and wired it in.

The workhorse is /x402/email-validate. When I inspected it, the schema was refreshingly boring: a GET that takes a single email query parameter. What comes back is exactly the set of buckets above. Per Strale's own description, it checks RFC 5322 syntax, MX records, disposable domains across 5,361 known throwaways, role-based patterns across 35 forms, free-provider flags, and a typo suggestion that turns gmial.com back into gmail.com. That is the whole verdict I needed to decide whether a row stays on my send list.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More details in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

More details in the CLI quickstart.

Then the check itself is one line. I ran a free inspect first to see the schema and the price before spending anything:

monid inspect -p api.strale.io -e /x402/email-validate      # schema + price (free)

monid run -p api.strale.io -e /x402/email-validate \
  --query '{"email": "jane@acme.com"}'
# -> syntax, MX, disposable, role, free-provider, typo suggestion
#    billed per call, a few cents, price shown before it ran

I looped that over the whole list, kept the addresses that came back clean, fixed the ones with a typo suggestion, and dropped the disposables and the dead domains. Same 800 names in, a much smaller and much realer list out.

What the next send looked like

Boring, in the best way. The mailer-daemon flood was gone. The bounces that remained were the ordinary trickle you always get, not the reputation-cratering wall from before. My good mail went back to landing where it should. I did not fabricate a fancy number to put on a slide, I just stopped watching my sender score fall.

The mental model that stuck with me: verification is not a cleanup chore you run at the end, it is a gate you put at the front. Every address earns its place before it costs you a send.

When one address is not the question

Sometimes the mailbox is fine but the whole domain is the problem, or I want to be extra sure about one prospect who really matters. Strale splits those out, which I appreciated, because I only pay for the depth I actually ask for.

When I want to know whether mail to a domain will land at all, /x402/email-deliverability-check takes a domain and returns SPF, DKIM, DMARC, MX, and blacklist status as a single 0 to 100 score. I run this on my own sending domain before a campaign, and on a partner's domain before I trust it.

When a lead is worth a closer look, /x402/solutions/lead-email-verify is a POST with an email in the body that folds the deliverability check, DNS, and domain reputation into one real-or-not verdict. It costs more per call because it does more, and a free inspect shows the exact price before I commit. I do not run it on all 800, I run it on the ten that matter.

The part I did not expect

Here is the quiet win. The dollar I spent verifying that list came from the same pay-as-you-go wallet that already runs my scraping and enrichment. There was no separate email-credit balance to pre-buy, size, or write off at year end. The money I did not spend on verification is still sitting there for the next scrape or the next lookup. Verification stopped being a vendor and became a line item.

For a hundred-ish checks a day, which is roughly where an outreach workflow lands, that is a single-digit-dollar habit, and the price of every endpoint sits at monid.ai/tools before you ever run anything. That was the moment it clicked for me: the check that saved my reputation was cheaper than the coffee I drank while cleaning up the mess it prevented.

FAQ

Do I really need to verify a list I scraped myself? Especially then. Scraped and hand-typed addresses are where the typos, dead mailboxes, and disposables hide. Those are exactly the rows that spike your bounce rate and drag your sender reputation down.

Is one email-validate call enough, or do I need the deeper checks? For list hygiene before a send, the single validate call covers it: syntax, MX, disposable, role, free-provider, and typo suggestion. Save the domain-level deliverability check and the full lead verify for your own domain and for the handful of prospects that genuinely matter.

How much does this cost me? A few cents per call for the basic validate, more for the deeper lead verify, always shown before it runs. There is no credit pack to pre-buy and nothing that expires, since it draws from the same shared wallet. Current per-endpoint prices are at monid.ai/tools.

Can my agent do this on its own? Yes. Monid ships as an MCP server, so an agent can inspect the right endpoint and run the verification inline the moment it finds an address, without me babysitting a separate meter.

Try the same thing

Take twenty addresses you already know the answer for, run a free monid discover for email verification, inspect /x402/email-validate, and check them. If the verdicts match what you know, wire it in front of your next send and let one wallet cover the whole pipeline. Start at monid.ai.

dataagentsemail