SMS Providers & Aggregators

Check Every Number Before You Send an SMS

A dead number costs you twice: the submission you already paid for, and the route quality you carry into the next campaign. Screen the file and only live numbers reach the SMSC.

Phone number check

+44

Enter a number and run a live check.

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

For Teams That Route Traffic

A2P aggregators

You buy termination and sell delivery, and every submission that fails is bought and not sold.

SMS resellers and bulk platforms

Your customers upload their own lists, and their list quality becomes your delivery rate.

Routing and delivery-quality teams

You are asked why a route underperformed, and the answer is often in the file rather than the route.

Three Costs behind One Bad Batch

One batch sent without a check pays three times: at submission, at routing, and on every batch that follows it on the same route.

01

Billed, not delivered

A message to a disconnected number is billed on submission and never delivered. The cost lands in the receipts, after the spend.

02

Routed to the old network

A number keeps its range when it ports, but changes network. Route on the range and the message goes to the operator the subscriber left.

03

Route reputation

Carriers filter on sender reputation. A batch with a high share of invalid numbers damages the route, and every customer sending on it pays for that.

What ScoreMachine Returns Before You Send

score.phone.validation.mnp returns the serving network. score.phone.ehlr returns the activity verdict. score.phone.scoring runs the whole cascade in one request.

score.phone.scoring · response
{
"result": [
{
"phone": "+447911123456", "normalized_phone": "447911123456", "valid": true,
"phone_accessibility": 8,
"phone_validation_mnp": {
"line_type": "mobile",
"carrier": "Vodafone",
"ported": true,
"mcc": "235",
"mnc": "91",
"country": "United Kingdom",
"location": "London, England",
"iso_code": "GB",
"timezone": "UTC+1",
"e164_format": "+447911123456",
"international_format": "+44 7911 123456",
"local_format": "07911 123456"
},
"whatsapp": true,
"telegram": false,
"facebook": true,
"instagram": true
}
],
"jsonrpc": "2.0",
"id": 1
}

Serving network

carrier is the operator holding the number today, after porting, not the range’s original issuer.

Line type

line_type returns mobile, landline or voip. A landline in a mobile file is a submission that was never going to terminate.

Activity

accessibility returns valid, invalid or unknown. Where signals disagree the answer is unknown, those numbers stay separable in the export, and an unknown result is not billed.

Channels

whatsapp, telegram, facebook, instagram. OTT channels only. A number with no channel available may still be a working SMS destination, and a number carrying WhatsApp may be cheaper to reach there. Neither boolean predicts SMS termination.

Reachability score

phone_accessibility returns 0–10. -100 means undetermined, not zero. It ranks how reachable the number is. It is not a fraud score.

Field names are exactly as returned by the API. Full reference at doc.scoremachine.ai.

ROI calculator

What Bad Numbers Cost You Every Month

The waste shows up on submission: messages billed against numbers that were never going to receive them. Put your own volumes in.

Unreachable share of list 22%

Typical for a list older than six months: 18–30%.

Validation methods

Validation cost per contact: $0.002600

Scale pricing · 200,000 validations a month · 100,000 contacts × 2 checks

At 1,000,000 validations a month the rate drops to $0.00140 per contact.

Net monthly saving

$444

$5,328 per year · 2.7× return on validation spend

Unreachable numbers on the list 22,000
Messages never delivered 22,000
Spend on those messages $704
Validation spend on the full list $260

Estimates only. SMS rates are indicative wholesale A2P prices and vary by route and volume. Validation rates are list pricing for the volume entered.

Screen a batch before it goes out, or walk through your routing with our team.

Methods

Check numbers one at a time with sequential methods before each send, or run a whole file through the batch methods before the campaign goes out.

Sequential methods

score.phone.validation.mnp
{
"result": [
{
"phone": "+447911123456", "normalized_phone": "447911123456", "valid": true,
"phone_validation_mnp": {
"line_type": "mobile",
"carrier": "Vodafone",
"ported": true,
"mcc": "235",
"mnc": "91",
"country": "United Kingdom",
"location": "London, England",
"iso_code": "GB",
"timezone": "UTC+1",
"e164_format": "+447911123456",
"international_format": "+44 7911 123456",
"local_format": "07911 123456"
}
}
],
"jsonrpc": "2.0",
"id": 1
}

Batch methods

06 · audiences.score.status
{
"jsonrpc": "2.0",
"method": "audiences.score.status",
"params": {
"id": "<int>",
"project_id": "<int>"
},
"id": 1
}

JSON-RPC 2.0

Up to 20 requests a second, up to 10,000 numbers in one request, up to 10 concurrent jobs. Validation, MNP and eHLR answer in around two seconds.

API reference →

Batch upload

CSV or XLSX, up to 5 MB and 200,000 rows per file. For customer lists that arrive as files rather than as traffic. Poll no more than every two seconds.

Start free →

SMPP

For platforms that already speak it, validation runs on the protocol the rest of the stack uses.

SMPP integration →

What Changes After Screening

"When Ufone switched off traditional HLR, we needed another way to screen numbers. Tested against our last HLR data, eHLR’s results were very strong."

Saša Vodopivec Saša Vodopivec Business Development Director, Bind Technologies

Frequently Asked Questions

Phone number validation confirms the format, the numbering range, and whether the number is in use. ScoreMachine also returns the line type and the serving network after porting. The four OTT channel booleans and a reachability score come back on the same request.

Screen a Batch

Walk through your routing with our team and run a sample file through it.