A phone validation API that returns a decision.
One POST with up to 100 contacts. Each comes back with a grade, a plain-language outcome and the action to take, so your code routes the contact instead of interpreting raw line data.
When you need this.
You have contacts arriving in your own system, from a form, an enrichment step or an agent, and you need to know which ones are worth a call before they reach a rep.
- POST /api/v1/analyze takes first_name, last_name and phone for up to 100 contacts per request.
- Each result carries a grade (A1, A2 or A3), will_this_person_answer (high_chance, low_chance or bad_data) and action (phone, multi_channel or email_linkedin).
- Add ?include=signals to see the five signals behind each grade: valid, line type, activity, name match and litigation risk.
| Method | POST |
| URL | /api/v1/analyze |
| Auth | Bearer API key |
| Batch | Up to 100 contacts |
| Rate limit | 60 requests / 60s |
What comes back.
| Field | Values | What it's for |
|---|---|---|
| status | Values: ok · invalid_request · unsupported_market · incomplete · provider_unavailable | What it's for: Only ok is graded and only ok is charged. |
| grade | Values: A1 · A2 · A3 · null | What it's for: A1 is High chance, A2 is Low chance, A3 is Bad data. |
| will_this_person_answer | Values: high_chance · low_chance · bad_data · null | What it's for: The grade in plain words. Route on this or on grade. |
| action | Values: phone · multi_channel · email_linkedin · null | What it's for: What to do with the contact next. |
Live in four steps.
- 1
Create an API key
Sign in, open API & MCP, and create a key. Treat it like a password.
- 2
Send your contacts
POST names and US numbers in batches of up to 100.
- 3
Route on the outcome
Send high_chance to the dialer, low_chance to the dialer plus a sequence, and bad_data to email and LinkedIn.
- 4
Retry what didn't finish
A null grade is a statement about us, not the contact. Retry those later; they weren't charged.
What developers build.
Score leads on creation
Check each contact as it lands in your CRM so reps only see callable numbers.
Route inside an enrichment pipeline
Add one HTTP step after enrichment and branch on will_this_person_answer.
Give an AI agent a calling decision
Agents can call the same analysis through the MCP tool instead of the REST endpoint.
Questions, answered.
How many contacts can I send per request?
Up to 100. The rate limit is 60 requests per 60 seconds, shared between REST and MCP.
What happens to numbers outside the US?
They come back with status unsupported_market and a null grade, and they aren't charged.
Related pages.
Know who’ll answer
before you call.
Grade 250 contacts free. No card required, and US phone numbers only.
- US phone numbers only
- No card required
- One credit per checked contact