Hileci Veritabanı API'si, Query User sayfasının programatik halidir. Discord ID ile arar ve topluluk profilini, harici ağ sorgusunu ve hesabın görüldüğü tüm Ocean taramalarını döndürür.
db:query iznine sahip bir API anahtarını yalnızca veritabanı erişimi olan hesaplar oluşturabilir. DB Access; aktif bir DB Access planından, sana atanmış bir Enterprise veritabanı koltuğundan veya bir staff rolünden gelir. Erişimin yokken izin, API Keys sekmesinde soluk görünür.
Erişim yalnızca anahtar oluşturulurken değil, her istekte yeniden kontrol edilir. DB Access planının süresi dolarsa anahtar diğer izinlerde çalışmaya devam eder, ama bu uç nokta 403 döndürmeye başlar.
Temel URL: https://api.anticheat.ac/v1
Kimlik doğrulama: Şu izne sahip bir API anahtarı gerekir: db:query
Gereksinim: Aktif lisans veya Enterprise üyeliği, ayrıca veritabanı erişimi
Bir Discord ID için veritabanının tuttuğu her şeyi üç bağımsız kaynaktan döndürür. Kayıt yoksa herhangi biri null gelebilir.
/v1/db/query/:discordId| Ad | Tür | Açıklama |
|---|---|---|
| discordId | string | Aranacak Discord kullanıcı ID'si. 5 ile 25 rakam arasında olmalı |
| Üst bilgi | Zorunlu | Açıklama |
|---|---|---|
| x-api-key | Evet | API anahtarın |
| x-server-name | Hayır | Çağrıyı yapan sunucunun etiketi. Kullanım kaydına yazılır, böylece kendi entegrasyonlarını ayırt edebilirsin. Bak: Kullanım kaydı |
{
"discordId": "123456789012345678",
"botConfigured": true,
"botProfile": {
"username": "PlayerUsername",
"displayName": "Player",
"avatarUrl": "https://cdn.discordapp.com/avatars/...",
"firstSeen": "2024-03-02T18:41:00.000Z",
"lastSeen": "2026-08-11T22:05:00.000Z",
"perGameCounts": { "fivem": 12, "rust": 3 },
"totals": { "servers": 15, "roleChanges": 41, "messages": 208 },
"isConfirmedCheater": true,
"confirmedCheater": {
"reason": "Sold FiveM menus",
"caughtby": "OceanStaff",
"confirmedAt": "2025-11-30T14:02:00.000Z"
},
"roleHistory": [],
"messages": []
},
"networkLookup": {
"found": true,
"playerName": "Player",
"totalPlaytimeSeconds": 482910,
"identifiers": {
"discord": "123456789012345678",
"steam": "11000010aaaaaaa",
"all": ["discord:...", "steam:..."]
},
"servers": [
{
"serverName": "Some Roleplay",
"totalHours": 134,
"firstSeen": "2025-02-11T20:00:00.000Z",
"lastSeen": "2026-07-30T03:12:00.000Z"
}
],
"bans": { "total": 2, "activeCount": 1, "removedCount": 1, "active": [], "removed": [] },
"dangerousDiscords": { "count": 3, "guilds": [] },
"blacklist": { "listed": false }
},
"ocean": {
"scannedUser": {
"discordId": "123456789012345678",
"username": "PlayerUsername",
"overallStatus": "cheating",
"totalScans": 5,
"totalDetections": 3,
"allDetections": ["Generic Cheat Loader - Detection"],
"gamesScanned": ["FiveM"],
"firstSeenAt": "2025-01-10T08:00:00.000Z",
"lastSeenAt": "2026-08-20T15:45:00.000Z",
"relatedAccounts": [],
"scanHistory": []
},
"scanMatches": [
{
"discordIds": ["123456789012345678"],
"usernames": ["PlayerUsername"],
"cheating": "Yes",
"detects": ["Generic Cheat Loader - Detection"],
"suspicious": [],
"warning": [],
"country": "AR",
"scannedAt": "2026-08-20T15:45:00.000Z",
"matchType": "discord"
}
]
}
}| Alan | Tür | Açıklama |
|---|---|---|
| discordId | string | Aranan Discord ID |
| botConfigured | boolean | Topluluk veritabanı arka ucuna ulaşılıp ulaşılamadığı. false ise botProfile her zaman null olur |
| botProfile | object | null | Topluluk veritabanı profili: görülen sunucular, rol geçmişi, mesaj etkinliği ve doğrulanmış hileci durumu |
| networkLookup | object | null | Harici ağ profili: bağlı kimlikler, sunucu başına oynama süresi, ban geçmişi ve kara liste durumu |
| ocean.scannedUser | object | null | Ocean tarama özeti: durum, tespitler, oyunlar, ilişkili hesaplar ve tarama geçmişi |
| ocean.scanMatches | array | Bu hesabın Discord ID veya paylaşılan HWID ile eşleştiği tek tek taramalar |
| Durum | Anlamı |
|---|---|
| 400 | Discord ID eksik veya 5 ile 25 rakam arasında değil |
| 401 | API anahtarı eksik, devre dışı veya süresi dolmuş |
| 403 | Anahtarda db:query izni yok veya hesabın artık veritabanı erişimi yok |
| 429 | Bu API anahtarı hız sınırını aştı |
Kaydı olmayan bir Discord ID 404 yerine kaynakları boş, düzgün bir yanıt döndürür. Beyaz listedeki ID'ler de aynı biçimi döndürür, bu yüzden beyaz listedeki bir hesap kayıtsız bir hesaptan ayırt edilemez.
{
"discordId": "123456789012345678",
"botConfigured": true,
"botProfile": null,
"networkLookup": null,
"ocean": {
"scannedUser": null,
"scanMatches": []
}
}curl -X GET "https://api.anticheat.ac/v1/db/query/123456789012345678" \ -H "x-api-key: your_api_key_here" \ -H "x-server-name: Ocean RP | EU-1"
const response = await fetch(
'https://api.anticheat.ac/v1/db/query/123456789012345678',
{
headers: {
'x-api-key': 'your_api_key_here',
'x-server-name': 'Ocean RP | EU-1'
}
}
);
const data = await response.json();
if (data.botProfile?.isConfirmedCheater) {
console.log('Confirmed cheater:', data.botProfile.confirmedCheater.reason);
}
if (data.ocean.scannedUser) {
console.log('Ocean status:', data.ocean.scannedUser.overallStatus);
}
console.log('Active network bans:', data.networkLookup?.bans.activeCount ?? 0);import requests
headers = {
'x-api-key': 'your_api_key_here',
'x-server-name': 'Ocean RP | EU-1'
}
data = requests.get(
'https://api.anticheat.ac/v1/db/query/123456789012345678',
headers=headers
).json()
profile = data.get('botProfile')
if profile and profile['isConfirmedCheater']:
print(f"Confirmed cheater: {profile['confirmedCheater']['reason']}")
scanned = data['ocean']['scannedUser']
if scanned:
print(f"Ocean status: {scanned['overallStatus']}")Bu uç nokta, veritabanını kopyalamak için değil, sunucuna almadan önce oyuncuları kontrol etmek içindir. Her çağrı anahtar, IP ve isteğe bağlı sunucu adıyla kaydedilir. Numaralandırma ve anahtar paylaşımı veritabanı erişiminin kaldırılması için yeterlidir.
Bir anahtarla birden fazla sunucu çalıştırıyorsan her birinden farklı bir x-server-name gönder. Kullanım sorgulanırsa hangi sunucunun çağrı yaptığını kanıtlamanın en hızlı yoludur.