Przejdź do głównej treści

API PIN-ów

GET /v1/pins/:pinCode/results

API PIN-ów pozwala programowo pobierać wyniki skanowania własnych PIN-ów. Przydatne do tworzenia botów Discord, narzędzi automatyzacji i własnych integracji. Aby śledzić postęp skanowania w czasie rzeczywistym, zobacz API statusu PIN-u.

Bazowy URL
https://api.anticheat.ac/v1
Uwierzytelnianie
Wymagany klucz API z uprawnieniem pins:results

Pobierz wyniki PIN-u

Pobierz wyniki skanowania dla konkretnego PIN-u. Masz dostęp tylko do wyników PIN-ów, których jesteś właścicielem (utworzonych przez Twoje konto). Zwraca dane wykryć, w tym wykrycia, podejrzane elementy, ostrzeżenia, kontrole integralności i podstawowe metadane skanowania.

GET/v1/pins/:pinCode/results

Parametry

NazwaTypOpis
pinCodestring8-znakowy kod PIN (np. A7K3M2P9P9)

Nagłówki

x-api-key: your_api_key_here

Odpowiedź (zakończone skanowanie)

{
  "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"
}

Odpowiedź (oczekujące/w toku)

{
  "pin": "A7K3M2P9",
  "type": "Java",
  "status": "pending",
  "result": "none",
  "pinName": "Tournament Match #42",
  "message": "Pin is waiting for scan to start"
}

Odpowiedzi z błędem

StatusKodOpis
400Nieprawidłowe żądanieKod PIN jest pusty lub nieprawidłowy
403ZabronionePIN nie należy do Twojego konta
404Nie znalezionoKod PIN nie istnieje

Pola data

PoleTypOpis
cheatingstring | nullOgólny werdykt dotyczący oszukiwania
detectionsarrayLista potwierdzonych wykryć cheatów
suspiciousarrayLista podejrzanych znalezisk
warningsarrayLista flag ostrzeżeń
untrustedarrayLista niezaufanych elementów
integrityarrayLista wyników kontroli integralności
customSuspiciousarrayWłasne podejrzane wykrycia z Twoich skonfigurowanych słów kluczowych
vpnstring | nullStatus wykrycia VPN
countrystring | nullKraj przeskanowanego użytkownika
logonstring | nullCzas od zalogowania/działania systemu
scantimestring | nullJak długo trwało skanowanie
windowsstring | nullInformacje o wersji Windows
discordarrayKonta Discord wykryte w przeskanowanym systemie. Każdy wpis zawiera id (ID użytkownika Discord) i username

Wymagane bycie właścicielem

Możesz pobierać wyniki tylko dla PIN-ów utworzonych przez własne konto. Próba dostępu do PIN-u innego użytkownika zwróci błąd 403 Forbidden.

Ochrona prywatności

Informacje wrażliwe, takie jak HWID, IP serwera, konta alt i identyfikatory wewnętrzne, nigdy nie są udostępniane przez ten endpoint, aby chronić prywatność użytkowników.

Statusy PIN-u

StatusOpis
pendingPIN utworzony, oczekuje na rozpoczęcie skanowania
scanningSkanowanie jest w toku
finishedSkanowanie zakończone, wyniki dostępne
expiredPIN wygasł przed zakończeniem skanowania
errorPodczas skanowania wystąpił błąd

Przykład użycia

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', '')}")

Sprawdzaj do zakończenia (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);