Why your Retell AI calls show Spam Likely, and how to check
**If your Retell agent's calls go unanswered, or end as not_connected with marked_as_spam or network_blocked, carriers are probably labeling or blocking your number.** You can see exactly what AT&T, Verizon and T-Mobile show by having your Retell number call our test lines. You get the label, the caller name and a screenshot from a real phone on each carrier, about 5 seconds after the call rings.
Platform details checked October 2026. Spam I Am isn't affiliated with Retell AI.
What it looks like in Retell
Retell records why each call ended in the disconnection_reason field. You can see it in the dashboard's call history or with the Get Call API.
Two reasons point straight at spam:
- **
marked_as_spam**: Retell's docs say the call was marked as spam. - **
network_blocked**: the destination carrier's network blocked the call, commonly through its spam filter.
Both come with a call status of not_connected, meaning the call never reached the person.
Retell's spam overview says a SIP 608 error in your outbound log means the call was rejected as spam likely, and that not every spam rejection returns 608. Since March 25, 2026, US carriers are required to use SIP 603+ ("Network Blocked") for analytics-based blocking, so newer logs may show 603 instead. What 603+ and 608 mean
The quiet case is the common one. A call that rings with "Spam Likely" or "Spam Risk" on screen produces no error at all. It shows up as an ordinary unanswered or short call. Blocks show in your logs. Labels don't.
Why Retell numbers get flagged
The causes are the same on every platform. Retell's own docs name the first two.
- Volume spikes without warmup. A new number that suddenly places hundreds of calls looks like a robodialer.
- Low pickup rates and many short calls in a short period, which Retell warns can get a number marked as spam.
- New or recycled numbers. Retell's verified-number page notes recycled numbers can carry a previous owner's spam history.
- Missing registration or weak STIR/SHAKEN attestation.
- Complaints. People reporting or blocking your calls is the biggest single factor.
Place the test call from Retell
A check needs a real call from the number you're testing to each carrier's test line. We never spoof numbers, so Retell has to place the call.
Use the Create Phone Call endpoint with your Retell number as from_number and our test line as to_number. Our phone lets the call ring for a few seconds, then sends it to voicemail. Override the agent for this call so it hangs up on voicemail and stays short:
curl -X POST https://api.retellai.com/v2/create-phone-call \
-H "Authorization: Bearer $RETELL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+12145550100",
"to_number": "+14695550123",
"agent_override": {
"agent": {
"voicemail_option": { "action": { "type": "hangup" } },
"max_call_duration_ms": 60000
}
},
"metadata": { "purpose": "spam-label-check" }
}'
to_number is the dial value from the check. Place one call per carrier, one after another.
Run the check with Spam I Am
Start a check, call each test line from Retell, then read the result. The first check on a number is free and needs no key.
curl -X POST https://ismynumberspam.com/v1/checks \
-H "Content-Type: application/json" \
-d '{"number": "2145550100"}'
The answer has an id, a token (for a keyless check) and a calls list with a dial number per carrier. You have 2 minutes for one carrier, plus 1 minute for each extra carrier.
The full flow in Python, using Retell's SDK:
import os, time, requests
from retell import Retell
SIA = "https://ismynumberspam.com/v1"
NUMBER = "+12145550100" # your Retell number
key = os.environ.get("SIA_API_KEY") # optional for the first check
h = {"Authorization": f"Bearer {key}"} if key else {}
retell = Retell(api_key=os.environ["RETELL_API_KEY"])
check = requests.post(f"{SIA}/checks", json={"number": NUMBER}, headers=h).json()
q = {} if key else {"token": check["token"]}
def get_check():
return requests.get(f"{SIA}/checks/{check['id']}", headers=h, params=q).json()
for line in check["calls"]:
retell.call.create_phone_call(from_number=NUMBER, to_number=line["dial"])
while True: # wait for this carrier before dialing the next line
c = next(x for x in get_check()["calls"] if x["carrier"] == line["carrier"])
if c["status"] != "waiting":
break
time.sleep(5)
for c in get_check()["calls"]:
print(c["carrier"], c["status"], c.get("label"), c.get("caller_name"), c.get("screenshot_url"))
These examples are a starting point. Check field names against Retell's current docs before you rely on them.
Each carrier comes back complete (with flagged, label, caller_name and a screenshot) or incomplete. Incomplete with reason: no_call plus a network_blocked or marked_as_spam call in Retell means the carrier blocked it before it rang. That's more urgent than a label. Incomplete carriers are free.
Prefer not to poll? Pass webhook_url when you start the check, and we'll POST the signed result to you.
Use MCP
Retell agents can call tools on a remote MCP server. In your agent, open MCPs, click Add MCP, enter https://ismynumberspam.com/mcp, and add an Authorization: Bearer sia_... header if you have a key. Then add only the tools you want.
For agent builders, connect both servers to your coding agent: Retell's to place calls, ours to run checks.
claude mcp add --transport http spam-i-am https://ismynumberspam.com/mcp
claude mcp add --transport http retell https://mcp.retellai.com \
--header "Authorization: Bearer $RETELL_API_KEY"
Then ask: "Check +1 214 555 0100 on all three carriers. Use Retell to call each test line, then report each carrier."
Pre-campaign checklist
- Check every new number before it goes into a campaign. Don't release it until it comes back clean.
- Check before each campaign or list. One check on all three carriers costs $0.40.
- Re-check after volume spikes or a drop in pickup rate.
- Check on a schedule while numbers are active. Weekly is a sensible start for busy numbers.
- **Watch
marked_as_spamandnetwork_blockedcounts** byfrom_number. A jump means check now. - Remember the limit: each number can be checked once an hour.
If it's flagged
Pause calls from that number first. More calls from a flagged number mean more unanswered calls and more reports. Then:
- Fix the cause. Slow down, warm up, clean your list, and cut dead air at the start of calls.
- Use Retell's options. Both are US-only, need an approved business profile, and take 1 to 2 weeks to process.
- Verified phone number: Retell registers the number with carriers, for a monthly fee per number listed on Retell's pricing page.
- Branded call: shows your business name instead of the number. Listed at $0.10 per outbound call. Retell recommends pairing it with a verified number, because a branded call can still be marked Spam Likely.
- Register with the Free Caller Registry at freecallerregistry.com. It sends your details to Hiya, First Orion and TNS.
- Request a review from each carrier where you're flagged: AT&T · Verizon · T-Mobile
- Rest the number. Retell's docs suggest warming up a new number gradually if a number keeps getting blocked. Do that only after fixing the cause. Rotating in fresh numbers to dodge labels tends to get the new numbers flagged too.
- Consider reputation-management providers if you run many numbers. They handle registration and review requests across carriers, but none can guarantee a label comes off.
Re-check every few days. Reviews commonly take days to weeks. We only check: we don't remove labels.
FAQ
Does marked_as_spam mean my number shows "Spam Likely" everywhere?
No. It means that call was stopped. Each carrier decides separately, so your number can be blocked on one, labeled on another, and clean on a third. A check shows each carrier.
My Retell logs look normal but nobody answers. Could it still be spam?
Yes. A labeled call still rings and produces no error. Only the recipient's screen shows the label.
Will Retell's verified number fix an existing label?
It registers the number with carriers, which helps, but calling patterns still matter. Check before and after.
Can I check a number Retell bought for me?
Yes. Bought or imported, any number you can call from works.
How much does a check cost?
The first check on a number is free. After that, $0.25 for one carrier or $0.40 for two or three, from a prepaid balance.
Sources
- Retell: Debug outbound connection issues
- Retell: Debug call disconnection
- Retell: Spam likely overview
- Retell: Apply for verified phone number
- Retell: Apply for branded call
- Retell: Create Phone Call API
- Retell: MCP tools for agents
- Retell: MCP server
- Retell pricing
- Spam I Am API docs · MCP server
See what your number shows
Call our real AT&T, Verizon and T-Mobile phones and see the label, caller name and a screenshot. The first check of any number is free.