NeoSMM API v2.0

NeoSMM API

SMM xizmatlar uchun universal API. Resellerlar va dasturchilar uchun yaratilgan.

Autentifikatsiya

Barcha so'rovlar key parametri orqali autentifikatsiya qilinadi.

ParametrTurTavsif
key string Majburiy — API kalit. Bot orqali oling.
// Base URL
POST https://neosmm.uz/api/v2

// Parametrlar form-data yoki JSON shaklida yuboriladi
key=your_api_key_here&action=balance

Xizmatlar ro'yxati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — services

Muvaffaqiyatli javob:

[
  {
    "service": 1,
    "name": "Instagram Followers",
    "type": "Default",
    "category": "Instagram",
    "rate": "1500.00",
    "min": "100",
    "max": "100000",
    "refill": true,
    "cancel": false
  }
]

Buyurtma berish

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — add
serviceintegerMajburiy — Xizmat ID
linkstringMajburiy — Havola
quantityintegerMajburiy — Miqdor

Muvaffaqiyatli javob:

{
  "order": 12345
}

Xato javob:

{
  "error": "Insufficient balance"
}

Buyurtma holati

POST/api/v2

Bitta buyurtma:

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — status
orderintegerMajburiy — Buyurtma ID
{
  "charge": "1500.00",
  "start_count": "1024",
  "status": "Completed",
  "remains": "0",
  "currency": "UZS"
}

Bir nechta buyurtma (max 100):

ParametrTurTavsif
ordersstringMajburiy — ID lar vergul bilan: 1,2,3

Donat va gift buyurtmalari uchun emas

status faqat SMM buyurtmalari (add) holatini qaytaradi. Donat va gift buyurtmalari raqamlari alohida — bir xil raqam ikki turda ham bo'lishi mumkin. Ularning holati uchun donat_status va gift_status ishlating. Agar status ga o'zingizning donat yoki gift buyurtmangiz raqamini yuborsangiz, javobda qaysi amalni ishlatish kerakligi aytiladi:

{
  "error": "Order not found",
  "order_type": "donat",
  "hint": "Bu donat buyurtmasi: action=donat_status ishlating"
}

Balans tekshirish

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — balance
{
  "balance": "125000.50",
  "currency": "UZS"
}

Buyurtma bekor qilish

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — cancel
ordersstringMajburiy — ID lar vergul bilan (max 100)
[
  {"order": 12345, "cancel": 1},
  {"order": 12346, "error": "Cannot cancel: Completed"}
]

Qayta tiklash (Refill)

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — refill
orderintegerBitta buyurtma ID
ordersstringKo'p buyurtma (vergul bilan)
{"refill": 5678}

Refill holati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — refill_status
refillintegerRefill ID
{"status": "Completed"}

Telegram sovg'alar

Telegram Stars orqali sovg'a yuborish. Bu amallar SMM xizmatlaridan alohida: sovg'aning qat'iy narxi bor va miqdor ko'rsatilmaydi.

Sovg'alar ro'yxati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — gifts
[
    {
        "gift": 3,
        "name": "Ayiqcha",
        "price": "25000.00",
        "stars": 15
    }
]

Sovg'a yuborish

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — gift_add
giftintegerMajburiy — sovg'a ID
usernamestringMajburiy — qabul qiluvchi, @username
commentstringIxtiyoriy — izoh (max 255)
{
    "order": 1543
}

Sovg'a holati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — gift_status
orderintegerMajburiy — buyurtma ID

O'yin donat

O'yin hisobini to'ldirish (PUBG UC, Free Fire, Mobile Legends va boshqalar). Donat mahsulotlari services ro'yxatiga kirmaydi: ularning narxi qat'iy, miqdor ko'rsatilmaydi va o'yinchi ID si talab qilinadi. Shuning uchun alohida amallar ishlatiladi.

Mahsulotlar ro'yxati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — donat_services
[
    {
        "product": 1,
        "name": "60 UC",
        "game": "Pubg Uc",
        "type": "topup",
        "price": "11489.69",
        "currency": "UZS",
        "requires": ["player_id"]
    }
]

requires — shu mahsulot uchun majburiy maydonlar. Ba'zi o'yinlarda (masalan Mobile Legends Global) server_id ham bo'ladi.

O'yinchi ID ni tekshirish

POST/api/v2

Buyurtma berishdan oldin o'yinchi ID sini tekshiring. Bu bekor qilingan buyurtmalarni va keraksiz balans harakatini oldini oladi.

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — donat_check_id
productintegerMajburiy — mahsulot ID
player_idstringMajburiy — o'yinchi ID
server_idstringIxtiyoriy — requires da bo'lsa majburiy
{
    "valid": true,
    "verified": true,
    "player_name": "PlayerNick"
}

valid — buyurtma berish mumkinmi. verified — provayder ID ni haqiqatan tasdiqladimi.

Muhim: ayrim o'yinlarda provayder ID ni tekshirmaydi — kiritilgan qiymatni shunchaki qaytaradi. Bunday holatda javob "valid": true, "verified": false bo'ladi va bu "tekshirib bo'lmadi" degani, "to'g'ri" degani emas. Faqat verified: true bo'lgandagina ID tasdiqlangan hisoblanadi (o'shanda player_name ham keladi).

// Provayder bu o'yinni tekshira olmaydi
{
    "valid": true,
    "verified": false,
    "note": "Provider cannot verify player IDs for this game"
}

// ID haqiqatan noto'g'ri
{
    "valid": false,
    "verified": true
}

