Giao diện hiển thị
API Documentation v3.5.8 Online 28 endpoints

Tài liệu API Full — TUANN.DUCKDNS.ORG

Tất cả endpoint công khai của hệ thống. Base URL: https://tuann.duckdns.org. Xác thực bằng token lấy trong hồ sơ người dùng. Dùng Bearer token hoặc query ?token= tùy endpoint. Tất cả response dạng JSON với status: success|error.

Base: https://tuann.duckdns.org Auth: token Content-Type: application/json Rate: 60 req/phút

Thông tin Token của bạn

Vui lòng không để lộ API KEY — lộ token = mất tiền. Dùng nút copy bên phải.

Bạn chưa đăng nhập — đăng nhập để xem token Đăng nhập

Ghi chú nhanh

Không rành code? Tải mã nguồn mẫu cron PHP đã tích hợp sẵn.
Hỗ trợ Telegram: @cmstdev_vn hoặc Admin group.
Mọi thao tác trừ tiền đều ghi log /user/log. Kiểm tra số dư trước khi gọi /api/cron/create.

Tổng quan & Xác thực

Auth
GET https://tuann.duckdns.org/api/cron/profile?token={Token}

Lấy thông tin tài khoản gắn với token. Dùng để kiểm tra token hợp lệ, lấy số dư coinchietkhau.

Tham sốKiểuYêu cầuGhi chú
tokenStringBắt buộcLấy tại hồ sơ → API Token
Example: curl -G "https://tuann.duckdns.org/api/cron/profile" --data-urlencode "token=YOUR_TOKEN"
Response 200 — success JSON
{
  "status": "success",
  "message": "Thành công",
  "data": {
    "username": "DoiLacLoi",
    "email": "minhphsdepchai@gmail.com",
    "coin": "7379150",
    "chietkhau": "0"
  }
}
Error
{
  "status": "error",
  "message": "Token không hợp lệ"
}
GET https://tuann.duckdns.org/api/search?q={keyword}&limit=20

Live search gợi ý sản phẩm + bài viết. Dùng cho ô tìm kiếm header. Không yêu cầu auth, public.

Tham sốKiểuY.cầuGhi chú
qStringBắt buộcTừ khóa ≥2 ký tự
limitIntTùy chọn1-40, mặc định 20
Response
{
  "results": [
    {
      "id": 123,
      "type": "product",
      "type_label": "Sản phẩm",
      "title": "Source Code Laravel Ecommerce",
      "slug": "laravel-ecommerce",
      "thumb": "/upload/product/thumb.jpg",
      "price": 299000,
      "price_text": "299.000đ",
      "url": "/product/laravel-ecommerce"
    },
    {
      "id": 45,
      "type": "post",
      "type_label": "Bài viết",
      "title": "Hướng dẫn deploy Laravel",
      "url": "/blog/huong-dan-deploy"
    }
  ]
}

Community Chat

6 endpoints • cần đăng nhập
GEThttps://tuann.duckdns.org/api/community/list?after_id=0&limit=30

Lấy danh sách tin nhắn. Phân trang bằng after_id (tin mới hơn) hoặc before_id (tin cũ hơn). Không truyền gì → 30 tin mới nhất.

ParamKiểuY.cầuGhi chú
after_idIntTùy chọnLấy tin có id > after_id
before_idIntTùy chọnLấy tin có id < before_id
limitIntTùy chọn1-50, mặc định 30
Response
{
  "status": "success",
  "messages": [
    {
      "id": 123,
      "username": "tuan",
      "display_name": "Tuấn",
      "avatar": "/assets/images/avt.png",
      "message": "Hello world",
      "image_url": null,
      "reactions": [],
      "is_own": false,
      "created_at": "2025-05-18 10:20:00"
    }
  ],
  "count": 1
}
POSThttps://tuann.duckdns.org/api/community/send

Gửi tin nhắn mới. Yêu cầu đăng nhập (cookie session). Hỗ trợ text ≤2000 ký tự và ảnh jpg/png/gif/webp ≤5MB.

ParamKiểuY.cầuGhi chú
messageStringTùy chọn**Bắt buộc nếu không gửi ảnh
imageFileTùy chọn*Multipart form-data
Cookies: cần session đăng nhập • Content-Type: multipart/form-data
Response
{
  "status": "success",
  "msg": "Đã gửi",
  "message": { "id": 124, "message": "Hello" }
}
POSThttps://tuann.duckdns.org/api/community/react

