API documentation
Complete documentation on integrating the INSPECT API into FiveM servers, Discord bots and your own applications.
Active access required
The API is only available with a purchased, active API access. You will receive your personal API token via your shop dashboard once it has been activated.
Authentication
All API requests require a valid API token in the X-API-Token header. The game category is specified via X-Game.
Scan endpoint
https://api.inspect.wtf/scan.php?searchId={discord_id}searchIdDiscord ID of the user to be checked. 17–19 digits are expected.
The desired game is set via the X-Game header.
Code examples
import requests
url = 'https://api.inspect.wtf/scan.php'
params = {'searchId': 'DISCORD_ID'}
headers = {
'X-API-Token': 'YOUR_TOKEN',
'X-Game': 'fivem',
'Accept': 'application/json'
}
response = requests.get(url, params=params, headers=headers, timeout=10)
print('Status:', response.status_code)
data = response.json()
print(data)const API_TOKEN = 'YOUR_TOKEN';
async function scanUser(discordId, game = 'fivem') {
const url = new URL('https://api.inspect.wtf/scan.php');
url.searchParams.set('searchId', discordId);
const response = await fetch(url, {
headers: {
'X-API-Token': API_TOKEN,
'X-Game': game,
'Accept': 'application/json'
}
});
if (!response.ok) throw new Error(`HTTP Error: ${response.status}`);
return await response.json();
}<?php
$apiToken = 'YOUR_TOKEN';
$discordId = 'DISCORD_ID';
$game = 'fivem';
$url = 'https://api.inspect.wtf/scan.php?' . http_build_query(['searchId' => $discordId]);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => [
'X-API-Token: ' . $apiToken,
'X-Game: ' . $game,
'Accept: application/json'
]
]);
$response = curl_exec($ch);
?>curl -X GET \
'https://api.inspect.wtf/scan.php?searchId=DISCORD_ID' \
-H 'X-API-Token: YOUR_TOKEN' \
-H 'X-Game: fivem' \
-H 'Accept: application/json'local API_TOKEN = 'YOUR_TOKEN'
local url = 'https://api.inspect.wtf/scan.php?searchId=' .. discordId
PerformHttpRequest(url, function(statusCode, response)
if statusCode == 200 then
local data = json.decode(response)
HandleScanResult(source, data)
end
end, 'GET', '', {
['X-API-Token'] = API_TOKEN,
['X-Game'] = 'fivem',
['Accept'] = 'application/json'
})Example response
{
"servers": [
{"name": "Example Cheat Server", "roles": ["member"], "firstFound": "2025-06-15T12:30:00.000Z"}
],
"leak_servers": [],
"settings_servers": [],
"identifiers": [
"discord:123456789012345678",
"steam:11000013a88a683",
"license:2090a7df7d20789a139aac4895bfd7cebe0b075b"
],
"messages": [],
"cheater_info": [
{
"id": 12345,
"discord_id": "123456789012345678",
"reason": "Using cheat menu",
"timestamp": "2025-12-01T15:30:00.000Z"
}
],
"discord_name": "ExampleUser#0001",
"discord_status": "online",
"discord_badges": [],
"spoofing_info": []
}Response fields
servers – suspicious server memberships
leak_servers – leak/piracy servers
settings_servers – config/settings servers
identifiers – known identifiers
cheater_info – cheater entries
messages – associated messages
HTTP status codes
200 – successful request
400 – invalid Discord ID
401 – invalid API token
403 – no API access / wrong game
429 – rate limit reached
500 – server error