Donat buyurtma berish

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — donat_add
productintegerMajburiy — mahsulot ID
player_idstringMajburiy — topup uchun
server_idstringIxtiyoriy — requires da bo'lsa majburiy
{
    "order": 2913,
    "charge": "11489.69",
    "currency": "UZS"
}

Donat buyurtma holati

POST/api/v2

ParametrTurTavsif
keystringMajburiy
actionstringMajburiy — donat_status
orderintegerMajburiy — buyurtma ID
{
    "order": 2913,
    "status": "completed",
    "charge": "11489.69",
    "currency": "UZS"
}
HolatMa'nosi
pendingBajarilmoqda
completedBajarildi
failedBajarilmadi — pul qaytarilgan, sabab reason da

code maydoni faqat vaucher (type: "simple") mahsulotlarida, buyurtma bajarilgandan keyin qaytariladi.

Buyurtma turlari

Default

Standart buyurtma: service, link, quantity

Drip-feed: qo'shimcha runs, interval (daqiqalarda)

Custom Comments

commentsstringIzohlar — har bir qator alohida izoh

Mentions (Custom List)

usernamesstringFoydalanuvchi nomlari — har bir qator alohida

Hashtag Mentions

hashtagstringHashtag: #tag

Subscription

usernamestringFoydalanuvchi nomi
min, maxintegerMin/max miqdor
postsintegerIxtiyoriy — postlar soni
delayintegerIxtiyoriy — kechikish (daqiqa, 0-600)
expirystringIxtiyoriy — dd/mm/yyyy

Poll

answer_numberintegerOvoz berish raqami

Xatolar

Xato xabariTavsif
Invalid API keyNoto'g'ri API kalit
Invalid actionNoma'lum action
Invalid service IDXizmat topilmadi yoki faol emas
Insufficient balanceMablag' yetarli emas
Min quantity is NMinimal miqdordan kam
Max quantity is NMaksimal miqdordan ko'p
Order not foundBuyurtma topilmadi. status da raqam donat/gift buyurtmangiz bo'lsa — order_type va hint bilan
Order failed, balance refundedXatolik, mablag' qaytarildi
API access is disabled for this accountHisobingiz uchun API o'chirilgan
Texnik ishlar olib borilmoqda...Vaqtinchalik — javobda retry_after bo'ladi
Donat service is temporarily unavailable...Donat vaqtincha yopiq — retry_after bilan

Vaqtinchalik xatolar — retry_after

Texnik ishlar paytidagi javobda qo'shimcha retry_after maydoni bo'ladi (soniyada). Bu xato vaqtinchalik: buyurtmani yiqilgan deb belgilamang va darrov qayta urinmang — ko'rsatilgan vaqtdan keyin urinib ko'ring. Maydon yo'q bo'lsa, xato doimiy (masalan noto'g'ri parametr) deb hisoblang.

{
  "error": "Texnik ishlar olib borilmoqda. Iltimos keyinroq urinib ko'ring.",
  "retry_after": 300
}

Texnik ishlar paytida status, balance, services va boshqa o'qish amallari odatda ishlayveradi — faqat yangi buyurtma to'xtaydi. Ya'ni allaqachon bergan buyurtmalaringizni kuzatishda davom eta olasiz.

Kod misollari

# Python — requests kutubxonasi bilan
import requests

API_URL = "https://neosmm.uz/api/v2"
API_KEY = "your_api_key"

# Balans tekshirish
resp = requests.post(API_URL, data={
    "key": API_KEY,
    "action": "balance"
})
print(resp.json())
# {"balance": "125000.50", "currency": "UZS"}

# Buyurtma berish
resp = requests.post(API_URL, data={
    "key": API_KEY,
    "action": "add",
    "service": 1,
    "link": "https://instagram.com/username",
    "quantity": 1000
})
print(resp.json())
# {"order": 12345}

# Buyurtma holati
resp = requests.post(API_URL, data={
    "key": API_KEY,
    "action": "status",
    "order": 12345
})
print(resp.json())
// PHP — cURL bilan
$api_url = "https://neosmm.uz/api/v2";
$api_key = "your_api_key";

function apiRequest($params) {
    global $api_url, $api_key;
    $params['key'] = $api_key;

    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);

    return json_decode($result, true);
}

// Balans
$balance = apiRequest(['action' => 'balance']);

// Buyurtma
$order = apiRequest([
    'action' => 'add',
    'service' => 1,
    'link' => 'https://instagram.com/username',
    'quantity' => 1000
]);
// JavaScript — fetch API bilan
const API_URL = "https://neosmm.uz/api/v2";
const API_KEY = "your_api_key";

async function apiRequest(params) {
    const formData = new FormData();
    formData.append("key", API_KEY);
    for (const [k, v] of Object.entries(params)) {
        formData.append(k, v);
    }
    const resp = await fetch(API_URL, {
        method: "POST",
        body: formData
    });
    return resp.json();
}

// Balans
const balance = await apiRequest({action: "balance"});

// Buyurtma
const order = await apiRequest({
    action: "add",
    service: 1,
    link: "https://instagram.com/username",
    quantity: 1000
});
# Balans tekshirish
curl -X POST https://neosmm.uz/api/v2 \
  -d "key=your_api_key" \
  -d "action=balance"

# Buyurtma berish
curl -X POST https://neosmm.uz/api/v2 \
  -d "key=your_api_key" \
  -d "action=add" \
  -d "service=1" \
  -d "link=https://instagram.com/username" \
  -d "quantity=1000"

# Buyurtma holati
curl -X POST https://neosmm.uz/api/v2 \
  -d "key=your_api_key" \
  -d "action=status" \
  -d "order=12345"