SIM swap check API
Checks for SIM change activity within a configurable lookback period. Use the result as a risk signal: a SIM change does not by itself prove account compromise, and a negative result does not guarantee that an account is safe.
Endpoint
POST
https://api.provero.io/api/validate/sim-swap
Headers
Authorization:
Content-Type: application/json
Accept: application/json
Request Body
Request Payload Example (JSON)
{
"phone": "+447777777777",
"period_days": "string"
}
Request Examples
Choose language Bash (cURL) 5 examples
curl -X POST https://api.provero.io/api/validate/sim-swap \
-H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"phone":"+447700900123","period_days":30}'
import requests
url = "https://api.provero.io/api/validate/sim-swap"
payload = {
"phone": "+447700900123",
"period_days": 30
}
headers = {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())
<?php
$payload = [
"phone" => "+447700900123",
"period_days" => 30,
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.provero.io/api/validate/sim-swap",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer REPLACE_WITH_API_TOKEN",
"Content-Type: application/json",
"Accept: application/json"
],
]);
$response = curl_exec($curl);
if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
}
curl_close($curl);
echo $response;
$response = Http::withToken('REPLACE_WITH_API_TOKEN')
->acceptJson()
->post('https://api.provero.io/api/validate/sim-swap', [
'phone' => '+447700900123',
'period_days' => 30,
]);
return $response->json();
fetch("https://api.provero.io/api/validate/sim-swap", {
method: "POST",
headers: {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify({
phone: "+447700900123",
period_days: 30
})
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
Response Examples
Choose response example Success - SIM Change Detected 10 examples
{
"phone": "+447700900123",
"phone_valid": true,
"period_days": 30,
"sim_swapped": true,
"status": "swapped"
}
{
"phone": "+447700900123",
"phone_valid": true,
"period_days": 30,
"sim_swapped": false,
"status": "not_swapped"
}
{
"phone": "+447700900123",
"phone_valid": true,
"period_days": 30,
"sim_swapped": null,
"status": "unknown"
}
{
"message": "Unauthenticated."
}
{
"message": "Insufficient balance for validation request.",
"service": "sim_swap",
"required_amount": "0.0060000000",
"current_balance": "0.0000000000"
}
{
"message": "This account has been disabled. Contact support."
}
{
"message": "The phone field is required.",
"errors": {
"phone": [
"The phone field is required."
]
}
}
{
"message": "Invalid phone number for GB region",
"errors": {
"phone": [
"Invalid phone number for GB region"
]
}
}
{
"message": "The period days field must be at least 1.",
"errors": {
"period_days": [
"The period days field must be at least 1."
]
}
}
{
"requestError": {
"serviceException": {
"messageId": "SIM swap check could not be completed.",
"code": 503
}
}
}