Spam I Am

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:

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.

Why numbers get flagged

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

If it's flagged

Pause calls from that number first. More calls from a flagged number mean more unanswered calls and more reports. Then:

  1. Fix the cause. Slow down, warm up, clean your list, and cut dead air at the start of calls.
  2. 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.
  3. Register with the Free Caller Registry at freecallerregistry.com. It sends your details to Hiya, First Orion and TNS.
  4. Request a review from each carrier where you're flagged: AT&T · Verizon · T-Mobile
  5. 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.
  6. 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

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.

Check your number free