Thả emoji reaction cho tin nhắn. Body JSON.

ParamKiểuY.cầu
message_idIntBắt buộc
emojiStringBắt buộc
JSON: {"message_id":123,"emoji":"❤️"}
Response
{ "status":"success", "msg":"Đã thả cảm xúc" }
POSThttps://tuann.duckdns.org/api/community/recall

Thu hồi tin nhắn của chính mình. Chỉ chủ tin nhắn mới thu hồi được.

ParamKiểuY.cầu
message_idIntBắt buộc
Response
{ "status":"success", "msg":"Đã thu hồi" }
POSThttps://tuann.duckdns.org/api/community/edit

Sửa nội dung tin nhắn đã gửi.

ParamKiểuY.cầu
message_idIntBắt buộc
messageStringBắt buộc
Response
{ "status":"success", "msg":"Đã sửa" }
GEThttps://tuann.duckdns.org/api/community/detail?id=123

Lấy chi tiết 1 tin nhắn + reactions detail + thông tin người gửi.

ParamKiểuY.cầu
idIntBắt buộc
Response
{
  "status":"success",
  "message": {
    "id":123, "username":"tuan",
    "message":"Hello",
    "reactions_detail":[{"emoji":"❤️","user_id":2,"username":"admin"}]
  }
}

Cronjob API

6 endpoints • token
GEThttps://tuann.duckdns.org/api/cron/server?token={Token}

Lấy danh sách máy chủ cron còn hoạt động, giá và số lượng còn lại.

ParamKiểuY.cầu
tokenStringBắt buộc
Response
{
  "status":"success",
  "message":"Thành công",
  "data":[
    {"id":"2","name":"Siêu Rẻ V1","price":200,"quantity":92,"limit_second":1},
    {"id":"3","name":"Siêu Vip V2","price":500,"quantity":450,"limit_second":1}
  ]
}
POSThttps://tuann.duckdns.org/api/cron/create

Tạo đơn cron mới, tự động trừ tiền theo giá máy chủ × số tháng - chiết khấu.

ParamKiểuY.cầuGhi chú
tokenStringBắt buộc
linkcronStringBắt buộcURL cần cron
timeloopIntBắt buộcSố giây/lần chạy
maychucronIntBắt buộcId server
thoigiangiahanIntBắt buộcSố tháng thuê
Response — success
{
  "status":"success",
  "msg":"Thanh toán đơn hàng thành công",
  "data":{
    "trans_id":"dsajdaUdsn8",
    "url":"https://example.com/api",
    "second":"30",
    "price":50000,
    "status":"hoatdong",
    "created_at":"2024/02/04 22:28:12",
    "expired_date":"2024/07/03 22:28:12",
    "expired_timestamp":1720020492
  }
}
GEThttps://tuann.duckdns.org/api/cron/history?token={Token}&limit=10

Lấy N giao dịch cron gần nhất của user.

ParamKiểuY.cầu
tokenStringBắt buộc
limitIntBắt buộc
Response
{
  "status":"success",
  "message":"Thành công",
  "data":[
    {
      "trans_id":"6",
      "url":"https://example.com/cron",
      "server":"2",
      "second":"30",
      "status":"active",
      "response":"200",
      "created_at":"2025-05-17 13:34:53",
      "expired_date":"2026-05-17 13:34:53",
      "last_run":"2025-05-18 16:40:04"
    }
  ]
}
GEThttps://tuann.duckdns.org/api/cron/checkhistory?token={Token}&trans_id={trans_id}

Lấy chi tiết 1 giao dịch theo trans_id.

ParamKiểuY.cầu
tokenStringBắt buộc
trans_idStringBắt buộc
Response
{
  "status":"success",
  "message":"Thành công",
  "data":[{ "trans_id":"1","url":"https://...","status":"active" }]
}
POSThttps://tuann.duckdns.org/api/cron/action

Thực hiện hành động trên cron: edit / active / stop / giahan. Mỗi action có params riêng — bấm để xem.

