Spam I Am

Why your ElevenLabs Conversational AI calls show Spam Likely, and how to check

If your ElevenLabs agent's outbound calls go unanswered or fail to start, the number they come from may be labeled or blocked by carriers. ElevenLabs places calls through Twilio or your own SIP trunk, so reputation lives with that number. A check shows what AT&T, Verizon and T-Mobile display for it: the label, the caller name and a screenshot from a real phone, about 5 seconds after the call rings.

Platform details checked October 2026. Spam I Am isn't affiliated with ElevenLabs.

What it looks like in ElevenLabs

ElevenLabs Agents (formerly Conversational AI) doesn't have a spam status. You'll see the problem in two places.

Call initiation failure webhooks. If you turn on post-call webhooks, ElevenLabs sends a call_initiation_failure event when a call can't start. Its failure_reason is busy, no-answer or unknown.

A 603 there is worth noticing. Since March 25, 2026, US carriers must use SIP 603+ ("Network Blocked") for analytics-based blocking. What 603+ and 608 mean

Call History. Failed calls show a red error message on the Call History page.

Labeled calls leave no error. ElevenLabs only sends a failure webhook when the call can't start. A call that rings with "Spam Likely" and goes unanswered is a plain no-answer.

Why ElevenLabs numbers get flagged

Why numbers get flagged

Place the test call from ElevenLabs

The check call has to come from the number being checked. We never spoof numbers, so ElevenLabs places it through your Twilio or SIP number.

First, import the number in ElevenLabs. With Twilio, you can use a number bought in Twilio, or a verified caller ID. Verified caller IDs are outbound-only, which makes them handy for checking an existing business number.

Use a simple test agent with voicemail detection turned on, so it ends the call when it hears voicemail. Our phone rings for a few seconds, then sends the call to voicemail.

Twilio numbers:

curl -X POST https://api.elevenlabs.io/v1/convai/twilio/outbound-call \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "TEST_AGENT_ID",
    "agent_phone_number_id": "PHONE_NUMBER_ID",
    "to_number": "+14695550123"
  }'

SIP trunk numbers: send the same body to https://api.elevenlabs.io/v1/convai/sip-trunk/outbound-call.

to_number is the test line (dial). agent_phone_number_id is the ElevenLabs ID of the number you're checking.

Run the check with Spam I Am

Start a check. The first one on any number is free and needs no key.

curl -X POST https://ismynumberspam.com/v1/checks \
  -H "Content-Type: application/json" \
  -d '{"number": "2145550100"}'

You get an id, a token and a dial number per carrier. Call them within 2 minutes for one carrier, plus 1 minute for each extra.

The full flow in Python:

import os, time, requests

SIA = "https://ismynumberspam.com/v1"
NUMBER = "+12145550100"               # the number behind PHONE_NUMBER_ID
key = os.environ.get("SIA_API_KEY")   # optional for the first check
h = {"Authorization": f"Bearer {key}"} if key else {}
xi = {"xi-api-key": os.environ["ELEVENLABS_API_KEY"]}
OUTBOUND = "https://api.elevenlabs.io/v1/convai/twilio/outbound-call"  # or sip-trunk

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"]:
    requests.post(OUTBOUND, headers=xi, json={
        "agent_id": os.environ["TEST_AGENT_ID"],
        "agent_phone_number_id": os.environ["PHONE_NUMBER_ID"],
        "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 ElevenLabs' current docs before you rely on them.

A complete carrier has flagged, label, caller_name and a screenshot. An incomplete carrier with reason: "no_call" didn't get the call in time. If ElevenLabs sent a call_initiation_failure for that call, check the SIP code: the carrier may have blocked it. Incomplete carriers are free.

You can also pass webhook_url when you start the check. We POST the finished check, signed with a Spamiam-Signature header.

Use MCP

ElevenLabs agents can use tools from external MCP servers, over SSE or streamable HTTP. Go to Integrations, choose Add Custom MCP Server, enter https://ismynumberspam.com/mcp, and add an Authorization: Bearer sia_... header if you have a key. Then pick a tool approval mode. Fine-Grained Tool Approval lets read-only tools like get_check and get_coverage run automatically while you require approval for anything else.

For agent builders, connect our server to your coding agent and place calls through the ElevenLabs API:

claude mcp add --transport http spam-i-am https://ismynumberspam.com/mcp

The agent calls start_check, places one outbound call per dial number, then calls get_check with wait_seconds until the status is complete.

Pre-campaign checklist

If it's flagged

Pause calls from that number. Then:

  1. Fix the cause. Lower volume, call people who expect the call, and keep the agent's first response quick.
  2. Use your telephony provider's tools. ElevenLabs' docs don't list a spam-remediation or branded-calling product of its own. On Twilio, Voice Integrity in Trust Hub submits your numbers to TNS (Verizon), First Orion (T-Mobile) and Hiya (AT&T) for review, and needs STIR/SHAKEN and CNAM set up first. Branded calling is available from Twilio and Telnyx at a per-call price.
  3. Register with the Free Caller Registry at freecallerregistry.com, which reaches Hiya, First Orion and TNS.
  4. Request a review for each flagged carrier: AT&T · Verizon · T-Mobile
  5. Rest the number. Cut or pause volume while the review runs. Swapping in fresh numbers to dodge a label usually gets the new ones flagged too.
  6. Consider a reputation-management provider if you run many numbers. None can guarantee removal.

Re-check every few days. Reviews commonly take days to weeks. We only check. We don't remove labels.

FAQ

Does ElevenLabs tell me when a call is labeled as spam?

No. Labels don't produce errors. You only get a call_initiation_failure event when a call can't start.

Can I check my existing business number?

Yes, if you can call from it. Add it to Twilio as a verified caller ID, import it into ElevenLabs, and use it for the test call.

What if my business system shows a main company number instead?

Then the check will see the main number, not the one you meant. The call must present the number you're checking.

Does one clean carrier mean I'm fine?

No. AT&T, Verizon and T-Mobile each decide separately.

What does a check cost?

First check on a number: free. Then $0.25 for one carrier or $0.40 for two or three.

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