Line type, carrier, and TCPA litigator check. Pay as you go. Built for AI agents, CRMs, and dialers.
curl -X POST \ https://numberbroom.com/api/v1/verify \ -H "Authorization: Bearer nb_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"phone": "+19025551234"}'
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"])
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();
{
"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
}
No stitching together three vendors. One endpoint, one price, one response.
Mobile, landline, VoIP, or unknown. Filter your list before you dial.
Known TCPA litigators are flagged so you can remove them before dialing.
Get the actual carrier name for each number. Know who you're calling through.
Base URL: https://numberbroom.com/api
| Endpoint | Auth | Description |
|---|---|---|
| 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 |
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...
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.
Credit is debited before the carrier lookup runs and returned if the lookup produces nothing, so an outage costs you nothing.
| Response | Meaning | Charged |
|---|---|---|
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 |
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.
Pay as you go. No subscriptions, no monthly minimums, no surprises.
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.
125 verifications
250 verifications
500 verifications
2,500 verifications
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_numberLine type, carrier, activity score, TCPA litigator flag. $0.20/call, not charged if the number doesn't parse.
get_credit_balanceRemaining pre-paid balance on your account. Free to call.
{
"url": "https://numberbroom.com/mcp",
"headers": { "Authorization": "Bearer nb_live_YOUR_KEY" }
}
Source is public: github.com/cameron-creations/numberbroom-mcp.
Three steps from zero to verified numbers.
Sign up at numberbroom.com with email or Google. No credit card required to start.
Both live in Settings → API access. The key is shown once and never again — we store only a hash of it.
Call POST /v1/verify with any US phone number. Watch your balance with GET /v1/credits.
Add credit and generate a key from Settings. Pre-paid, no subscription, no minimum monthly spend.
Get Started