SMM Panel API v2
API tiêu chuẩn SMM Panel v2 để quản lý dịch vụ tăng tương tác mạng xã hội (Facebook, TikTok, ...). Hỗ trợ đầy đủ các tính năng: xem danh sách dịch vụ, tạo đơn hàng, kiểm tra trạng thái, và quản lý số dư.
Tổng quan
API SMM v2 sử dụng kiến trúc action-based routing - tất cả request gửi đến cùng 1
endpoint
/api/v2, phân biệt chức năng qua tham số action.
Các action hỗ trợ:
services- Lấy danh sách dịch vụ có sẵnadd- Tạo đơn hàng mớistatus- Kiểm tra trạng thái đơn hàng (đơn lẻ hoặc nhiều đơn)balance- Kiểm tra số dư tài khoản
Định dạng request hỗ trợ:
application/json- JSON (khuyến nghị)application/x-www-form-urlencoded- Form URL-encodedmultipart/form-data- Multipart form data
refill và
refill_status.
Xác thực
Mọi request đều cần có API Key trong body JSON với tên trường key.
Cách lấy API Key:
- Đăng nhập vào dashboard
- Vào mục Tài khoản & Nạp Xu
- Tìm mục Token API và copy giá trị
Ví dụ request có API Key:
{
"key": "abc123def456...",
"action": "balance"
}
Base URL
_domain_/api/v2
Thay _domain_ bằng domain thực tế của hệ thống (ví dụ:
https://yoursite.com).
Request Method:
POSTTất cả request đều dùng phương thức POST.
Content-Type hỗ trợ:
API hỗ trợ 3 định dạng body - bạn có thể chọn 1 trong các loại sau:
| Content-Type | Mô tả | Khuyến nghị |
|---|---|---|
application/json |
Dữ liệu JSON - dễ đọc, hỗ trợ đầy đủ types | Khuyến nghị |
application/x-www-form-urlencoded |
Form URL-encoded - tương thích nhiều tool | Hỗ trợ |
multipart/form-data |
Multipart form - phổ biến trong form HTML | Hỗ trợ |
Ví dụ Header:
// Sử dụng JSON (khuyến nghị)
Content-Type: application/json
// Hoặc sử dụng form-data
Content-Type: application/x-www-form-urlencoded
// Hoặc multipart
Content-Type: multipart/form-data
Action: services
Lấy danh sách tất cả các dịch vụ đang hoạt động (comment, like, follow, ...) với thông tin giá, min/max, category.
Request
_domain_/api/v2
Body JSON:
{
"key": "YOUR_API_KEY",
"action": "services"
}
| Tham số | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
key |
string | Có | API Key của bạn |
action |
string | Có | Giá trị: "services" |
Response thành công
Trả về mảng JSON chứa danh sách dịch vụ:
[
{
"service": 1001,
"name": "Facebook Comment Ultra",
"type": "Custom Comments",
"category": "Facebook - Comment v1",
"rate": "200",
"min": "5",
"max": "2000",
"refill": false,
"dripfeed": false
},
{
"service": 2001,
"name": "Facebook Like Normal",
"type": "Default",
"category": "Facebook - Like",
"rate": "50",
"min": "10",
"max": "5000",
"refill": false,
"dripfeed": false
}
...
]
Giải thích các trường:
| Trường | Mô tả |
|---|---|
service |
ID dịch vụ (dùng khi đặt đơn hàng) |
name |
Tên dịch vụ |
type |
Loại dịch vụ ("Default" hoặc "Custom Comments") |
category |
Danh mục (Facebook, TikTok, ...) |
rate |
Giá tiền (đơn vị xu) |
min |
Số lượng tối thiểu |
max |
Số lượng tối đa |
refill |
Hỗ trợ refill (luôn false) |
dripfeed |
Hỗ trợ dripfeed (luôn false) |
Ví dụ cURL
Cách 1: Sử dụng JSON
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "services"
}'
Cách 2: Sử dụng form-data
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'key=YOUR_API_KEY&action=services'
service ID và thông tin giá,
min/max trước khi đặt đơn.
Action: add
Tạo đơn hàng mới (order) cho một dịch vụ cụ thể.
Request
_domain_/api/v2
Body JSON (Comment):
{
"key": "YOUR_API_KEY",
"action": "add",
"service": 1001,
"link": "https://www.facebook.com/your-page/posts/1234567890",
"quantity": 100,
"comments": "Bình luận 1\nBình luận 2\nBình luận 3"
}
Body JSON (Reaction):
{
"key": "YOUR_API_KEY",
"action": "add",
"service": 12000,
"link": "https://www.facebook.com/your-page/posts/1234567890",
"quantity": 50,
"reaction": "LOVE"
}
| Tham số | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
key |
string | Có | API Key của bạn |
action |
string | Có | Giá trị: "add" |
service |
integer | Có | ID dịch vụ (lấy từ action services) |
link |
string | Có | Link bài viết/profile Facebook/TikTok |
quantity |
integer | Có | Số lượng cần đặt (phải nằm trong min/max của service) |
comments |
string | Tuỳ chọn |
Nội dung comment (ngăn cách bởi \n).Bắt buộc nếu service là loại comment. Không cần nếu service là like/follow/share/... |
reaction |
string | Tuỳ chọn |
Loại cảm xúc cần buff. Bắt buộc nếu service là loại reaction . Giá trị hợp lệ: LIKE, LOVE, HAHA,
WOW, SAD, ANGRY
|
Response thành công
{
"order": 12345
}
| Trường | Mô tả |
|---|---|
order |
ID đơn hàng vừa tạo (dùng để check status sau) |
Ví dụ cURL
1. Đặt đơn Comment (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "add",
"service": 1001,
"link": "https://www.facebook.com/your-page/posts/1234567890",
"quantity": 100,
"comments": "Hay quá!\nRất bổ ích\nCảm ơn admin"
}'
1b. Đặt đơn Comment (form-data):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'key=YOUR_API_KEY' \
--data 'action=add' \
--data 'service=1001' \
--data 'link=https://www.facebook.com/your-page/posts/1234567890' \
--data 'quantity=100' \
--data-urlencode 'comments=Hay quá!
Rất bổ ích
Cảm ơn admin'
2. Đặt đơn Like (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "add",
"service": 2001,
"link": "https://www.facebook.com/your-page/posts/1234567890",
"quantity": 500
}'
2b. Đặt đơn Like (form-data):
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=add&service=2001&link=https://www.facebook.com/your-page/posts/1234567890&quantity=500'
3. Đặt đơn Follow (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "add",
"service": 3001,
"link": "https://www.facebook.com/profile.php?id=100012345678",
"quantity": 200
}'
3b. Đặt đơn Follow (form-data):
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=add&service=3001&link=https://www.facebook.com/profile.php?id=100012345678&quantity=200'
4. Đặt đơn Reaction (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "add",
"service": 12000,
"link": "https://www.facebook.com/your-page/posts/1234567890",
"quantity": 50,
"reaction": "LOVE"
}'
4b. Đặt đơn Reaction (form-data):
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=add&service=12000&link=https://www.facebook.com/your-page/posts/1234567890&quantity=50&reaction=LOVE'
- Đảm bảo số dư đủ trước khi đặt đơn (dùng action
balance) - Số lượng phải nằm trong khoảng
minvàmaxcủa service - Với dịch vụ comment, cần tối thiểu 10 nội dung comment khác nhau
- Với dịch vụ reaction, tham số
reactionlà bắt buộc. Giá trị: LIKE, LOVE, HAHA, WOW, SAD, ANGRY
Action: status
Kiểm tra trạng thái đơn hàng (đơn lẻ hoặc nhiều đơn cùng lúc).
1. Kiểm tra đơn lẻ
_domain_/api/v2
Body JSON:
{
"key": "YOUR_API_KEY",
"action": "status",
"order": 12345
}
| Tham số | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
key |
string | Có | API Key của bạn |
action |
string | Có | Giá trị: "status" |
order |
integer | Có | ID đơn hàng cần kiểm tra |
Response thành công:
{
"charge": "10000",
"start_count": "150",
"status": "In progress",
"remains": "50"
}
| Trường | Mô tả |
|---|---|
charge |
Tổng chi phí đơn hàng (xu) |
start_count |
Số lượng ban đầu (trước khi đặt đơn) |
status |
Trạng thái hiện tại (xem bảng mapping bên dưới) |
remains |
Số lượng còn lại (chưa hoàn thành) |
2. Kiểm tra nhiều đơn
Body JSON:
{
"key": "YOUR_API_KEY",
"action": "status",
"orders": "12345,12346,12347"
}
| Tham số | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
orders |
string | Có | Danh sách order ID, ngăn cách bởi dấu phẩy (tối đa 100 đơn) |
Response thành công:
{
"12345": {
"charge": "10000",
"start_count": "150",
"status": "Completed",
"remains": "0"
},
"12346": {
"charge": "5000",
"start_count": "80",
"status": "In progress",
"remains": "20"
},
"12347": {
"error": "Incorrect order ID"
}
}
Ví dụ cURL
Đơn lẻ (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "status",
"order": 12345
}'
Đơn lẻ (form-data):
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=status&order=12345'
Nhiều đơn (JSON):
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "status",
"orders": "12345,12346,12347"
}'
Nhiều đơn (form-data):
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=status&orders=12345,12346,12347'
error.
Action: balance
Kiểm tra số dư hiện tại của tài khoản.
Request
_domain_/api/v2
Body JSON:
{
"key": "YOUR_API_KEY",
"action": "balance"
}
| Tham số | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
key |
string | Có | API Key của bạn |
action |
string | Có | Giá trị: "balance" |
Response thành công
{
"balance": "51601277",
"currency": "xu"
}
| Trường | Mô tả |
|---|---|
balance |
Số dư hiện tại (đơn vị xu, giá trị nguyên) |
currency |
Đơn vị tiền tệ (luôn là "xu") |
Ví dụ cURL
Sử dụng JSON:
curl --location '_domain_/api/v2' \
--header 'Content-Type: application/json' \
--data '{
"key": "YOUR_API_KEY",
"action": "balance"
}'
Sử dụng form-data:
curl --location '_domain_/api/v2' \
--data 'key=YOUR_API_KEY&action=balance'
Mã lỗi
Khi có lỗi, API trả về JSON với trường error:
{
"error": "Mô tả lỗi"
}
Các lỗi thường gặp
| Mã HTTP | Thông báo lỗi | Nguyên nhân |
|---|---|---|
| 400 | Invalid action | Tham số action không hợp lệ (không phải services/add/status/balance) |
| 401 | Invalid API key | API Key sai hoặc không tồn tại |
| 400 | Missing API key | Thiếu tham số key trong request |
| 400 | Missing parameter: service | Thiếu tham số bắt buộc (service/link/quantity/...) |
| 400 | Invalid service ID | Service ID không tồn tại hoặc không hoạt động |
| 402 | Insufficient balance | Số dư không đủ để đặt đơn |
| 400 | Invalid quantity | Số lượng không hợp lệ (< min hoặc> max) |
| 404 | Order not found | Đơn hàng không tồn tại hoặc không thuộc về tài khoản của bạn |
| 429 | Too many requests | Gửi request quá nhanh (rate limit) |
| 503 | System busy, please retry | Hệ thống đang quá tải, vui lòng thử lại sau |
error hay không trước khi
xử lý dữ liệu.
Trạng thái Job
Khi kiểm tra status đơn hàng, trường status có thể có các giá trị sau:
| Giá trị | Ý nghĩa | Mô tả |
|---|---|---|
| Pending | Đang chờ xử lý | Đơn hàng đã được tạo, đang chờ hệ thống phân phối cho worker |
| In progress | Đang thực hiện | Worker đang thực hiện đơn hàng |
| Completed | Hoàn thành | Đơn hàng đã hoàn thành 100% |
| Partial | Hoàn thành một phần | Đơn hàng hoàn thành không đủ số lượng (ví dụ: đặt 100, chỉ được 80) |
| Processing | Đang xử lý | Trạng thái tổng quát cho các giai đoạn xử lý |
| Canceled | Đã huỷ | Đơn hàng bị huỷ (có thể do vi phạm chính sách hoặc yêu cầu huỷ) |
get_id, get_id_tiktok
sẽ được hiển thị là Pending hoặc Processing khi trả về qua API.
© 2026 SMM Panel API v2 | Phiên bản documentation: 1.0