Action: edit — chỉnh sửa URL & chu kỳ
ParamKiểuY.cầu
actionStringedit
trans_idStringBắt buộc
urlStringBắt buộc
secondIntBắt buộc
tokenStringBắt buộc
Action: active — chạy lại (paused → active)
ParamKiểu
actionactive
trans_idBắt buộc
tokenBắt buộc
Action: stop — tạm dừng
ParamKiểu
actionstop
trans_idBắt buộc
tokenBắt buộc
Action: giahan — gia hạn thêm tháng
ParamKiểu
actiongiahan
monthBắt buộc Int
trans_idBắt buộc
tokenBắt buộc
Response — edit
{ "status":"success","msg":"Cập nhật thành công" }
Response — giahan
{
  "status":"success",
  "message":"Gia hạn thành công",
  "data":{"expired_date":"2024/11/30 22:28:11","expired_timestamp":1732980491}
}

Cron Handler (Server)

2 endpoints
GEThttps://tuann.duckdns.org/api/v1/order/cron

Dành cho worker server: lấy tất cả cronjobs đang active + chưa hết hạn. Tự động đánh dấu expired nếu quá hạn.

Response
{
  "status":"success",
  "data":[
    {
      "id": 12,
      "url": "https://example.com/api",
      "method": "GET",
      "cron_expression": "*/30 * * * * *",
      "server": {"id":2,"name":"Siêu Rẻ V1","price":200},
      "headers": "", "body": "",
      "last_run": "2025-05-18 10:00:00",
      "expires_at": "2026-05-17 13:34:53"
    }
  ]
}
POSThttps://tuann.duckdns.org/api/v1/update/cron

Worker báo kết quả chạy cron: cập nhật last_runstatus_code.

Param (JSON)KiểuY.cầu
idIntBắt buộc
status_codeString/IntBắt buộc
Body: {"id":12,"status_code":"200"}
Response
{ "status":"success","message":"Cập nhật thành công!" }

Cloud VPS

3 endpoints
GEThttps://tuann.duckdns.org/api/v1/cloudvps/plan Sync

Đồng bộ gói VPS từ VNCloud / CloudNest / H2Cloud. Không phải API public cho client, dùng nội bộ cron đồng bộ vào tbl_cloudvps.

Response (text)
[-] Thêm gói VPS 1 thành công.
[-] Cập nhật gói VPS 2 thành công.
GEThttps://tuann.duckdns.org/api/v1/cloudvps/addon

Lấy danh sách addon VPS.

Response
{ "status":"success" }
GEThttps://tuann.duckdns.org/api/v1/cloudvps/os

Lấy danh sách OS hỗ trợ.

Response
{ "status":"success" }

Tiện ích

4 endpoints
GEThttps://tuann.duckdns.org/api/license

Trả về chuỗi license của site ($db->site('license')).

Response — text
LICENSE-XXXX-XXXX
GEThttps://tuann.duckdns.org/model/api/counter.php?action=increment

Tăng bộ đếm lượt xem site (đang dùng trong footer deferred). Không cần auth.

ParamKiểu
actionincrement
Response
{ "status":"success","views":"12,345" }
POSThttps://tuann.duckdns.org/api/deposit/card

Callback nạp thẻ cào ( Thesieure ... ). Server thứ 3 POST về.

Response
{ "status":"success" }
GEThttps://tuann.duckdns.org/cron/deposit/check

Cron kiểm tra giao dịch bank tự động (nội bộ).

Response
{ "status":"success" }

Admin / System (cần quyền admin)

6 endpoints
GET/api/admin/domain  |  /api/system/detail  |  /api/system/term  |  /api/system/speedtest  |  /api/system/clean  |  /api/system/viewer

Nhóm API quản trị: domain, system detail, term, speedtest, clean, viewer. Yêu cầu đăng nhập quyền admin, dùng panel /cpanel/*. Không document chi tiết public.

EndpointMethodGhi chú
/api/admin/domainGET/POSTQuản lý domain
/api/system/detailGETChi tiết hệ thống
/api/system/viewerGETXem visitor logs
/api/system/cleanPOSTDọn dẹp cache
/api/system/speedtestGETTest tốc độ
Lưu ý
{
  "status":"error",
  "msg":"Không có quyền truy cập"
}
Cần login admin + CSRF token.
Cần hỗ trợ tích hợp?
Liên hệ Telegram Admin hoặc mở ticket tại /contact. Gửi kèm token (che 1 phần) và endpoint lỗi.
269,605
Chat AI PRO Group Telegram Admin hỗ trợ Zalo Zalo hỗ trợ