API Dokümantasyonu
Metin2 Oy Doğrulama Sistemi
Metin2 özel sunucunuz için kolay, ücretsiz ve güvenilir oy ödülleri
Oy Doğrulama Sistemimiz, Metin2 özel sunucuları için özel olarak tasarlanmış modern ve yenilikçi bir çözümdür. Oyunculara favori sunucularına oy verirken oyun içi avantajlar kazandıran etkileşimli bir yol sunar.
Sistem hem uygulaması kolay hem de son derece güvenilirdir; bu nedenle oyuncu etkileşimini ve sunucu görünürlüğünü artırmak isteyen sunucu sahipleri için mükemmel bir seçimdir.
Amacımız herkes için kazançlı bir deneyim sunmaktır: oyuncular sadakatleri için oyun içi ödüller alır, sunucular ise daha fazla görünürlük ve etkileşim elde eder.
Vote4Buff Sistemi (Önerilir)
Özel oyun içi arayüze sahip eksiksiz oy ve ödül sistemi
Vote4Buff, premium, her şey dahil oy çözümümüzdür. Şık bir oyun içi arayüz, WebSocket iletişimi ve tam sunucu entegrasyonu sunar. Oyuncular oy verebilir, birden fazla bonus havuzu arasından seçim yapabilir ve oyundan çıkmadan anında ödül alabilir!
Sistem mimarisi
Vote4Buff sistemi üç ana bileşenden oluşur:
İstemci tarafı
- Python arayüz sistemi (uivote4buff.py)
- Özel arayüz varlıkları ve grafikler
- C++ WebSocket entegrasyonu
- 11 dil desteği
Sunucu tarafı
- C++ API entegrasyonu
- Bonus havuzu yönetimi
- Eşya ödül sistemi
- Gerçek zamanlı etki takibi
Platformumuz
- Oy doğrulama API’si
- Hesap tabanlı takip
- Anti-hile koruması
- Gerçek zamanlı oy durumu
Öne çıkan özellikler
Şunlar için idealdir: Profesyonel, kullanıma hazır bir çözüm arayan, haftalarca özel geliştirme yapmak istemeyen sunucu sahipleri. Bonus havuzlarını yapılandırın, dosyaları entegre edin ve hazırsınız!
Vote4Buff dosyalarını indir
İstemci ve sunucu entegrasyonu için gereken tüm dosyaları edinin
Vote4Buff, martysama0134 v5.8 kaynak tabanı için tasarlanmıştır. Farklı bir kaynak kullanıyorsanız ek uyarlamalar gerekebilir.
Paket içeriği
İstemci dosyaları
- Python arayüz dosyaları (uivote4buff.py)
- Oyun istemcisi dosya değişiklikleri
- Arayüz grafik ve varlıkları
- 11 dil için yerelleştirme dosyaları
- C++ WebSocket uygulaması
- Arayüz betikleri
libcurl.dll içerir (32-bit sürüm dahil, 64-bit sürümü mevcuttur)
Sunucu dosyaları
- char.h yapılandırması
- Etki sistemi değişiklikleri
- Sohbet komutu entegrasyonu
- API iletişim katmanı
- Bonus yönetim sistemi
Gerekli tüm C++ kaynak güncellemeleri pakete dahil edilmiştir
Vote4Buff dosyalarını indirmek için lütfen giriş yapın.
Yapılandırma rehberi
Bonus havuzlarını, eşya ödüllerini ve API ayarlarını yapılandırın
Vote4Buff yapılandırmasının tamamı sunucunuzdaki char.h dosyasında yapılır. Aşağıda her ayar için detaylı örnekler bulabilirsiniz.
Adım 1: API kimlik bilgileri
Önce sunucu ID’nizi ve API tokenınızı yapılandırın (sunucu panelinizde bulabilirsiniz):
// API SETTINGS from Metin2 Server List
static const std::string s_VOTE4BUFF_SERVER_ID = "YOUR_SERVER_ID"; // From dashboard
static const std::string s_VOTE4BUFF_API_TOKEN = "YOUR_API_TOKEN"; // From dashboard
static const int s_VOTE4BUFF_DURATION = 86400; // seconds (1 day) DO NOT MODIFY THIS !!!
Adım 2: Bonus havuzlarını ayarlayın
En fazla 3 bonus havuzu tanımlayabilirsiniz. Oyuncular bu havuzlardan dilediklerini seçebilir; her havuzda birden fazla bonus bulunabilir:
// Bonuses must be set with its APPLY_ declaration.
// You can add as many bonuses as you want per slot.
static std::vector<std::vector<std::pair<int, int>>> s_VOTE4BUFF_BONUSES =
{
{ // Bonus Pool 1: PvP Focused
{ APPLY_ATTBONUS_HUMAN, 5 }, // +5% vs Players
{ APPLY_DEF_GRADE_BONUS, 50 }, // +50 Defense
},
{ // Bonus Pool 2: PvE Focused
{ APPLY_ATTBONUS_MONSTER, 5 }, // +5% vs Monsters
{ APPLY_ATTBONUS_INSECT, 5 }, // +5% vs Insects
{ APPLY_HP_REGEN, 10 }, // +10 HP Regen
},
{ // Bonus Pool 3: Farm Focused
{ APPLY_ITEM_DROP_BONUS, 10 }, // +10% Drop Rate
{ APPLY_EXP_DOUBLE_BONUS, 10 }, // +10% EXP
{ APPLY_GOLD_FIND, 15 }, // +15% Gold
},
};
Sık kullanılan bonus tipleri: APPLY_ATTBONUS_HUMAN, APPLY_ATTBONUS_MONSTER, APPLY_DEF_GRADE_BONUS, APPLY_ITEM_DROP_BONUS, APPLY_EXP_DOUBLE_BONUS, APPLY_GOLD_FIND, APPLY_MAX_HP, APPLY_MAX_SP, APPLY_HP_REGEN, APPLY_SP_REGEN, APPLY_CRITICAL_PCT, APPLY_PENETRATE_PCT ve daha fazlası!
Adım 3: Eşya ödülleri (opsiyonel)
Oyuncuların oy sonrası otomatik olarak alacağı eşyaları yapılandırın:
static std::vector<std::pair<DWORD, int>> s_VOTE4BUFF_ITEM_REWARDS =
{
// Leave empty if you don't want to give any items as rewards
// Format: { vnum, count }
{ 27007, 5 }, // 5x Red Potion (XXL)
{ 50084, 1 }, // 1x Gold Bar
{ 71027, 10 }, // 10x Dragon Coin
};
Adım 4: Bonus değiştirme ayarları
Oyuncular bonus havuzunu değiştirmek istediğinde bekleme süresini ve maliyeti kontrol edin:
// Cooldown when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_COOLDOWN = 300; // seconds (5 minutes)
// Price when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_PRICE = 15000; // yang (0 = free)
Not: Oy verdikten sonra oyuncular bir bonus havuzunu ücretsiz seçebilir. Bekleme süresi ve ücret yalnızca oy vermeden havuz değiştirmek istediklerinde uygulanır.
Kurulum rehberi
Vote4Buff entegrasyonu için adım adım talimatlar
İstemci ve sunucu dosyalarınızın yedeğini alın! __ öneki bulunan dosyalar birleştirme gerektirir, diğerleri doğrudan kopyalanabilir.
Sunucu kurulumu
char.h dosyasını yapılandırın
İndirdiğiniz paketteki Source/Server/__char.h dosyasını açın.
class CBuffOnAttributes;satırını bulun ve üstüne yapılandırma kodunu ekleyin (Konfigürasyon bölümüne bakın)s_VOTE4BUFF_SERVER_IDves_VOTE4BUFF_API_TOKENdeğerlerini ayarlayın- Bonus havuzlarını ve eşya ödüllerini yapılandırın
bool DragonSoul_RefineWindow_CanRefine();satırını bulun ve gerekli public metod bildirimlerini ekleyin
Sunucu tarafı değişiklikleri uygulayın
Paketteki sunucu dosyalarını entegrasyon için kullanın:
__affect.h- Mevcut affect.h dosyanızı sağlanan değişikliklerle güncelleyin__chat_affect.cpp- Vote4Buff etki yönetimini ekleyin__cmd_general.cpp- Komut işleme güncellemelerini ekleyin__desc_client.cpp- İstemci tanımlayıcı değişikliklerini uygulayın
Not: __ önekli dosyalar mevcut dosyalarınıza birleştirilmelidir.
Oyun çekirdeğini yeniden derleyin
Sunucuyu yeni değişikliklerle derleyin.
make clean && make İstemci kurulumu
Python arayüz dosyaları
Client/root/ klasöründen:
uivote4buff.pydosyasını istemciroot/klasörüne kopyalayın- Aşağıdaki dosyaları talimatlara göre güncelleyin:
__constInfo.py__game.py__interfaceModule.py__uiAffectShower.py
Arayüz grafikleri ve betikleri
Client/ui/game/vote4buff/klasörünü pack’inizdekiui/game/klasörüne kopyalayınClient/uiscript/vote4buffwindow.pydosyasını uiscript klasörüne kopyalayın
Dil dosyaları
Client/locale/ klasöründen desteklenen diller için metinleri ekleyin:
__locale_game.txtiçeriğinilocale_game.txtdosyanıza ekleyin__locale_interface.txtiçeriğinilocale_interface.txtdosyanıza ekleyin
Desteklenen diller: EN, DE, ES, PL, TR, RO, IT, PT, HU, GR, CZ
C++ istemci değişiklikleri
Source/Client/UserInterface/ klasöründen:
M2WebSocket.cppveM2WebSocket.hdosyalarını UserInterface klasörüne kopyalayın__önekli dosyalardaki değişiklikleri kendi dosyalarınıza uygulayınlibcurl.dlldosyasının istemci klasöründe olduğundan emin olun (32-bit sürüm dahil, 64-bit sürümü gerekirse indirin)
Arayüz butonu ekleyin (opsiyonel)
Vote4Buff varsayılan bir buton eklemez. Arayüzünüzden ToggleVote4Buff() fonksiyonunu çağırmanız gerekir. Örneğin:
- SystemDialog penceresine bir buton ekleyin
- Butonu bir kısayol tuşuna atayın
- QuickSlot menüsüne ekleyin
Sürüklenebilir bir simge butonu oluşturan Vote4BuffButton sınıfını da kullanabilirsiniz
İstemciyi yeniden derleyin
Yeni değişikliklerle istemci yürütülebilir dosyasını yeniden derleyin.
Test
Entegrasyonu test edin:
- Sunucunuza giriş yapın
- Vote4Buff penceresini açın
- Platformumuzda oy verin: https://metin2-toplist.net/vote/en/YOUR_SERVER_ID-server-name/YOUR_ACCOUNT_ID
- Oyuna dönün ve oy doğrulamasını kontrol edin
- Bir bonus havuzu seçin ve etkilerin uygulandığını doğrulayın
- Eşya ödüllerinin teslim edildiğini kontrol edin
Artık oyuncularınız oy verebilir ve otomatik olarak ödül alabilir. Vote4Buff arayüzü, oy verebilecekleri zamanı gösterir, bonus havuzu seçmelerine izin verir ve aktif etkiler için geri sayım sunar.
Sunucu yöneticileri için avantajlar
Ücretsiz tanıtım
Yeni oyuncuların çoğu sunucuları toplistlerden keşfeder; bu nedenle bu güçlü bir pazarlama aracıdır
Kolay yapılandırma
Detaylı dokümantasyon ve adım adım rehberler kurulumu çok kolaylaştırır
Kod yazmaya gerek yok
Basit REST API entegrasyon süreci
Optimize performans
Oy doğrulamasının istemci tarafında yapılması sunucu yükünü minimumda tutar
Yüksek güvenilirlik
Yerleşik sahtekarlık önleme ile kanıtlanmış sistem
Oy doğrulama
Ödül vermeden önce oyuncuların gerçekten oy verdiğinden emin olun
Oyuncular için avantajlar
Sistem nasıl çalışır?
Sistem oyuncuların kolayca anlayabileceği temiz ve sezgisel bir akış sunar. Oy doğrulaması API’miz üzerinden gerçekleştiği için gerçek oyları ödüllendirdiğinizden emin olabilirsiniz!
Hızlı başlangıç rehberi
İhtiyaçlarınıza en uygun entegrasyon yöntemini seçin:
Vote4Buff Sistemi
Özel arayüz, WebSocket iletişimi ve otomatik ödül sistemi içeren eksiksiz çözüm.
- Tam oyun içi arayüz
- Birden fazla bonus havuzu
- Otomatik eşya ödülleri
- Gerçek zamanlı geri sayım
- 11 dil desteği
Özel API entegrasyonu
Maksimum esneklik için REST API’mizi kullanarak kendi çözümünüzü oluşturun.
- Tam özelleştirme
- Kendi arayüzünüz
- Özel ödül mantığı
- IP veya hesap tabanlı takip
Genel kurulum adımları
Sunucunuzu kaydedin
https://metin2-toplist.net/servers/create adresinden hesap oluşturup sunucunuzu toplistemize ekleyin
API bilgilerinizi alın
Sunucu ID’niz ve API tokenınız sunucu panelinizde bulunur. Yetkilendirme için gereklidir.
Entegrasyon yöntemini seçin
Hazır çözüm için Vote4Buff’u indirin veya API ile özel entegrasyon geliştirin.
Test edin ve yayınlayın
Oy sistemini kapsamlı şekilde test edin, ardından canlı sunucunuzda yayınlayın.
API uç noktası (özel uygulamalar için)
Vote4Buff sistemini (önerilir) kullanıyorsanız, bu API zaten entegredir! Bu bölüm, kendi uygulamasını geliştirmek isteyen sunucu sahipleri içindir.
https://metin2-toplist.net/api/check-vote
Gerekli parametreler
| Parametre | Tip | Gerekli | Açıklama |
|---|---|---|---|
api_token |
string | Evet | Sunucunuza ait benzersiz API token |
ip |
string | Opsiyonel* | Oyuncunun IP adresi (IPv4 veya IPv6) |
account_id |
string | Opsiyonel* | Oyuncunun hesap ID’si/kullanıcı adı (daha doğru takip için) |
En iyi sonuç için <code>account_id</code> parametresini kullanarak oyuncuları daha kesin şekilde takip edin. <code>ip</code> yöntemi, oyuncular VPN kullandığında veya farklı konumlardan bağlandığında daha az güvenilir olabilir.
Oy URL formatı
Oyuncuları şu URL formatıyla oy sayfasına yönlendirin:
https://metin2-toplist.net/vote.{lang}/{server_id}-{server_slug}/{account_id}
Örnekler:
https://metin2-toplist.net/vote.en/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.de/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.tr/123-awesome-server/PlayerName
Desteklenen diller: en, de, es, pl, tr, ro, it, pt, hu, gr, cz
Yanıt formatı
API aşağıdaki yapıda bir JSON yanıtı döndürür:
{
"success": true,
"voted": true,
"last_vote": "2025-11-11T14:30:00Z",
"next_vote_in": 0,
"message": "Vote verified successfully"
}
{
"success": true,
"voted": false,
"message": "No recent vote found"
}
{
"success": false,
"message": "Invalid API token"
}
Yanıt alanları
| Alan | Tip | Açıklama |
|---|---|---|
success |
boolean | API isteğinin başarıyla işlenip işlenmediğini belirtir |
voted |
boolean | Geçerli bir oy bulunup bulunmadığını gösterir (yalnızca success=true ise) |
last_vote |
string | Son oy tarihinin ISO 8601 zaman damgası (yalnızca voted=true ise) |
next_vote_in |
integer | Bir sonraki oya kadar kalan saniye sayısı (yalnızca voted=true ise) |
message |
string | Sonucu açıklayan anlaşılır mesaj |
Kod örnekleri
PHP örneği
<?php
function checkVote($apiToken, $playerIP) {
$url = "https://metin2-toplist.net/api/check-vote";
$params = http_build_query([
'api_token' => $apiToken,
'ip' => $playerIP
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
return ['success' => false, 'message' => 'API request failed'];
}
return json_decode($response, true);
}
$result = checkVote('YOUR_API_TOKEN', $_SERVER['REMOTE_ADDR']);
if ($result['success'] && $result['voted']) {
echo "Vote verified! Rewarding player...";
}
?>
Python örneği
import requests
def check_vote(api_token, player_ip):
url = "https://metin2-toplist.net/api/check-vote"
params = {'api_token': api_token, 'ip': player_ip}
try:
response = requests.get(url, params=params, timeout=10)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
return {'success': False, 'message': f'API request failed: {str(e)}'}
result = check_vote('YOUR_API_TOKEN', '123.456.789.012')
if result.get('success') and result.get('voted'):
print("Vote verified! Rewarding player...")
C++ örneği (oyun sunucuları için)
#include <curl/curl.h>
#include <string>
#include <sstream>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
bool CheckVote(const std::string& apiToken, const std::string& playerIP) {
CURL* curl = curl_easy_init();
if (!curl) return false;
std::string readBuffer;
std::ostringstream url;
url << "https://metin2-toplist.net/api/check-vote"
<< "?api_token=" << apiToken
<< "&ip=" << playerIP;
curl_easy_setopt(curl, CURLOPT_URL, url.str().c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
CURLcode res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
return (res == CURLE_OK) && (readBuffer.find("\"voted\":true") != std::string::npos);
}
void OnPlayerRequestReward(const std::string& playerName, const std::string& playerIP) {
if (CheckVote("YOUR_API_TOKEN", playerIP)) {
GiveItemToPlayer(playerName, REWARD_ITEM_VNUM, REWARD_COUNT);
SendNotice("Vote verified! You received your reward!");
} else {
SendNotice("No valid vote found. Please vote first!");
}
}
JavaScript/Node.js örneği
async function checkVote(apiToken, playerIP) {
const url = new URL('https://metin2-toplist.net/api/check-vote');
url.searchParams.append('api_token', apiToken);
url.searchParams.append('ip', playerIP);
try {
const response = await fetch(url, {
method: 'GET',
headers: { 'Accept': 'application/json' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return await response.json();
} catch (error) {
return { success: false, message: error.message };
}
}
checkVote('YOUR_API_TOKEN', '123.456.789.012').then(result => {
if (result.success && result.voted) {
console.log('Vote verified! Rewarding player...');
}
});
Entegrasyon rehberi
API tokenınızı güvenli şekilde saklayın ve asla istemci tarafı kodda göstermeyin. API çağrılarını daima sunucu backend’inizden yapın.
Adım 1: Oy butonu/komutu oluşturun
Web sitenize veya oyununuza https://metin2-toplist.net/servers/YOUR-SERVER-SLUG adresine yönlendiren bir oy butonu ya da komut ekleyin.
Adım 2: Oy doğrulamasını uygulayın
Oyuncu ödül talep ettiğinde (site üzerinden veya oyun içi komutla) şu adımları izleyin:
- Oyuncunun IP adresini alın
- check-vote uç noktasına API isteği gönderin
- JSON yanıtını işleyin
- Eğer
votedtrue ise ödülü verin - Çifte ödül vermemek için ödül verdiğinizi kayıt altına alın
Adım 3: Ödülleri yönetin
Ödül sürecini yönetmek için en iyi uygulamalar:
- Verilen ödülleri takip edin: Hangi oyların ödüllendirildiğini veritabanında saklayın
- Oy bekleme süresi: Oylar arasındaki 24 saatlik süreye uyun
- Hata yönetimi: API hatalarını düzgün yönetin ve oyuncuları bilgilendirin
- Loglama: Analiz ve hata ayıklama için tüm oy doğrulamalarını kaydedin
Örnek iş akışı
Sorun giderme
"Invalid API token" hatası
Çözüm: Sunucu panelinizden aldığınız doğru API tokenını kullandığınızdan emin olun. Fazladan boşluk veya karakter olmadığını kontrol edin.
Oy verildi ama doğrulanmıyor
Olası nedenler:
- Oyuncu VPN/proxy kullanıyor (IP adresleri eşleşmiyor)
- Oy henüz işlenmedi (30 saniye bekleyip tekrar deneyin)
- API’ye yanlış IP adresi gönderiliyor
- Oyuncu farklı bir sunucuya oy verdi
API zaman aşımı veya bağlantı hatası
Çözüm: Sunucunuzun HTTPS istekleri gönderebildiğinden emin olun. Güvenlik duvarı ayarlarını kontrol edin. Üstel backoff ile yeniden deneme mantığı uygulayın.
Oyuncular birden fazla kez ödül alıyor
Çözüm: Ödüllendirilen oyları yerel olarak takip edin. Oy zaman damgasını saklayın ve her oy için ödülü sadece bir kez verin.
IPv6 adresleri çalışmıyor
Çözüm: Tam IPv6 adresini gönderdiğinizden emin olun. API’miz hem IPv4 hem de IPv6 destekler.
Public Server Listing API (v1)
List, submit, and claim Metin2 servers programmatically. Perfect for other toplists, server management tools, or custom integrations.
https://metin2-toplist.net/api/v1
Rate Limits
| Endpoint | Method | Limit | Auth |
|---|---|---|---|
/api/v1/servers | GET | 60/min | — |
/api/v1/servers/{slug} | GET | 60/min | — |
/api/v1/servers | POST | 3/hour | — |
/api/v1/servers/claim | POST | 10/hour | ✅ |
List Servers
Retrieve a paginated list of active, launched servers. Supports filtering by category and language.
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | — | Filter by category: oldschool, newschool, fun, pvp, pvm, pve |
language | string | — | Filter by language code: EN, DE, TR, etc. |
sort | string | votes | Sort order: votes, newest, name |
page | integer | 1 | Page number |
per_page | integer | 25 | Results per page (max 50) |
curl -H "Accept: application/json" \
"https://metin2-toplist.net/api/v1/servers?category=pvp&language=EN&per_page=10"
Submit a New Server
Submit a new server listing via the API. The server enters a moderation queue and must be approved before it appears publicly.
All API-submitted servers start as inactive and require manual approval. This prevents spam and ensures listing quality.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Server name (max 255 chars, must be unique) |
description | string | ✅ | Server description (min 20, max 5000 chars) |
website_url | string | — | Server website URL |
discord_url | string | — | Discord invite URL |
languages | array | ✅ | Language codes, e.g. ["EN", "DE"] (min 1, max 5) |
category | string | — | One of: oldschool, newschool, fun, pvp, pvm, pve |
launch_date | string | — | Future launch date (YYYY-MM-DD) |
owner_email | string | — | Contact email (optional, not shown publicly) |
curl -X POST "https://metin2-toplist.net/api/v1/servers" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "Dragon Kingdom",
"description": "A classic PvP experience with custom dungeons and weekly events.",
"languages": ["EN", "DE"],
"category": "pvp",
"website_url": "https://dragon-kingdom.com",
"discord_url": "https://discord.gg/example"
}'
{
"success": true,
"message": "Server submitted successfully!",
"data": {
"id": 42,
"slug": "dragon-kingdom",
"status": "pending_review"
},
"claim_token": "a1b2c3d4...80 characters",
"note": "Save this token! Use it to claim your listing."
}
Claim Token System
When you submit a server, you receive a unique 80-character claim token. This token lets you link the listing to your account later.
The claim token is shown only once in the API response. Save it immediately — we store only the hash.
Submit
POST your server to /api/v1/servers and save the claim_token from the response.
Register
Create an account and paste the token in the optional "Claim Token" field.
Manage
Your server is now linked to your account with full dashboard access.
Error Codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Server created (pending review) |
401 | Authentication required (claim endpoint) |
404 | Server not found / invalid claim token |
409 | Server already claimed |
410 | Claim token expired |
422 | Validation error / spam rejected |
429 | Rate limit exceeded |
Integration Examples
$response = file_get_contents('https://metin2-toplist.net/api/v1/servers?per_page=10');
$data = json_decode($response, true);
foreach ($data['data'] as $server) {
echo $server['name'] . ' — ' . $server['vote_count'] . ' votes' . PHP_EOL;
}
const res = await fetch('https://metin2-toplist.net/api/v1/servers?category=pvp');
const { data, meta } = await res.json();
data.forEach(server => {
console.log(`${server.name}: ${server.vote_count} votes`);
});
import requests
resp = requests.get('https://metin2-toplist.net/api/v1/servers', params={
'language': 'DE',
'sort': 'newest',
'per_page': 20
})
servers = resp.json()['data']
for s in servers:
print(f"{s['name']} — {s['vote_count']} votes")
Destek ve kaynaklar
Canlıya almadan önce entegrasyonu bir test hesabıyla kapsamlı şekilde deneyin. Tüm uç durumları ve hata senaryolarını yönettiğinizden emin olun.