La API de PIN permite obtener de forma programática los resultados de tus propios PIN. Sirve para bots de Discord, automatizaciones e integraciones propias. Para seguir el progreso en tiempo real, mira la API de estado de PIN.
URL base: https://api.anticheat.ac/v1
Autenticación: Se requiere una clave de API con el permiso pins:results
Obtén los resultados de un PIN. Solo puedes ver PIN que te pertenecen (creados por tu cuenta). Devuelve detecciones, elementos sospechosos, avisos, verificaciones de integridad y metadatos básicos del escaneo.
/v1/pins/:pinCode/results| Nombre | Tipo | Descripción |
|---|---|---|
| pinCode | string | El código PIN de 8 caracteres (por ejemplo 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"
}| Estado | Código | Descripción |
|---|---|---|
400 | Solicitud incorrecta | El código PIN está vacío o no es válido |
403 | Prohibido | El PIN no pertenece a tu cuenta |
404 | No encontrado | El código PIN no existe |
| Campo | Tipo | Descripción |
|---|---|---|
| cheating | string | null | Veredicto general de trampas |
| detections | array | Lista de detecciones de cheat confirmadas |
| suspicious | array | Lista de hallazgos sospechosos |
| warnings | array | Lista de avisos |
| untrusted | array | Lista de elementos no confiables |
| integrity | array | Lista de resultados de integridad |
| customSuspicious | array | Detecciones sospechosas personalizadas a partir de tus palabras clave |
| vpn | string | null | Estado de detección de VPN |
| country | string | null | País del usuario escaneado |
| logon | string | null | Tiempo de sesión o de encendido del sistema |
| scantime | string | null | Cuánto duró el escaneo |
| windows | string | null | Información de la versión de Windows |
| discord | array | Cuentas de Discord detectadas en el sistema escaneado. Cada entrada tiene id (ID de usuario de Discord) y username |
Solo puedes ver resultados de PIN creados por tu cuenta. Si intentas acceder al PIN de otro usuario, la API responde 403 Forbidden.
Información sensible como el HWID, la IP del servidor, cuentas alt e identificadores internos nunca se expone por este endpoint, para proteger la privacidad.
| Estado | Descripción |
|---|---|
pending | PIN creado, esperando a que empiece el escaneo |
scanning | El escaneo está en curso |
finished | Escaneo terminado, resultados disponibles |
expired | El PIN caducó antes de que terminara el escaneo |
error | Ocurrió un error durante el escaneo |
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);