SMM panel API: tài liệu hướng dẫn
SMM panel API v2 chuẩn giúp bạn đặt dịch vụ 4SNS PLUS ngay từ bot Telegram hoặc panel riêng của mình.
SMM panel API là gì?
SMM panel API cho phép chương trình lấy danh sách dịch vụ, đặt hàng, kiểm tra trạng thái đơn và số dư mà không cần vào website. 4SNS PLUS hỗ trợ định dạng SMM panel API v2 chuẩn mà nhiều panel và bot đang dùng, nên code bạn đã kết nối với panel khác sẽ chạy ngay khi đổi URL và key.
Giá và số dư trên API giống hệt trên website. Giá rate trong response services bằng giá mỗi 1,000 (đô la Mỹ) trong bảng giá, và đơn đặt bằng add được trừ vào số dư y như đơn đặt trên web, đồng thời hiện trong lịch sử đơn hàng ở trang quản lý. Số tiền hoàn từ đơn bị hủy hoặc đơn giao một phần sẽ trả về cùng số dư đó.
Thông tin cơ bản
| Endpoint | https://4snsplus.com/api/v2 |
| Phương thức | POST |
| Định dạng request | Trường form (application/x-www-form-urlencoded, multipart) hoặc body JSON |
| Response | JSON; lỗi cũng trả về HTTP 200 kèm trường error |
| Xác thực | Tham số key (API key của bạn) trong mọi request |
| Giới hạn tần suất | 300 request mỗi phút cho mỗi key |
| Tiền tệ | Đô la Mỹ (USD) |
Ví dụ request
curl -X POST https://4snsplus.com/api/v2 \ -d key=YOUR_API_KEY \ -d action=balance
import requests
r = requests.post("https://4snsplus.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "add",
"service": 2210,
"link": "https://t.me/yourchannel",
"quantity": 1000,
})
print(r.json()) # {"order": 31877} or {"error": "..."}Làm sao để lấy API key?
Khi lần nạp tiền đầu tiên được cộng vào số dư, bạn có thể tạo API key trong mục API key ở trang quản lý. Key chỉ hiện một lần lúc tạo, vì vậy hãy lưu ở nơi an toàn. Khi tạo key mới, key cũ sẽ ngừng hoạt động ngay.
Key tách biệt với token tài khoản. Chỉ đưa API key vào bot hoặc server, không bao giờ đưa token tài khoản. Nếu nghĩ key đã bị lộ, bạn chỉ cần tạo key mới ở màn hình API key.
Danh sách dịch vụ (services)
Trả về mọi dịch vụ bạn có thể đặt. rate là giá mỗi 1,000 (USD), và khi type là Package thì đó là giá của một gói. Khi type là Custom Comments, bạn gửi danh sách bình luận thay cho số lượng. category là tên nền tảng kèm tên nhóm.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | services |
Ví dụ response
[
{
"service": 2210,
"name": "Members - 30 Days Non Drop - 30 Days Refill",
"type": "Default",
"category": "Telegram - Members (30 Days Non Drop)",
"rate": "1.4300",
"min": "100",
"max": "50000",
"refill": true,
"cancel": false
}
]Tạo đơn hàng (add)
Tạo đơn hàng và trừ tiền vào số dư. Số tiền bằng giá mỗi 1,000 nhân với số lượng; với Package là giá gói, còn với Custom Comments thì số dòng bình luận chính là số lượng. Tài khoản đã được cộng lần nạp đầu tiên mới đặt hàng được. order trong response là mã đơn hàng của bạn.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | add |
| service | Mã dịch vụ (service từ services) |
| link | Link công khai. Với Telegram: t.me/name, link mời riêng t.me/+code, bài viết t.me/name/123, bot t.me/botname. Cũng nhận @name |
| quantity | Số lượng (trong khoảng min và max). Không cần với Package và Custom Comments |
| comments | Chỉ dành cho Custom Comments. Mỗi dòng một bình luận, tối đa 10,000 dòng, tối đa 500 ký tự mỗi dòng |
Ví dụ response
{
"order": 31877
}Trạng thái đơn hàng (status)
Trạng thái của một đơn hàng. charge là số tiền thực trả sau khi hoàn (USD, 6 chữ số thập phân), start_count là số đếm lúc đơn bắt đầu, còn remains là số lượng chưa giao.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | status |
| order | Mã đơn hàng |
Ví dụ response
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}Trạng thái nhiều đơn hàng (status, orders)
Kiểm tra tối đa 100 đơn một lần, các mã đơn nối bằng dấu phẩy. Mã không tồn tại hoặc không thuộc tài khoản của bạn sẽ nhận error tại vị trí đó.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | status |
| orders | Danh sách mã đơn, ví dụ 1,10,100 |
Ví dụ response
{
"1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}Yêu cầu refill (refill)
Với đơn của dịch vụ có thời hạn refill đã kết thúc ở trạng thái Completed hoặc Partial, hãy gửi yêu cầu trong thời hạn refill tính từ lúc đơn kết thúc. Mỗi đơn có thể có một yêu cầu đang mở, cách nhau 24 giờ giữa các lần yêu cầu.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | refill |
| order | Mã đơn hàng |
Ví dụ response
{
"refill": 512
}Trạng thái refill (refill_status)
Trạng thái của một yêu cầu refill.
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | refill_status |
| refill | Mã refill (refill từ response của refill) |
Ví dụ response
{
"status": "Completed"
}Số dư (balance)
Số dư của bạn (USD, 6 chữ số thập phân).
| Tham số | Mô tả |
|---|---|
| key | API key của bạn |
| action | balance |
Ví dụ response
{
"balance": "84.120000",
"currency": "USD"
}Giá trị trạng thái đơn hàng
| Pending | Đã nhận. Đang chuyển đi, chờ bắt đầu, hoặc nhân viên đang kiểm tra kết quả chuyển giao |
| In progress | Đang giao |
| Completed | Đã giao đủ |
| Partial | Đã giao một phần. Phần chưa giao được hoàn vào số dư |
| Canceled | Chưa giao. Hoàn toàn bộ vào số dư |
Giá trị trạng thái refill
| Pending | Đã nhận yêu cầu refill |
| In progress | Đang giao refill |
| Completed | Đã giao refill |
| Rejected | Yêu cầu refill không được chấp nhận |
Thông báo lỗi
Lỗi trả về dạng JSON có trường error trong response HTTP 200. Trong code, hãy kiểm tra trường error trước tiên.
{
"error": "Not enough funds on balance"
}| Invalid API key | Thiếu key, key sai hoặc đã được thay bằng key mới |
| Too many requests | Quá 300 request mỗi phút. Vui lòng thử lại sau ít phút |
| Incorrect action | Giá trị action không nằm trong danh sách trên |
| Add funds first | Đặt hàng từ tài khoản chưa được cộng lần nạp đầu tiên |
| Incorrect service ID | Không có dịch vụ đặt được với mã đó |
| Incorrect link | Link trống hoặc không phải địa chỉ web |
| Quantity out of range | Dưới số lượng tối thiểu hoặc trên số lượng tối đa |
| Incorrect comments | Custom Comments trống hoặc vượt 10,000 dòng hay 500 ký tự mỗi dòng |
| Not enough funds on balance | Số dư thấp hơn số tiền đơn hàng. Hãy nạp thêm và đặt lại |
| Incorrect order ID | Mã đơn đó không thuộc tài khoản của bạn |
| Refill is not available for this service | Dịch vụ không có thời hạn refill |
| Order is not finished yet | Refill dùng được khi đơn ở trạng thái Completed hoặc Partial |
| Refill period has ended | Đã quá thời hạn refill tính từ lúc đơn kết thúc |
| Refill already requested | Đơn này đã có một yêu cầu refill đang mở |
| Refill already requested, try again later | Chưa đủ 24 giờ kể từ lần yêu cầu trước |
| Incorrect refill ID | Mã refill đó không thuộc tài khoản của bạn |
Cách kết nối SMM panel API với bot Telegram?
1. Lưu danh sách dịch vụ
Gọi services vài lần mỗi ngày và lưu mã dịch vụ, tên, rate, min và max vào dữ liệu của bạn. Tính giá hiển thị cho khách bằng cách cộng lợi nhuận vào rate, và dùng nguyên mã dịch vụ đã lưu khi đặt hàng.
2. Kiểm tra số lượng và link trước khi đặt
Kiểm tra trước rằng số lượng nằm giữa min và max và link đúng định dạng t.me sẽ giảm lỗi Quantity out of range và Incorrect link. Kiểm tra số dư bằng balance từ trước cũng rất hữu ích.
3. Kiểm tra trạng thái theo lô
Cứ vài phút, kiểm tra các đơn đang chạy theo lô 100 đơn bằng tham số orders. Cách này luôn nằm thoải mái trong giới hạn 300 request mỗi phút cho mỗi key. Khi đơn chuyển sang Completed, Partial hoặc Canceled, hãy báo kết quả cho khách.
4. Chỉ refill đơn đã kết thúc
Khi đơn của dịch vụ có refill chuyển sang Completed hoặc Partial, bạn có thể gửi refill. Lưu mã refill từ response và theo dõi tiến độ bằng refill_status.
