Developers

Phone and Email Validation API

JSON-RPC 2.0 over HTTPS at https://api.scoremachine.ai. One token, one request envelope and 42 methods, from the carrier holding a single number today to a 200,000-row file scored in the background.

auth.register and auth.login are public. Everything else takes a Token header.

Phone number check · score.phone.validation.mnp

+44

Results by phone number

For demonstration purposes and business use only. Terms · Data & opt-out

Quickstart

Five Calls to a Validated Number and Address

Every request below runs as written. Pick a language once and it holds across all five steps.

or
Step 01 · auth.login
Response · 200 OK

The token arrives in the Token response header, not in the body. The body carries the user record. Tokens last 24 hours; call auth.login again when one expires.

Two Ways to Get a Token

Session token

Sign in with auth.login

Send email and password to auth.login. The token comes back in the Token response header, not in the body, and lasts 24 hours. When it expires, call auth.login again.

Best for scripts, testing and anything a person signs into.

Token: $SCOREMACHINE_TOKEN

Long-lived key

A key for server-to-server work

For integrations that should not sign in again every 24 hours. Your account manager issues the key on request. It is not generated from the workspace.

Sent as Token: $SCOREMACHINE_TOKEN, same as a session token.

Keep tokens on your server, in an environment variable. Never ship one in a browser or mobile client. If a key is exposed, ask your account manager to rotate it.

Real-Time or Batch

Same checks, two ways to call them. Pick by how your records arrive.

Real-time

One call, one answer

For records as they arrive: a lead form, a pre-send check, a routing decision.

Methodsscore.phone.* · score.email.*
InputArray of up to 10,000 phones or emails. At least 2,000, except score.phone.validation, .mnp and .ehlr
ReturnsIn the same call. Under two seconds on score.phone.validation, .mnp and .ehlr

Batch

Seven calls, runs in the background

For files and whole lists. Upload once, start the job, poll until it finishes.

Methodsaudiences.* · POST /upload
InputA contact file sent to POST /upload
ReturnsAn audience you export as CSV or Excel

The batch flow

  1. 01
    UploadPOST /upload

    Send the file. Keep the path it returns.

  2. 02
    Projectprojects.create

    Or projects.list to reuse an existing one.

  3. 03
    Audienceaudiences.create

    Build it from the uploaded path. Run audiences.contacts.preview first to check columns.

  4. 04
    Quoteaudiences.score.price

    Price the run for the service_types you plan to use.

  5. 05
    Startaudiences.score.start

    Launch the job. It runs in the background.

  6. 06
    Pollaudiences.score.status

    Every 2 seconds at most, until status reads active.

  7. 07
    Exportaudiences.export

    Download results as CSV or Excel.

Steps 05–06 · start and poll
05 · audiences.score.start · Request
Response · 200 OK
06 · audiences.score.status · Request
Final response · 200 OK
Originals stay untouched

Pass one audience ID with a name and results land in a new audience.

Two pairs can’t share a job

phone.validation with phone.validation.mnp, and phone.scoring.accessibility with phone.ehlr. Everything else combines.

Every Method on One Account

42 JSON-RPC methods and one upload endpoint. They all use one token and one envelope.

score.phone.validation.mnp
{
"jsonrpc": "2.0",
"method": "score.phone.validation.mnp",
"params": { "phones": ["+447911123456"], "geo_iso_code": "GB" },
"id": 1
}

Every phone method takes an array of up to 10,000 numbers and an optional geo_iso_code. All but score.phone.validation, .mnp and .ehlr need 2,000 at least. Switching checks means changing one string. Full reference →

Every phone method takes the same shape: an array of numbers and an optional geo_iso_code. Switching checks means changing one string. Full parameters and responses at doc.scoremachine.ai →

Operating Limits

20 / s

requests in real time

<2 s

average response on validation, MNP and eHLR

10,000

numbers or addresses per request, 2,000 minimum on most methods

10

concurrent batch jobs

2 s

minimum interval between status polls

5 MB

per uploaded file

200,000

rows per audience

24 h

session token lifetime

Retry transient failures with backoff, and poll no faster than the interval above. Talk to your account manager before running sustained volume above these figures.

Conventions and Errors

Conventions

jsonrpc · method · params · id
Required on every request. jsonrpc is always "2.0".
Content-Type: application/json
On every JSON-RPC request, plus Token on every protected one.
phones
E.164 where possible. Results come back as an array, one item per number, each carrying the number it describes.
score.phone.ehlr
Returns phone without the leading +. Join results on digits, not on the raw string.
offset
Zero-based. The first page is offset: 0.
POST /upload · audiences.export
Return text/plain, not JSON. Parse the upload response yourself.
curl -F
Add ;type=<MIME type> to the file, for example -F 'file=@leads.csv;type=text/csv'. Without it the upload is rejected as an unknown format.
Files
UTF-8.
Amounts
Floating-point USD.

Errors

Errors come back in the standard JSON-RPC envelope with code, message and optional data. Retry transient failures with backoff. Full method reference, error list and troubleshooting at doc.scoremachine.ai.

doc.scoremachine.ai →

Common causes

missing or expired Token invalid JSON body invalid E.164 number unsupported file or separator upload too large insufficient balance

Not Every Integration Is Code

The workspace, the bots and the API are one account and one balance, and they return the same results.

JSON-RPC API SMPP Telegram bot WhatsApp bot Zapier Make n8n CRMs

Platforms that already speak SMPP can run validation on the bind they already have. SMPP setup →

Frequently Asked Questions

In the Token response header. The JSON body carries the user record, not the token. Send it back as Token: <token> on every other call.

Get a Token and Make the First Call

Create an account, call auth.login, and the five calls above run as written.

Phone Validation Email Validation CPaaS Platforms SMS Providers doc.scoremachine.ai