The number appears on websites that publish text-message history, which bad actors use to bypass possession checks.
SIM swap detection API and mobile number risk score for the UK.
Run a live UK mobile number risk check in under two seconds. Trust Score returns a 0–1000 score using carrier-derived signals including SIM swap recency, call forwarding, line type and porting, with reason codes explaining the result.
Does not affect credit files — everUK mobile number risk signals that forms cannot show.
Application data can look genuine either way. Live network data can show that a SIM was recently changed, calls are being diverted or the submitted line is not an expected mobile type. Trust Score turns those signals into a score and reason codes you can act on.
Non-fixed VoIP, redirected SMS delivery, or a number whose texts are posted publicly.
The SIM behind this number changed in the last 90 days.
Calls to this number are being diverted — a signal that can be relevant to account-takeover risk.
The carrier ported this phone number to a different network.
The phone number wasn't active on the network.
Run a mobile number risk check before expensive verification.
Trust Score sits at Step 0 — the moment a mobile number reaches you — so risky submissions are identified before credit searches, KYC or manual review add cost.
- ✓REST API with JSON — no proprietary SDK required
- ✓Response in under two seconds, with latency_ms returned
- ✓Sandbox and production share one request shape
- ✓No footprint on credit files
- ✓Signed audit record on every check
- ✓Your thresholds and rules make the decision
SIM swap detection with the exact time the SIM changed.
riskLevel bands SIM swap age in precise timing windows. With details: true, simTimestamp returns the exact time — so your rules can work in hours, not guesses. A SIM change hours before an application, combined with call forwarding, is a classic account-takeover pattern.
-1 = SIM date unavailable from the carrier · 0 = outside the expected timeframe or field missing.
Trust Score API request and response.
REST, JSON and synchronous. The same flow as the quickstart guide: send the request, read the response, go live.
Make your first API call
Authenticate with your API key as a bearer token and send the mobile number. Replace the number with a real UK mobile to get a live result.
curl -X POST "https://www.thedatasupermarket.com/api/trust-score" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerReference": "chk-2026-000184",
"leadSourceId": "WEB_FORM_001",
"phoneNumber": "447911123456",
"country": "GB",
"details": true
}'const res = await fetch('https://www.thedatasupermarket.com/api/trust-score', {
method: 'POST',
headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
customerReference: 'chk-2026-000184', // unique per call
leadSourceId: 'WEB_FORM_001', // optional
phoneNumber: '447911123456',
country: 'GB',
details: true // include SIM data
})
});
const data = await res.json();
console.log(data.response.trustScore); // e.g. 820import requests
res = requests.post(
'https://www.thedatasupermarket.com/api/trust-score',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={'customerReference': 'chk-2026-000184', 'leadSourceId': 'WEB_FORM_001',
'phoneNumber': '447911123456', 'country': 'GB', 'details': True},
)
print(res.json()['response']['trustScore']) # e.g. 820"API".Understand the response
A successful Trust Score response looks like this. Here is what each field means and how to use it in your own rules.
{
"status": 0, // 0 = success ✓
"ipMatch": true, // IP on your key's whitelist ✓
"customerReference": "chk-2026-000184",
"leadSource": "WEB_FORM_001",
"requestId": "TDS68ba778a51ccb",
"signature": "b5ed745afd02bd32a70f82dafc6fb2a4…",
"response": {
"trustScore": 820, // 0–1000. Higher = more trusted
"indicators": ["PT"], // PT = ported · informational
"callDivert": false, // Not call-forwarded ✓
"phoneRisk": false, // Not on shared fraud lists ✓
"details": {
"riskLevel": 4, // No SIM swap in 720+ hours ✓
"simTimestamp": "2023-05-22T03:48:21Z" // Last SIM event
},
"numberInfo": {
"carrier": "EE",
"lineType": "mobile", // Not VoIP, not landline ✓
"countryCode": "GB"
}
},
"audit_url": "https://www.thedatasupermarket.com/tds-verify/audit-summary/…",
"policy_version": "1.1",
"policy_hash": "abc123",
"latency_ms": 1150
}Go live
Once you are happy with your rules in sandbox, switch the base URL to production. Every live check queries UK carrier data in real time and produces a signed audit record.
// Switch from sandbox to production
// Sandbox: https://www.thedatasupermarket.com/api/sandbox/trust-score
// Production: https://www.thedatasupermarket.com/api/trust-score
// Same headers, same request body, same response shapeAll 13 Trust Score reason codes.
Every score arrives with an indicators array explaining it. Search below — six are risk signals, seven are informational. The full searchable reference lives on the reason codes page.
We return the signals. Your rules decide.
TDS Risk never approves or declines anyone. Your system applies your thresholds to the score and reason codes — so the decision, and the risk appetite behind it, always stay yours.
// Runs in YOUR system — TDS Risk only returns signals
const r = res.response, codes = r.indicators;
if (r.details.riskLevel === 1 || r.callDivert) {
route('review'); // your call on takeover signals
} else if (codes.includes('D1') || codes.includes('RL')) {
route('step-up'); // SMS alone can't be trusted
} else if (r.trustScore >= 650) {
route('continue'); // your threshold
} else {
route('review');
}Every Trust Score check is signed, frozen and recallable.
Each response carries a requestId, a cryptographic signature and a permanent audit_url. The audit record proves the check ran under your declared legal basis and the privacy notice in force at that moment — without exposing the result. Risk Recall retrieves the original result later using the request ID and signature.
Built for your industry.
Infrastructure pricing. One price for everyone.
We built automation, not headcount — so a startup pays exactly what a bank pays.
* Does not affect credit files. Used solely for fraud prevention and identity verification. Full pricing details + philosophy →
Mobile number risk and SIM swap API questions.
If it's not here, ask us directly — we reply within one UK business day.
TDS Risk Trust Score is a 0–1000 mobile number risk score for a UK mobile, calculated from live carrier-derived signals such as SIM change recency, line type, call forwarding, porting and network status. Higher means more trusted. Every score is returned with reason codes that explain it.
Every response includes riskLevel, which bands SIM swap age: 1 = swapped in the last 24 hours, 2 = 24–72 hours ago, 3 = 72–720 hours ago, 4 = no swap in 720+ hours, 0 = outside the expected timeframe, -1 = unavailable from the carrier. Set details: true to also receive simTimestamp, the exact time of the last SIM swap.
All four major UK networks: EE, O2, Vodafone and Three. TDS Risk holds pre-approved carrier intermediary status, so there is no separate carrier approval process for your business.
Typically under two seconds. Each response includes latency_ms so you can monitor response time in your own systems.
No. A Trust Score check is not a credit search and leaves no footprint on the customer's credit file.
No. TDS Risk returns signals — a score, SIM data and reason codes. You set the thresholds and your own systems make the decision. Many teams start with a threshold around 600–700 and tune it to their own fraud rate.
Most fraud-prevention use cases rely on legitimate interest. You declare your legal basis and use case when you create your API key, and they are recorded against every check. Your data protection officer should confirm the right basis for your use case.
£0.35 per check, excluding VAT, at any volume. There is no contract, no minimum volume and no setup fee, and prepaid credits never expire.
Run your first SIM swap and mobile risk check in ten minutes.
No sales call, no contract. Sign up, generate a key and see a live Trust Score.
