FineSMM API v2
O'z panelingiz, botingiz yoki saytingizni FineSMM xizmatlariga ulang: xizmatlar ro'yxatini oling, buyurtma bering, holatini va balansni kuzating. Standart SMM panel formati — mavjud skriptlar bilan to'g'ridan-to'g'ri ishlaydi.
Kirish
Barcha so'rovlar bitta manzilga yuboriladi. Parametrlar query-satr (GET) yoki forma (POST, application/x-www-form-urlencoded) ko'rinishida beriladi, qaysi amal bajarilishi action parametri bilan tanlanadi.
Buyurtma narxi balansingizdan darhol yechiladi: rate / 1000 × quantity. Provayder buyurtmani qabul qilmasa — pul avtomatik qaytariladi. Bekor qilingan yoki qisman bajarilgan buyurtmalar uchun bajarilmagan qism summasi ham balansga qaytadi.
Xizmatlar ro'yxati
Buyurtma berish mumkin bo'lgan barcha xizmatlar: narx (1000 tasi uchun, so'mda), minimal va maksimal miqdor, turi.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | services |
[
{
"service": "121",
"category": "Instagram Video koʻrish",
"name": "Video koʻrish",
"rate": "40.51",
"min": "100",
"max": "20000000",
"type": "Default",
"refill": "false",
"cancel": "true",
"dripfeed": "false"
},
{
"service": "245",
"category": "Instagram Video koʻrish",
"name": "Video koʻrish (Beta)",
"rate": "28.36",
"min": "100",
"max": "1000000",
"type": "Default",
"refill": "false",
"cancel": "false",
"dripfeed": "false"
}
]
Buyurtma berish
Yangi buyurtma yaratadi. Kerakli parametrlar xizmat turiga (type) bog'liq.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | add |
servicemajburiy | Xizmat ID raqami (services ro'yxatidan) |
linkmajburiy | Profil, kanal yoki post havolasi. So'rovnoma ovozi xizmatlari uchun — javob variantining havolasi: https://t.me/FineSMM/123?option=MQ |
quantitymajburiy | Miqdor — xizmatning min va max oralig'ida |
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | add |
servicemajburiy | Poll turidagi xizmat ID raqami |
linkmajburiy | Javob variantining havolasi: Telegram'da kerakli variantni bosib turib «Copy link» qiling (https://t.me/FineSMM/123?option=MQ) |
quantitymajburiy | Ovozlar soni |
answer_numberixtiyoriy | Variant tartib raqami: 1, 2, 3 … Faqat uni havoladan aniqlab bo'lmasa kerak |
{
"order": 35141
}
Buyurtma holati
Bitta buyurtma (order) yoki bir nechtasi (orders, vergul bilan, ko'pi bilan 100 ta) holatini qaytaradi. charge — siz haqiqatda to'lagan summa: bekor qilingan yoki qisman bajarilgan buyurtmada qaytarilgan pul chegirib ko'rsatiladi.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | status |
orderixtiyoriy | Buyurtma ID raqami |
ordersixtiyoriy | Bir nechta ID: 101,102,103 (order o'rniga) |
{
"order": "35141",
"status": "In progress",
"start_count": "1520",
"remains": "340",
"charge": "22.00",
"currency": "UZS"
}
{
"35141": {
"order": "35141",
"status": "Completed",
"start_count": "1520",
"remains": "0",
"charge": "22.00",
"currency": "UZS"
},
"35142": {
"error": "Incorrect order ID"
}
}
| Holat | Ma'nosi |
|---|---|
Pending | Navbatda — tez orada boshlanadi |
In progress | Bajarilmoqda |
Processing | Provayder tomonidan qayta ishlanmoqda |
Completed | To'liq bajarildi |
Partial | Qisman bajarildi — qolgan qism (remains) puli balansga qaytariladi |
Canceled | Bekor qilindi — to'langan summa balansga qaytariladi |
Qayta tiklash
Kafolatli (refill: true) xizmatning to'liq bajarilgan buyurtmasida miqdor kamaygan bo'lsa — qayta to'ldirish so'rovi. Kafolat muddati xizmat nomida ko'rsatiladi (masalan, ♻️R30 — 30 kun). Bitta buyurtmaga bir vaqtda bitta so'rov.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | refill |
ordermajburiy | Buyurtma ID raqami |
{
"refill": "128"
}
So'rov holati: action=refill_status va refill (yoki bir nechtasi — refills=1,2,3).
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | refill_status |
refillixtiyoriy | Qayta tiklash ID raqami |
refillsixtiyoriy | Bir nechta ID, vergul bilan (refill o'rniga) |
{
"status": "Completed"
}
| Holat | Ma'nosi |
|---|---|
Pending / In progress | Qayta tiklanmoqda |
Completed | Kamaygan miqdor qayta to'ldirildi |
Rejected | Rad etildi (odatda miqdor kamaymagan yoki muddat tugagan) |
Bekor qilish
Bekor qilish imkoni bor (cancel: true) xizmatning hali bajarilayotgan buyurtmalarini bekor qilish. Tasdiqlangach buyurtma Canceled yoki Partial bo'ladi va bajarilmagan qism puli balansingizga avtomatik qaytadi.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | cancel |
ordersmajburiy | Buyurtma ID lari, vergul bilan (ko'pi bilan 100 ta) |
[
{
"order": 35141,
"cancel": 1
},
{
"order": 35142,
"cancel": {
"error": "Cancel is disabled for this order"
}
}
]
Buyurtmalarim
Hisobingizdagi barcha buyurtmalar ro'yxati (bot va API orqali berilganlar).
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | orders |
{
"orders_count": 2,
"orders": [
{
"customer": "123456789",
"service": "121",
"order": "35141",
"status": "Completed",
"charge": "22.00",
"currency": "UZS"
},
{
"customer": "123456789",
"service": "121",
"order": "35142",
"status": "Pending",
"charge": "44.00",
"currency": "UZS"
}
]
}
Balans
Hisobingizdagi joriy balans.
| Parametr | Tavsif |
|---|---|
keymajburiy | Sizning API kalitingiz (botda «Business» bo'limi) |
actionmajburiy | balance |
{
"balance": "78869",
"currency": "UZS"
}
Xatolar
Xato bo'lganda javob {"error": "..."} ko'rinishida qaytadi — pul yechilmaydi (yoki darhol qaytariladi).
| Xato matni | Sababi |
|---|---|
Invalid API key | Kalit noto'g'ri yoki yangilangan (eski kalit) |
Incorrect service ID | Bunday xizmat yo'q |
Disabled service ID | Xizmat yoki bo'lim vaqtincha o'chirilgan |
To order this service, just login to the bot | Bu xizmat faqat bot orqali buyurtma qilinadi |
Bad link | Havola bo'sh, juda uzun yoki bo'sh joy / taqiqlangan belgilar bor |
Bad link: poll option link required | Poll xizmati uchun variant havolasi (?option=…) emas, oddiy post havolasi yuborilgan |
Bad answer_number | Variant raqamini havoladan aniqlab bo'lmadi — answer_number yuboring |
Quantity less than minimal N | Miqdor xizmatning minimalidan kam |
Quantity more than maximum N | Miqdor xizmatning maksimalidan ko'p |
Not enough funds on balance | Balans yetarli emas — botda hisobni to'ldiring |
Service temporarily unavailable | Xizmat vaqtincha ishlamayapti |
Incorrect order ID | Buyurtma topilmadi yoki sizga tegishli emas |
Incorrect request | action noma'lum yoki berilmagan |
Provayder buyurtmani rad etsa, uning xato matni o'zgarishsiz qaytariladi (masalan, shu havolaga faol buyurtma bo'lsa).
Kod misollari
Buyurtma berish va holatini tekshirish — eng ko'p ishlatiladigan tillarda.
# Buyurtma berish curl https://finesmm.uz/api/v2 \ -d key=SIZNING_API_KALIT \ -d action=add \ -d service=121 \ -d link=https://t.me/kanalim \ -d quantity=100 # Holatini tekshirish curl "https://finesmm.uz/api/v2?key=SIZNING_API_KALIT&action=status&order=35141"
<?php
function finesmm(array $params): array
{
$params['key'] = 'SIZNING_API_KALIT';
$ch = curl_init('https://finesmm.uz/api/v2');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$response = json_decode((string)curl_exec($ch), true);
curl_close($ch);
return is_array($response) ? $response : ['error' => 'No response'];
}
$order = finesmm([
'action' => 'add',
'service' => 121,
'link' => 'https://t.me/kanalim',
'quantity' => 100,
]);
if (isset($order['error'])) {
echo 'Xato: ' . $order['error'];
} else {
$status = finesmm(['action' => 'status', 'order' => $order['order']]);
echo $status['status'];
}
import requests
API = "https://finesmm.uz/api/v2"
KEY = "SIZNING_API_KALIT"
def finesmm(**params):
params["key"] = KEY
return requests.post(API, data=params, timeout=60).json()
order = finesmm(action="add", service=121, link="https://t.me/kanalim", quantity=100)
if "error" in order:
print("Xato:", order["error"])
else:
print(finesmm(action="status", order=order["order"])["status"])
const API = 'https://finesmm.uz/api/v2';
const KEY = 'SIZNING_API_KALIT';
async function finesmm(params) {
const res = await fetch(API, {
method: 'POST',
body: new URLSearchParams({ key: KEY, ...params }),
});
return res.json();
}
const order = await finesmm({ action: 'add', service: '121', link: 'https://t.me/kanalim', quantity: '100' });
if (order.error) console.error('Xato:', order.error);
else console.log((await finesmm({ action: 'status', order: order.order })).status);