Check a phone number
Check a phone number for fraud reports. Request fields, response examples and integration guidance.
/tools/phone/check
Example request
curl --request GET \ --url "https://api.strongmb.ng/v1/tools/phone/check?phone=0123456789" \ --header "Authorization: Bearer $STRONGMB_API_KEY" \ --header "Accept: application/json"
// Server-side Node.js 22+; never expose your key in a browser.
async function main() {
const response = await fetch("https://api.strongmb.ng/v1/tools/phone/check?phone=0123456789", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.STRONGMB_API_KEY}`,
Accept: "application/json"
},
signal: AbortSignal.timeout(30000)
});
const result = await response.json();
console.log(response.status, result);
}
main().catch(console.error);
<?php
// Requires the PHP cURL extension.
$client = curl_init('https://api.strongmb.ng/v1/tools/phone/check?phone=0123456789');
curl_setopt_array($client, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('STRONGMB_API_KEY'),
'Accept: application/json',
],
]);
$raw = curl_exec($client);
if ($raw === false) {
throw new RuntimeException(curl_error($client));
}
$status = curl_getinfo($client, CURLINFO_HTTP_CODE);
curl_close($client);
$result = json_decode($raw, true, 512, JSON_THROW_ON_ERROR);
print_r(['http_status' => $status, 'response' => $result]);
require 'net/http'
require 'json'
uri = URI('https://api.strongmb.ng/v1/tools/phone/check?phone=0123456789')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
http.open_timeout = 10
http.read_timeout = 30
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer ' + ENV.fetch('STRONGMB_API_KEY')
request['Accept'] = 'application/json'
begin
response = http.request(request)
result = JSON.parse(response.body)
puts({ http_status: response.code, response: result }.to_json)
rescue StandardError => error
warn error.message
end
import json
import os
from urllib.request import Request, urlopen
from urllib.error import HTTPError, URLError
headers = {
"Authorization": "Bearer " + os.environ["STRONGMB_API_KEY"],
"Accept": "application/json",
}
body = None
request = Request(
"https://api.strongmb.ng/v1/tools/phone/check?phone=0123456789",
data=body, headers=headers, method="GET"
)
try:
with urlopen(request, timeout=30) as response:
result = json.load(response)
print(response.status, result)
except HTTPError as error:
print(error.code, error.read().decode("utf-8"))
except URLError as error:
print("Network error:", error.reason)
Checks a Nigerian phone number against the Strongmb community fraud database. Returns the number of times it has been reported and the first/last seen dates. Use this before processing a purchase to flag potentially fraudulent recipients.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| phone | string | Required | Nigerian mobile number, 11 digits starting with 0 (e.g. 0123456789) |
Request Example
GET /v1/tools/phone/check?phone=0123456789 HTTP/1.1 Host: api.strongmb.ng Authorization: Bearer sk_live_... Accept: application/json
{
"status": true,
"message": "Phone number report stats fetched successfully.",
"data": {
"phone": "0123456789",
"report_count": 3,
"first_seen": "March 19, 2026, 12:00 AM",
"last_seen": "May 19, 2026, 8:08 PM"
},
"metadata": {
"code": "PHONE_REPORT_STATS_FETCHED",
"timestamp": 1779217836,
"trace_id": "DD971F54D8"
}
}
{
"status": false,
"message": "No reports found for this phone number.",
"data": null,
"metadata": {
"code": "ERR_PHONE_NUMBER_NOT_FOUND",
"timestamp": 1779217786,
"trace_id": "EB13653CA4"
}
}
{
"status": false,
"message": "Invalid phone number.",
"data": null,
"metadata": {
"code": "ERR_INVALID_MOBILE_NUMBER",
"timestamp": 1779217800,
"trace_id": "FA123456B7"
}
}
Response Codes
| Code | HTTP | Meaning |
|---|---|---|
| PHONE_REPORT_STATS_FETCHED | 200 | Number is in the fraud database. Read report_count to set your own block threshold —
higher means more developers reported it. first_seen and last_seen show how
long it has been active. |
| ERR_PHONE_NUMBER_NOT_FOUND | 404 | No reports exist for this number. It is not in the fraud database — safe to proceed with the transaction. |
| ERR_INVALID_MOBILE_NUMBER | 422 | The phone query parameter is not a valid Nigerian mobile number. Must be 11 digits
starting with 0 (e.g. 0123456789). |
report_count >= 1; lenient ones at
report_count >= 3 or higher. Your platform, your rules.
Understand the request fields
| Field | Integration guidance |
|---|---|
phone
|
Recipient phone number. Preserve the leading zero. Confirm the network: prefixes do not account for ported numbers. |
Response fields and types
Expand an object to explore its fields. [] indicates an array item. Error responses may return
data: null.
| Field path | JSON type | Meaning and handling |
|---|---|---|
status |
boolean | Whether this API request succeeded. Check the HTTP status and metadata.code when handling errors. |
message |
string | Human-readable description of the result. Use metadata.code for programmatic error handling instead of parsing this text. |
data |
null | object | Response data. Check the result before reading nested fields; an error may return null or validation details. |
data.phone |
string | Phone number as a string; preserve its leading zero. For phone checks, this is the number queried. |
data.report_count |
integer | Number of community reports associated with the phone number. It is context, not proof of wrongdoing. |
data.first_seen |
string | First-seen timestamp in the phone-report result. |
data.last_seen |
string | Most recent seen timestamp in the phone-report result. |
metadata |
object | Diagnostic information about the response. |
metadata.code |
string | Machine-readable result code. Use it to distinguish validation, authentication and service errors. |
metadata.timestamp |
integer | Unix timestamp in seconds associated with the response. |
metadata.trace_id |
string | Correlation identifier for troubleshooting. Retain it with a redacted request when contacting support. |
Always check metadata.code; do not rely on HTTP status alone. See response codes and recommended
handling.
Questions? Let’s work through them.
Having an issue or need help with your integration? Join the Strongmb Slack community to ask questions and get assistance from our team and other developers.
Keep API keys and customer details private when sharing examples.
Experiencing a service issue? Check Strongmb’s service status for incident updates.
Did this page help you?
Up to 100 characters. Please leave out personal details, account information and API keys.