TDS Risk
Products
Trust Score — £0.35/check Mobile KYC — £0.45/check
Use cases
Consumer Lending Insurance Fintech & Payments iGaming Lead Generation Lead buying Affiliate Networks Account Creation
Developers
Getting Started Reason Codes Rule Studio Postman Collection Changelog System Status
Company
Pricing About Us Enterprise Contact Case Studies ROI Calculator Security & Compliance FAQ Trust Centre Sign up free →
Trust Score · £0.35 per check

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 — ever
0–1000
Score range
<2s
Per check
4
UK carriers
£0.35
Flat rate
Trust Score — live checkLive signal
phoneNumber
+44 7700 900123
POST /api/trust-score
QUERYING UK NETWORKS
VodafoneEEO2Three
820/ 1000Low risk
riskLevel
4 — 720h+
lineType
mobile
callDivert
false
simTimestamp
2023-05-22 03:48Z
✓ Signed audit recordlatency_ms 1150
What Trust Score detects

UK 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.

D1
Text history exposed online

The number appears on websites that publish text-message history, which bad actors use to bypass possession checks.

RL
High-risk line type

Non-fixed VoIP, redirected SMS delivery, or a number whose texts are posted publicly.

LS
Low-tenure SIM

The SIM behind this number changed in the last 90 days.

CF
Call forwarding enabled

Calls to this number are being diverted — a signal that can be relevant to account-takeover risk.

PT
Ported number

The carrier ported this phone number to a different network.

PN
Inactive number

The phone number wasn't active on the network.

How it works

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.

Your application Decisioning layer phoneNumber TDS Risk Real-time carrier-derived signals trustScoreriskLevelindicators Live carrier query UK mobile networks EEO2VodafoneThree STEP 0 · REAL-TIME · YOUR SYSTEM DECIDES
  • ✓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

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 swapped within the last 24 hours
Highest-risk band — the classic takeover window.
high risk
2
SIM swapped 24–72 hours ago
A recent change worth weighing in your rules.
3
SIM swapped 72–720 hours ago
Changed within the last 30 days.
4
No SIM swap in 720+ hours
Stable SIM — low risk.
low risk

-1 = SIM date unavailable from the carrier · 0 = outside the expected timeframe or field missing.

API reference

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.

1

Make your first API call

⏱️ ~2 minutes

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.

POST/api/trust-score
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
  }'
customerReference must be unique per call. Use a UUID or your internal transaction ID — it is recorded in the audit trail. leadSourceId is optional and tags where the lead came from; it defaults to "API".
2

Understand the response

⏱️ ~2 minutes reading

A successful Trust Score response looks like this. Here is what each field means and how to use it in your own rules.

