واجهة برمجية سريعة وآمنة
لاستبدال أكواد الألعاب
استبدل أكواد PUBG Mobile و Free Fire، وتفقّد اللاعبين، واجلب معلومات الأكواد من متجرك أو تطبيقك بطلب HTTP واحد. كل الردود بصيغة JSON.
https://api.devtechnobots.com/api/v1بداية سريعة
true فالعملية نجحت، وإلا فاقرأ error_code للتعامل البرمجي و error للعرض.المصادقة
استخدم مفتاح API الخاص بك مع كل طلب. المفاتيح تبدأ بـ rk_. إن تسرّب مفتاحك فولّد مفتاحاً جديداً من البوت وسيتوقف القديم فوراً.
?api_token=YOUR_TOKEN&player_id=123POST {"api_token": "YOUR_TOKEN",
"player_id": "123"}Authorization: Bearer YOUR_TOKEN
X-API-Key: YOUR_TOKENGET و POST. مع POST يمكن إرسال الحقول كـ JSON أو كـ form.الحدود والخطط
لكل خطة حد يومي يتجدد كل 24 ساعة. لا يُحتسب من الحد إلا الطلب الناجح؛ الطلبات الفاشلة (كود خاطئ، لاعب غير موجود، أعطال مؤقتة) مجانية.
| العملية | ما يُحتسب عند النجاح |
|---|---|
| استبدال مباشر | 1 |
| تفقد لاعب | 0.5 |
| معلومات كود | 0.5 |
| حالة الحساب | 0 |
كل رد يحمل ترويسات تساعدك على تتبع استهلاكك:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487.5
X-RateLimit-Reset: 2026-02-01T10:00:00Z
ACCOUNT_EXPIRED) ولا يُحذف، ويعود للعمل فور التجديد من البوت./check-playerيُحتسب 0.5 عند النجاحتفقد لاعب — PUBG Mobile
يتحقق من وجود اللاعب ويعيد اسمه داخل اللعبة.
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
api_token | نص | نعم | مفتاحك (يمكن إرساله بالـ Query أو بالـ JSON أو بالترويسة) |
player_id | نص (أرقام) | نعم | آيدي اللاعب داخل اللعبة |
curl -X POST "https://api.devtechnobots.com/api/v1/check-player?api_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"player_id": "51709255708"}'curl "https://api.devtechnobots.com/api/v1/check-player?api_token=YOUR_TOKEN&player_id=51709255708"import requests
r = requests.post(
"https://api.devtechnobots.com/api/v1/check-player",
params={"api_token": "YOUR_TOKEN"},
json={"player_id": "51709255708"},
timeout=40,
)
print(r.json())const res = await fetch("https://api.devtechnobots.com/api/v1/check-player?api_token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"player_id": "51709255708"}),
});
console.log(await res.json());{
"successful": true,
"player_id": "51709255708",
"name": "PlayerName"
}{
"successful": false,
"player_id": "51709255708",
"error_code": "CHARACTER_NOT_FOUND",
"error": "اللاعب غير موجود، تأكد من صحة الآيدي"
}/redeem/directيُحتسب 1 عند النجاحاستبدال مباشر — PUBG Mobile
يستبدل الكود على آيدي اللاعب. عند النجاح يعيد أيضاً رابط صورة الإيصال في الحقل image_url.
image_url رابط مباشر لصورة JPG جاهز للعرض أو الإرسال لعميلك. قد يكون null في حال تعذّر إنتاج الصورة، ولا يؤثر ذلك على نجاح الاستبدال.| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
api_token | نص | نعم | مفتاحك (يمكن إرساله بالـ Query أو بالـ JSON أو بالترويسة) |
player_id | نص (أرقام) | نعم | آيدي اللاعب داخل اللعبة |
code | نص | نعم | كود الشحن |
curl -X POST "https://api.devtechnobots.com/api/v1/redeem/direct?api_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"player_id": "51709255708", "code": "XXXX-XXXX-XXXX"}'curl "https://api.devtechnobots.com/api/v1/redeem/direct?api_token=YOUR_TOKEN&player_id=51709255708&code=XXXX-XXXX-XXXX"import requests
r = requests.post(
"https://api.devtechnobots.com/api/v1/redeem/direct",
params={"api_token": "YOUR_TOKEN"},
json={"player_id": "51709255708", "code": "XXXX-XXXX-XXXX"},
timeout=40,
)
print(r.json())const res = await fetch("https://api.devtechnobots.com/api/v1/redeem/direct?api_token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"player_id": "51709255708", "code": "XXXX-XXXX-XXXX"}),
});
console.log(await res.json());{
"successful": true,
"player_id": "51709255708",
"code": "XXXX-****",
"name": "PlayerName",
"product_name": "60 UC",
"took_ms": 1840,
"image_url": "https://i.ibb.co/xxxxxxx/receipt.jpg"
}{
"successful": false,
"player_id": "51709255708",
"code": "XXXX-****",
"error_code": "CODE_USED",
"error": "الكود مستخدم مسبقاً"
}/code-infoيُحتسب 0.5 عند النجاحمعلومات كود — PUBG Mobile
يخبرك إن كان الكود مستخدماً أم غير مستخدم، ويعيد دائماً تاريخ انتهاء صلاحيته. إن كان مستخدماً يعيد أيضاً اللاعب ووقت الاستبدال مع رابط صورة.
used: true مع التفاصيل)، غير مستخدم (used: false ويبقى expires_at موجوداً)، وغير موجود (CODE_NOT_FOUND). متاحة لـ PUBG Mobile فقط.{
"successful": true,
"used": false,
"code": "XXXX-****",
"player_id": null,
"name": null,
"amount": 60,
"product_name": "60 UC",
"channel_name": "MTCGAME CO., LIMITED",
"created_at": null,
"expires_at": "2027-10-06T15:59:59Z",
"image_url": null
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
api_token | نص | نعم | مفتاحك (يمكن إرساله بالـ Query أو بالـ JSON أو بالترويسة) |
code | نص | نعم | كود الشحن |
curl -X POST "https://api.devtechnobots.com/api/v1/code-info?api_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"code": "XXXX-XXXX-XXXX"}'curl "https://api.devtechnobots.com/api/v1/code-info?api_token=YOUR_TOKEN&code=XXXX-XXXX-XXXX"import requests
r = requests.post(
"https://api.devtechnobots.com/api/v1/code-info",
params={"api_token": "YOUR_TOKEN"},
json={"code": "XXXX-XXXX-XXXX"},
timeout=40,
)
print(r.json())const res = await fetch("https://api.devtechnobots.com/api/v1/code-info?api_token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"code": "XXXX-XXXX-XXXX"}),
});
console.log(await res.json());{
"successful": true,
"used": true,
"code": "XXXX-****",
"player_id": "5398786977",
"name": "PlayerName",
"amount": 660,
"product_name": "660 UC",
"channel_name": "Mintroute DMCC",
"created_at": "2024-09-24T15:08:42Z",
"expires_at": "2025-09-18T15:59:59Z",
"image_url": "https://i.ibb.co/xxxxxxx/receipt.jpg"
}{
"successful": false,
"code": "XXXX-****",
"error_code": "CODE_NOT_FOUND",
"error": "الكود غير موجود أو خاطئ"
}/ff/check-playerيُحتسب 0.5 عند النجاحتفقد لاعب — Free Fire
نفس صيغة PUBG تماماً، يتغير المسار فقط.
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
api_token | نص | نعم | مفتاحك (يمكن إرساله بالـ Query أو بالـ JSON أو بالترويسة) |
player_id | نص (أرقام) | نعم | آيدي اللاعب داخل اللعبة |
curl -X POST "https://api.devtechnobots.com/api/v1/ff/check-player?api_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"player_id": "123456789"}'curl "https://api.devtechnobots.com/api/v1/ff/check-player?api_token=YOUR_TOKEN&player_id=123456789"import requests
r = requests.post(
"https://api.devtechnobots.com/api/v1/ff/check-player",
params={"api_token": "YOUR_TOKEN"},
json={"player_id": "123456789"},
timeout=40,
)
print(r.json())const res = await fetch("https://api.devtechnobots.com/api/v1/ff/check-player?api_token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"player_id": "123456789"}),
});
console.log(await res.json());{
"successful": true,
"player_id": "123456789",
"name": "PlayerName"
}{
"successful": false,
"player_id": "123456789",
"error_code": "CHARACTER_NOT_FOUND",
"error": "اللاعب غير موجود، تأكد من صحة الآيدي"
}/ff/redeem/directيُحتسب 1 عند النجاحاستبدال مباشر — Free Fire
نفس صيغة PUBG، بدون حقل image_url (الإيصال لـ PUBG فقط).
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
api_token | نص | نعم | مفتاحك (يمكن إرساله بالـ Query أو بالـ JSON أو بالترويسة) |
player_id | نص (أرقام) | نعم | آيدي اللاعب داخل اللعبة |
code | نص | نعم | كود الشحن |
curl -X POST "https://api.devtechnobots.com/api/v1/ff/redeem/direct?api_token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"player_id": "123456789", "code": "XXXX-XXXX-XXXX"}'curl "https://api.devtechnobots.com/api/v1/ff/redeem/direct?api_token=YOUR_TOKEN&player_id=123456789&code=XXXX-XXXX-XXXX"import requests
r = requests.post(
"https://api.devtechnobots.com/api/v1/ff/redeem/direct",
params={"api_token": "YOUR_TOKEN"},
json={"player_id": "123456789", "code": "XXXX-XXXX-XXXX"},
timeout=40,
)
print(r.json())const res = await fetch("https://api.devtechnobots.com/api/v1/ff/redeem/direct?api_token=YOUR_TOKEN", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"player_id": "123456789", "code": "XXXX-XXXX-XXXX"}),
});
console.log(await res.json());{
"successful": true,
"player_id": "123456789",
"code": "XXXX-****",
"name": "PlayerName",
"product_name": "110 Diamonds",
"took_ms": 2210
}{
"successful": false,
"player_id": "123456789",
"code": "XXXX-****",
"error_code": "INVALID_CODE",
"error": "الكود غير صالح أو منتهي الصلاحية"
}حالة الحساب
/accountمجانييعرض خطتك واستهلاكك الحالي وموعد التجديد، ولا يستهلك من حدّك اليومي.
curl "https://api.devtechnobots.com/api/v1/account?api_token=YOUR_TOKEN"
{
"successful": true,
"status": "active",
"plan": "Pro",
"daily_limit": 500,
"used_today": 12.5,
"remaining_today": 487.5,
"resets_at": "2026-02-01T10:00:00Z",
"expires_at": "2026-02-28T10:00:00Z"
}
رموز الأخطاء
الرد الناجح دائماً HTTP 200، وأي خطأ يعيد HTTP مختلفاً (4xx للأخطاء منك أو من الكود، 5xx لمشاكل مؤقتة). كل رد فاشل يحمل error_code ثابت (للبرمجة) و error بالعربية (للعرض)، وأحياناً detail بالسبب الأصلي من المزوّد عندما يكون غير مصنَّف.
المصادقة والحساب
| error_code | HTTP | المعنى | ما العمل |
|---|---|---|---|
INVALID_TOKEN | 401 | مفتاح API غير صحيح أو ملغى | تأكد من المفتاح أو ولّد مفتاحاً جديداً من البوت |
ACCOUNT_DISABLED | 403 | الحساب غير مفعّل، تواصل مع الإدارة | تواصل مع الإدارة لتفعيل الـ API |
ACCOUNT_EXPIRED | 403 | انتهى اشتراكك، جدّده من البوت | جدّد الخطة من البوت (خطتي ← تمديد) |
REQUESTS_LIMIT | 429 | وصلت حدّك اليومي من الطلبات، يتجدد كل 24 ساعة | انتظر موعد التجديد (الترويسة X-RateLimit-Reset) أو رقِّ الخطة |
SERVICE_UNAVAILABLE | 503 | الخدمة متوقفة مؤقتاً | حاول لاحقاً |
التحقق من الطلب
| error_code | HTTP | المعنى | ما العمل |
|---|---|---|---|
INVALID_REQUEST | 400 | طلب غير صالح: تحقق من الحقول المطلوبة | أرسل الحقول المطلوبة بالصيغة الصحيحة |
INVALID_PLAYER_ID | 400 | آيدي اللاعب يجب أن يكون أرقاماً فقط | أرسل أرقاماً فقط |
أخطاء الكود
| error_code | HTTP | المعنى | ما العمل |
|---|---|---|---|
INVALID_CODE | 422 | الكود غير صالح أو منتهي الصلاحية | تحقق من الكود. لا تعِد المحاولة بنفس الكود |
CODE_USED | 409 | الكود مستخدم مسبقاً | الكود محروق، لا تعد المحاولة |
CODE_EXPIRED | 410 | انتهت صلاحية الكود | الكود منتهي |
CODE_NOT_FOUND | 404 | الكود غير موجود أو خاطئ | تأكد من كتابة الكود |
CODE_REGION_MISMATCH | 422 | الكود غير مخصص لمنطقة هذا الحساب | استخدم كوداً مناسباً لمنطقة الحساب |
أخطاء اللاعب
| error_code | HTTP | المعنى | ما العمل |
|---|---|---|---|
CHARACTER_NOT_FOUND | 404 | اللاعب غير موجود، تأكد من صحة الآيدي | تأكد من آيدي اللاعب |
PLAYER_BANNED | 403 | حساب اللاعب محظور | لا يمكن الشحن لهذا الحساب |
مشاكل مؤقتة (لا تُحتسب من حدّك)
| error_code | HTTP | المعنى | ما العمل |
|---|---|---|---|
RISK_CONTROL | 403 | رُفضت العملية بسبب إجراءات الحماية، حاول لاحقاً | أعد المحاولة بعد قليل. الكود لم يُستهلك |
LOGIN_FAILED | 502 | فشل تسجيل الدخول لدى المزوّد، حاول مرة أخرى | أعد المحاولة بعد قليل. الكود لم يُستهلك |
NO_CODES_AVAILABLE | 503 | لا توجد أكواد متاحة لدى المزوّد حالياً | أعد المحاولة بعد قليل. الكود لم يُستهلك |
NO_ACCOUNTS_AVAILABLE | 503 | الخدمة غير متاحة حالياً | أعد المحاولة بعد قليل. الكود لم يُستهلك |
INVALID_ACTIVATION_RESPONSE | 502 | رد غير صالح من المزوّد، أعد المحاولة | أعد المحاولة بعد قليل. الكود لم يُستهلك |
PROVIDER_AUTH | 502 | مشكلة في ربط المزوّد، تواصل مع الإدارة | مشكلة عندنا، تواصل مع الإدارة |
SERVER_BUSY | 503 | السيرفر مشغول حالياً، حاول بعد قليل | أعد المحاولة بعد قليل. الكود لم يُستهلك |
SERVER_DOWN | 503 | السيرفر غير متاح حالياً | أعد المحاولة بعد قليل. الكود لم يُستهلك |
TIMEOUT | 504 | انتهت مهلة الاتصال بالمزوّد | أعد المحاولة بعد قليل. الكود لم يُستهلك |
NETWORK_ERROR | 502 | خطأ في الاتصال بالشبكة | أعد المحاولة بعد قليل. الكود لم يُستهلك |
UNKNOWN_ERROR | 502 | خطأ غير معروف من المزوّد | السبب الحقيقي يظهر في الحقل detail |