Agent Ready

Phone verification in one API call

Line type, carrier, and TCPA litigator check. Pay as you go. Built for AI agents, CRMs, and dialers.

Request
curl -X POST \
  https://numberbroom.com/api/v1/verify \
  -H "Authorization: Bearer nb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+19025551234"}'
Request
import requests

resp = requests.post(
    "https://numberbroom.com/api/v1/verify",
    headers={"Authorization": "Bearer nb_live_YOUR_KEY"},
    json={"phone": "+19025551234"}
)
result = resp.json()
print(result["lineType"], result["isLitigator"])
Request
const resp = await fetch(
  "https://numberbroom.com/api/v1/verify",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer nb_live_YOUR_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ phone: "+19025551234" }),
  }
);
const data = await resp.json();
200 Response
{
  "phone":                 "+19025551234",
  "e164":                  "+19025551234",
  "valid":                 true,
  "lineType":              "mobile",
  "carrier":               "Verizon Wireless",
  "isLitigator":           false,
  "activityScore":         82,
  "isLikelyDisconnected":  false,
  "outcome":               "clean",
  "keep":                  true,
  "dncEvaluated":          false,
  "charged":               0.2,
  "creditsRemaining":      24.8
}

Everything in one call

No stitching together three vendors. One endpoint, one price, one response.

Line Type Detection

Mobile, landline, VoIP, or unknown. Filter your list before you dial.

TCPA Litigator Flag

Known TCPA litigators are flagged so you can remove them before dialing.

Carrier Identification

Get the actual carrier name for each number. Know who you're calling through.

API Endpoints

Base URL: https://numberbroom.com/api

EndpointAuthDescription
POST /v1/verify API key Verify a single phone number
GET /v1/credits API key Credit balance and lookups remaining. Free -- it spends nothing.
POST /v1/keys Account token Issue your API key. Shown once, never again.
GET /v1/keys Account token List your active key’s preview, label and last-used time
DELETE /v1/keys Account token Revoke your active key

Authentication

All API calls use a Bearer token in the Authorization header. For /v1/keys endpoints, pass your account token. For all other endpoints, pass your API key:

Authorization: Bearer nb_live_a1b2c3d4e5f6...

Verifying many numbers

There is no batch endpoint. Call /v1/verify once per number, concurrently if you like — each call is independently priced, rate-limited and refunded. For lists rather than lookups, upload a CSV: same rules, same $0.20, one file in and out.

Each key is limited to 5,000 lookups per day, resetting at midnight UTC. Over that, calls return 429 rate_limited.

When you are not charged

Credit is debited before the carrier lookup runs and returned if the lookup produces nothing, so an outage costs you nothing.

ResponseMeaningCharged
200 valid: false Not a parsable US number. A successful answer, not an error. No
401 unauthorized Missing, invalid or revoked key No
402 insufficient_credits Balance below $0.20. Top up to continue. No
429 rate_limited This key passed 5,000 lookups today No
502 lookup_failed The carrier lookup returned nothing. Refunded. No
503 unavailable Lookups paused on our side No

What this API does not do

It does not check do-not-call registries. Every response says so in dncEvaluated, which is always false today, so an integration never has to infer coverage it has not got. Litigator screening reduces TCPA risk; it does not eliminate it, and none of this is legal advice.

Pricing

Pay as you go. No subscriptions, no monthly minimums, no surprises.

$0.20 per verification, $10 minimum top-up

Line type + carrier + TCPA litigator check, all included — the same $0.20 a CSV row costs, because it is the same product through a different door. Credit is pre-paid and does not expire; top up between $10 and $5,000.

$25 credit

125 verifications

$50 credit

250 verifications

$100 credit

500 verifications

$500 credit

2,500 verifications

MCP Server

The same API, wired up for AI agents that speak MCP — Claude, ChatGPT, and any other MCP-compatible client. It's a thin, stateless proxy: your API key travels straight through to the same /v1/verify and /v1/credits endpoints documented above, so auth, rate limits and billing all work exactly the same way.

verify_phone_number

Line type, carrier, activity score, TCPA litigator flag. $0.20/call, not charged if the number doesn't parse.

get_credit_balance

Remaining pre-paid balance on your account. Free to call.

Connect
{
  "url": "https://numberbroom.com/mcp",
  "headers": { "Authorization": "Bearer nb_live_YOUR_KEY" }
}

Source is public: github.com/cameron-creations/numberbroom-mcp.

Quickstart

Three steps from zero to verified numbers.

1. Create an account

Sign up at numberbroom.com with email or Google. No credit card required to start.

2. Add credit and generate a key

Both live in Settings → API access. The key is shown once and never again — we store only a hash of it.

3. Start verifying

Call POST /v1/verify with any US phone number. Watch your balance with GET /v1/credits.

Ready to verify?

Add credit and generate a key from Settings. Pre-paid, no subscription, no minimum monthly spend.

Get Started