Spam I Am

Why your Telnyx calls show Spam Likely, and how to check

**If your Telnyx calls hang up unanswered, or end with a SIP 603 in the call.hangup webhook, carriers are probably labeling or blocking your number.** A check shows what AT&T, Verizon and T-Mobile actually display. Your Telnyx number calls our test lines, and real phones on each carrier report the label, the caller name and a screenshot, about 5 seconds after the call rings.

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

What it looks like in Telnyx

With the Voice API (Call Control), Telnyx sends webhooks as a call progresses: call.initiated, then call.answered or call.hangup. The call.hangup event carries a hangup_cause and a sip_hangup_cause.

If you use SIP trunking from your own dialer or PBX, the same SIP codes appear in your switch's logs and call records.

Why Telnyx numbers get flagged

Why numbers get flagged

Place the test call from Telnyx

The check call must come from the number being checked. We never spoof numbers, so Telnyx dials it.

Use the Dial command with your Voice API application's connection_id, our test line as to, and the number you're checking as from. Our phone rings for a few seconds and then sends the call to voicemail, so cap the call length:

curl -X POST https://api.telnyx.com/v2/calls \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "YOUR_CONNECTION_ID",
    "to": "+14695550123",
    "from": "+12145550100",
    "time_limit_secs": 30,
    "webhook_url": "https://yourserver.example.com/telnyx-webhooks"
  }'

You can also hang up from your webhook handler once call.answered arrives. On a SIP trunk, dial the test line from your PBX or dialer with the same caller ID.

Run the check with Spam I Am

The first check on any number is free and needs no signup or 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 Node:

const SIA = "https://ismynumberspam.com/v1";
const NUMBER = "+12145550100";            // your Telnyx number
const key = process.env.SIA_API_KEY;      // optional for the first check
const h = { "Content-Type": "application/json", ...(key && { Authorization: `Bearer ${key}` }) };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

const check = await (await fetch(`${SIA}/checks`, {
  method: "POST", headers: h, body: JSON.stringify({ number: NUMBER }),
})).json();
const q = key ? "" : `?token=${check.token}`;
const getCheck = async () => (await fetch(`${SIA}/checks/${check.id}${q}`, { headers: h })).json();

for (const line of check.calls) {
  await fetch("https://api.telnyx.com/v2/calls", {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.TELNYX_API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({
      connection_id: process.env.TELNYX_CONNECTION_ID,
      to: line.dial,
      from: NUMBER,
      time_limit_secs: 30,
    }),
  });
  // wait for this carrier's result before dialing the next line
  while ((await getCheck()).calls.find((c) => c.carrier === line.carrier).status === "waiting") {
    await sleep(5000);
  }
}

for (const c of (await getCheck()).calls) {
  console.log(c.carrier, c.status, c.label, c.caller_name, c.screenshot_url);
}

These examples are a starting point. Check field names against Telnyx's 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" got no call in time. Look at that call's call.hangup webhook: a 6xx sip_hangup_cause means the carrier blocked it, which is more urgent than a label. 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

Telnyx lists a hosted MCP server at https://api.telnyx.com/v2/mcp with Bearer auth, and its tools include placing outbound calls. Connect it next to ours in your coding agent:

claude mcp add --transport http spam-i-am https://ismynumberspam.com/mcp
claude mcp add --transport http telnyx https://api.telnyx.com/v2/mcp \
  --header "Authorization: Bearer $TELNYX_API_KEY"

Then ask: "Check +1 214 555 0100 on all three carriers. Use Telnyx to call each test line from that number, then report each carrier." Our get_check tool waits up to 25 seconds for results. If the agent needs to spend beyond the free check, it calls request_approval and sends you a link.

Pre-campaign checklist

If it's flagged

Pause calls from that number. Then:

  1. Fix the cause. Slow down, clean the list, and stop calling people who don't expect you.
  2. Use Telnyx's options. Both are US-only and need your business registered as an Enterprise in Telnyx, which is free.
    • Reputation remediation, part of Telnyx Number Reputation, asks the call-analytics networks to re-evaluate a flagged number. It's only available to Telnyx customers who subscribe to Number Reputation: $100 per month per Enterprise, plus $1.00 per number submitted. Its reputation lookups are also subscriber-only, at $0.10 per check on top of the monthly fee.

      A Spam I Am check needs no subscription or package: the first check on a number is free, then $0.25 for one carrier or $0.40 for two or three.

    • Branded Calling shows your business name, logo and call reason on US mobiles on T-Mobile and Verizon. Telnyx lists $50 one-time plus $50 per month per brand, and $0.075 per call that displays your brand.
  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. Swapping in fresh numbers whenever one is flagged usually gets them flagged too.
  6. Consider a reputation-management provider for large fleets. 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 Telnyx's call.hangup webhook show spam labels?

No. It shows blocks as SIP codes. A labeled call rings normally and looks like any unanswered call.

Can I check a number on a Telnyx SIP trunk?

Yes. Dial the test lines from your PBX or dialer, as long as the call presents the number you're checking.

Will the test call cost anything on Telnyx?

Yes, a few seconds of an outbound call at your normal Telnyx rate.

Does Branded Calling stop the spam label?

It shows who's calling on supported networks. It doesn't control what each carrier's analytics decide, so check before and after.

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