Pins-API
GET /v1/pins/:pinCode/results
Mit der Pins-API kannst du die Scan-Ergebnisse deiner eigenen PINs programmatisch abrufen. Nützlich für Discord-Bots, Automatisierungstools und eigene Integrationen. Um den Scan-Fortschritt in Echtzeit zu verfolgen, siehe die Pin-Status-API.
- Basis-URL
https://api.anticheat.ac/v1- Authentifizierung
- API-Schlüssel erforderlich mit
pins:results
PIN-Ergebnisse abrufen
Rufe die Scan-Ergebnisse einer bestimmten PIN ab. Du kannst nur auf Ergebnisse von PINs zugreifen, die dir gehören (mit deinem Konto erstellt). Liefert Erkennungsdaten, darunter Erkennungen, verdächtige Elemente, Warnungen, Integritätsprüfungen und grundlegende Scan-Metadaten.
GET/v1/pins/:pinCode/results
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
| pinCode | string | Der 8-stellige PIN-Code (z. B. A7K3M2P9P9) |
Header
x-api-key: your_api_key_here
Antwort (abgeschlossener Scan)
{
"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"
}Antwort (ausstehend/in Bearbeitung)
{
"pin": "A7K3M2P9",
"type": "Java",
"status": "pending",
"result": "none",
"pinName": "Tournament Match #42",
"message": "Pin is waiting for scan to start"
}Fehlerantworten
| Status | Code | Beschreibung |
|---|---|---|
400 | Ungültige Anfrage | PIN-Code ist leer oder ungültig |
403 | Verboten | Die PIN gehört nicht zu deinem Konto |
404 | Nicht gefunden | PIN-Code existiert nicht |
Datenfelder
| Feld | Typ | Beschreibung |
|---|---|---|
| cheating | string | null | Gesamturteil zum Cheating |
| detections | array | Liste bestätigter Cheat-Erkennungen |
| suspicious | array | Liste verdächtiger Funde |
| warnings | array | Liste von Warn-Flags |
| untrusted | array | Liste nicht vertrauenswürdiger Elemente |
| integrity | array | Liste der Ergebnisse der Integritätsprüfungen |
| customSuspicious | array | Benutzerdefinierte verdächtige Erkennungen aus deinen konfigurierten Schlüsselwörtern |
| vpn | string | null | VPN-Erkennungsstatus |
| country | string | null | Land des gescannten Nutzers |
| logon | string | null | Anmelde-/Betriebsdauer des Systems |
| scantime | string | null | Wie lange der Scan gedauert hat |
| windows | string | null | Informationen zur Windows-Version |
| discord | array | Auf dem gescannten System erkannte Discord-Konten. Jeder Eintrag hat id (Discord-Nutzer-ID) und username |
Eigentümerschaft erforderlich
Du kannst nur Ergebnisse von PINs abrufen, die mit deinem eigenen Konto erstellt wurden. Der Zugriff auf die PIN eines anderen Nutzers liefert einen Fehler 403 Forbidden.
Datenschutz
Sensible Informationen wie HWID, Server-IP, Alt-Konten und interne Kennungen werden über diesen Endpunkt nie offengelegt, um die Privatsphäre der Nutzer zu schützen.
PIN-Status
| Status | Beschreibung |
|---|---|
pending | PIN erstellt, wartet auf den Start des Scans |
scanning | Scan läuft gerade |
finished | Scan abgeschlossen, Ergebnisse verfügbar |
expired | PIN ist abgelaufen, bevor der Scan abgeschlossen wurde |
error | Beim Scannen ist ein Fehler aufgetreten |
Anwendungsbeispiel
cURL
curl -X GET "https://api.anticheat.ac/v1/pins/A7K3M2P9/results" \ -H "x-api-key: your_api_key_here"
JavaScript / Node.js
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);
}Python
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', '')}")Abfragen bis zum Abschluss (JavaScript)
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);