Loading
Loading
The Pins API allows you to retrieve scan results for your own pins programmatically. Useful for building Discord bots, automation tools, and custom integrations. To track scan progress in real-time, see the Pin Status API.
Base URL: https://api.anticheat.ac/v1
Authentication: API Key required with pins:results permission
Retrieve the scan results for a specific pin. You can only access results for pins that you own (created by your account). Returns detection data including detections, suspicious items, warnings, integrity checks, and basic scan metadata.
/v1/pins/:pinCode/results| Name | Type | Description |
|---|---|---|
| pinCode | string | The 8-character pin code (e.g. A7K3M2P9P9) |
x-api-key: your_api_key_here{
"pin": "A7K3M2P9P9",
"type": "Java",
"status": "finished",
"result": "cheating",
"pinName": "Tournament Match #42",
"data": {
"cheating": "cheating",
"detections": [
"Generic Cheat Loader - Detection",
"Process Injection - javaw.exe"
],
"suspicious": [
"Modified game files detected"
],
"warnings": [
"Multiple Minecraft instances detected"
],
"untrusted": [],
"integrity": [
"System file tampered: kernel32.dll"
],
"customSuspicious": [],
"vpn": "No",
"country": "US",
"logon": "2h 30m",
"scantime": "45 seconds",
"windows": "Windows 11 Pro 23H2",
"discord": [
{ "id": "123456789012345678", "username": "player123" }
]
},
"createdAt": "2024-01-15T10:30:00.000Z"
}{
"pin": "A7K3M2P9",
"type": "Java",
"status": "pending",
"result": "none",
"pinName": "Tournament Match #42",
"message": "Pin is waiting for scan to start"
}| Status | Code | Description |
|---|---|---|
400 | Bad Request | Pin code is empty or invalid |
403 | Forbidden | The pin does not belong to your account |
404 | Not Found | Pin code does not exist |
| Field | Type | Description |
|---|---|---|
| cheating | string | null | Overall cheating verdict |
| detections | array | List of confirmed cheat detections |
| suspicious | array | List of suspicious findings |
| warnings | array | List of warning flags |
| untrusted | array | List of untrusted items |
| integrity | array | List of integrity check results |
| customSuspicious | array | Custom suspicious detections from your configured keywords |
| vpn | string | null | VPN detection status |
| country | string | null | Country of the scanned user |
| logon | string | null | System logon/uptime duration |
| scantime | string | null | How long the scan took |
| windows | string | null | Windows version information |
| discord | array | Discord accounts detected on the scanned system. Each entry has id (Discord user ID) and username |
You can only retrieve results for pins created by your own account. Attempting to access another user's pin will return a 403 Forbidden error.
Sensitive information such as HWID, server IP, alt accounts, and internal identifiers are never exposed through this endpoint to protect user privacy.
| Status | Description |
|---|---|
pending | Pin created, waiting for the scan to start |
scanning | Scan is currently in progress |
finished | Scan completed, results available |
expired | Pin expired before scan was completed |
error | An error occurred during scanning |
curl -X GET "https://api.anticheat.ac/v1/pins/A7K3M2P9/results" \ -H "x-api-key: your_api_key_here"
const response = await fetch('https://api.anticheat.ac/v1/pins/A7K3M2P9/results', {
headers: { 'x-api-key': 'your_api_key_here' }
});
const data = await response.json();
if (data.status === 'finished') {
console.log('Result:', data.result);
console.log('Detections:', data.data.detections);
console.log('Suspicious:', data.data.suspicious);
} else {
console.log('Status:', data.status, '-', data.message);
}import requests
response = requests.get(
'https://api.anticheat.ac/v1/pins/A7K3M2P9/results',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()
if data['status'] == 'finished':
print(f"Result: {data['result']}")
print(f"Detections: {data['data']['detections']}")
else:
print(f"Status: {data['status']} - {data.get('message', '')}")async function waitForResults(pinCode, apiKey) {
const url = 'https://api.anticheat.ac/v1/pins/' + pinCode + '/results';
const headers = { 'x-api-key': apiKey };
while (true) {
const res = await fetch(url, { headers });
const data = await res.json();
if (data.status === 'finished') return data;
if (data.status === 'expired' || data.status === 'error') {
throw new Error('Scan ' + data.status + ': ' + (data.message || ''));
}
await new Promise(r => setTimeout(r, 5000));
}
}
const results = await waitForResults('A7K3M2P9', 'your_api_key_here');
console.log(results.data);