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ẵn
  • add - Tạo đơn hàng mới
  • status - 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-encoded
  • multipart/form-data - Multipart form data
Linh hoạt: API tự động phát hiện định dạng request. Bạn có thể dùng JSON hoặc form-data tuỳ ý!
Lưu ý: API này KHÔNG hỗ trợ refillrefill_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:

  1. Đăng nhập vào dashboard
  2. Vào mục Tài khoản & Nạp Xu
  3. Tìm mục Token API và copy giá trị

Ví dụ request có API Key:

{
  "key": "abc123def456...",
  "action": "balance"
}
Bảo mật: Không chia sẻ API Key của bạn cho người khác. Key này có quyền đặt đơn hàng và tiêu xu.

Base URL

Endpoint chính: _domain_/api/v2

Thay _domain_ bằng domain thực tế của hệ thống (ví dụ: https://yoursite.com).

Request Method:

POST

Tấ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
Auto-detect: Nếu không gửi header Content-Type, API sẽ tự động phát hiện định dạng!

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

POST _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 API Key của bạn
action string 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'
Tip: Gọi API này trước để lấy danh sách 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

POST _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 API Key của bạn
action string Giá trị: "add"
service integer ID dịch vụ (lấy từ action services)
link string Link bài viết/profile Facebook/TikTok
quantity integer 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'
Lưu ý:
  • Đảm bảo số dư đủ trước khi đặt đơn (dùng action balance)
  • Số lượng phải nằm trong khoảng minmax củ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ố reactionbắ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ẻ

POST _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 API Key của bạn
action string Giá trị: "status"
order integer 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 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'
Tip: Khi kiểm tra nhiều đơn, API sẽ trả về từng đơn riêng lẻ. Nếu đơn không tồn tại hoặc không thuộc về bạn, sẽ có trường error.

Action: balance

Kiểm tra số dư hiện tại của tài khoản.

Request

POST _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 API Key của bạn
action string 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'
Nên làm: Kiểm tra số dư trước khi đặt đơn hàng để tránh lỗi thiếu xu.

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
Xử lý lỗi: Luôn kiểm tra response có trường 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ỷ)
Lưu ý: Một số trạng thái nội bộ như 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