Example Trust Score response
200 OK
{
  "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
}
status
0 = success. Any non-zero value means the check failed — see the error reference for what each code means.0 = success ✓
ipMatch
Whether the request came from an IP address on your API key's whitelist. Returns false if the requesting IP is not whitelisted — in which case no other data fields are returned. If no whitelist is configured on the key, this is always true.true = whitelisted ✓
leadSource
Echoes back the leadSourceId you sent (or "API" if you didn't send one). Lets you filter checks by source in Verification History."WEB_FORM_001"
requestId
Unique identifier for this API call. Use it when contacting support or cross-referencing audit logs.Unique ID per call
signature
Cryptographic signature for this response. Pass it with requestId to Risk Recall to retrieve the frozen original result later.Per-call signature
trustScore
0–1000 composite risk score. Many teams start with a threshold around 600–700, then tune it to their own fraud rate. Your rules decide.820 = high trust ✓
indicators
Array of reason codes explaining the score. See the searchable reference below.["PT"] = ported · info
callDivert
true = the number currently has call forwarding active. Can indicate the SIM has been compromised or reassigned.false = not diverted ✓
phoneRisk
true = the number appears on public shared fraud lists — one of the strongest signals you can feed into your rules.false = clean ✓
riskLevel
SIM swap recency. 1 = swapped in the last 24 hours · 2 = 24–72h · 3 = 72–720h · 4 = no swap in 720+ hours · -1 = carrier data unavailable.4 = low risk ✓
simTimestamp
ISO 8601 timestamp of the last SIM swap event. Use it to calculate exactly how long ago the SIM changed.Last SIM event date
lineType
Anything other than "mobile" is worth a rule. fixedvoip and nonfixedvoip are associated with fraud; landlines can't receive OTPs."mobile" = valid ✓
carrier
The current carrier for the number, queried live — not cached."EE"
audit_url
Permanent link to the immutable, signed audit record for this check.Permanent URL
policy_version
The privacy policy version in effect for this check, from your API key's linked policy scan. Proves which terms applied at the time."1.1"
policy_hash
The privacy policy hash in effect for this check. Proves the exact policy text that applied."abc123"
latency_ms
Time in milliseconds to return the carrier response. Typically under 2 seconds for live checks.1150 ms ✓
3

Go live

⏱️ You're ready

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.

You're live. Every check now queries live UK carrier data in real time. Responses arrive in under 2 seconds. Each check deducts from your credit balance and produces a permanent, signed audit record.
Production base URL
LIVE
// 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 shape
Reason codes

All 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.

Trust Score reason codes
Risk signalInformational
D1The phone number exists on websites exposing text message history publicly, which bad actors use to bypass possession checks.
RLThe phone number was associated with a high-risk line type: non-fixed VoIP, redirected SMS delivery, or listed on a public website with its text messages posted publicly.
LSLow tenure SIM (SIM change < 90 days).
PNThe phone number wasn't active.
CFThe mobile number has call forwarding enabled.
INPhone number is from a different country than the country request field.
PTThe carrier ported this phone number.
CUCarrier call was unsuccessful.
NMNot a mobile line type.
NDNetwork status information isn't available.
TFToll-free area code.
TRcallInSession signal is unavailable. Use the Trust Score+ API.
WSSIM timestamp wasn't factored into the Trust Score.
Signals, not decisions

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.

✓Set your own score thresholds and code rules
✓Change them any time — no call to us needed
✓Every signal you acted on is in the signed audit record
Build rules in Rule Studio →
your-rules.js · example
YOUR SYSTEM
// 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');
}
Evidence on every check

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.

✓Legal basis and use case locked at API key creation
✓Privacy notice version and hash captured per check
✓Output frozen — never silently re-run
✓Retention you configure, deletion recorded in your Account Audit Log
View an example audit record →
audit record · exampleSIGNED & FROZEN
requestIdTDS68ba778a51ccb
legal_basislegitimate_interest
use_casefraud_prevention
policy_version1.1
output_frozentrue
re_executionnone · Risk Recall available
The audit record never contains the check result. The result is retrieved separately, by an authorised user, through Risk Recall.
Pricing

Infrastructure pricing. One price for everyone.

We built automation, not headcount — so a startup pays exactly what a bank pays.

Identity verification
Mobile KYC
£0.45
per check — same for everyone
✓ 10 checks or 10 million — same price
✓Name, address, DOB match scores
✓isLostStolen critical fraud flag
✓7 reason codes — full KYC signal context
✓Immutable signed audit trail per check
✓Same no-contract, no-expiry terms
Explore Mobile KYC →

* Does not affect credit files. Used solely for fraud prevention and identity verification. Full pricing details + philosophy →

Trust Score FAQ

Mobile number risk and SIM swap API questions.

If it's not here, ask us directly — we reply within one UK business day.

What is a mobile number risk score? +

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.

How do I detect a SIM swap with the Trust Score API? +

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.

Which UK mobile networks are covered? +

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.

How fast is a Trust Score check? +

Typically under two seconds. Each response includes latency_ms so you can monitor response time in your own systems.

Does a Trust Score check affect a customer's credit file? +

No. A Trust Score check is not a credit search and leaves no footprint on the customer's credit file.

Does TDS Risk decide whether to approve an application? +

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.

What legal basis do I need? +

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.

How much does a Trust Score check cost? +

£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.

Get started

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.

Start with the quickstart Open the Postman collection
⚡
Getting started
First check in 10 minutes. cURL, JavaScript and Python examples.
Open quickstart →
📋
Reason codes reference
Every signal we return and what it means.
Browse reason codes →
🔒
Trust Centre
Security documentation, compliance evidence and procurement answers.
Visit the Trust Centre →