Admin API#
Quản trị hệ thống. Tất cả endpoints yêu cầu JWT + permission tương ứng.
Base URL: https://apitest.likepion.com/api/v1/admin
Auth: JWT Token + Permission (Authorization: Bearer <token>)
Users (users.*)#
POST /users — Tạo user #
Request:
{
"name": "User Name", // required, min=2, max=100
"email": "user@example.com", // required, email
"password": "secret123", // required, min=8, max=128
"role": "user", // required, oneof: admin, user
"status": "active" // required, oneof: active, pending, suspended
}Response (201):
{
"success": true,
"data": {
"id": "uuid",
"name": "User Name",
"email": "user@example.com",
"role": {"name": "User", "slug": "user"},
"status": "active",
"credits": 0,
"credits_used": 0,
"credits_deposited": 0,
"credits_expires_at": null,
"created_at": "2025-06-01T00:00:00Z"
}
}PUT /users/:id — Cập nhật user #
Request: Giống create, password optional (bỏ trống = không đổi).
GET /users — Danh sách #
Query: page, limit, search, status, role, sort (name/email/status/credits/created_at), order (asc/desc), credits_min, credits_max, date_from, date_to
DELETE /users/:id #
POST /users/:id/credits/add — Thêm credits #
Request:
{
"amount": 500, // required, >0
"reason": "Manual top-up" // required, min=1, max=500
}Response:
{
"success": true,
"data": {
"message": "credits added",
"credits": 1500,
"credits_used": 500,
"credits_deposited": 2000,
"credits_expires_at": "2026-01-01T00:00:00Z"
}
}POST /users/:id/credits/deduct — Trừ credits #
Request giống /credits/add.
PUT /users/:id/credits/extend — Gia hạn #
Request:
{
"expires_at": "2026-06-01T00:00:00Z", // required, RFC3339
"reason": "Extension for VIP" // required
}GET /users/:id/api-keys | DELETE /users/:id/api-keys/:keyId#
GET /users/:id/activities | GET /users/:id/credits/history#
POST /users/:id/impersonate — Giả mạo user #
Roles & Permissions (roles.*)#
POST /roles #
Request:
{
"name": "Editor",
"slug": "editor",
"description": "Content editor role"
}PUT /roles/:id/permissions — Gán permissions #
Request:
{
"permissions": ["uuid-1", "uuid-2"]
}POST /permissions #
Request:
{
"name": "View Backlinks",
"slug": "backlink.view",
"group": "backlink"
}| Method | Path | Mô tả |
|---|---|---|
| GET | /roles | Danh sách roles |
| PUT | /roles/:id | Cập nhật role |
| DELETE | /roles/:id | Xóa role |
| GET | /permissions | Danh sách permissions |
| PUT | /permissions/:id | Cập nhật |
| DELETE | /permissions/:id | Xóa |
Servers (server.*)#
POST /servers — Tạo server #
Request:
{
"name": "Server 01", // required, max=100
"ip": "192.168.1.100", // required, max=45
"service": "tool", // required, max=100
"priority": 5, // min=1, max=10
"region": "VN", // max=50
"max_threads": 20 // min=1, max=64
}Response (201): Full server object (tự động tạo api_key):
{
"success": true,
"data": {
"id": "uuid",
"name": "Server 01",
"ip": "192.168.1.100",
"api_key": "sk-xxxxxxxxxxxx",
"api_key_prefix": "sk-xxxx",
"service": "tool",
"priority": 5,
"region": "VN",
"max_threads": 20,
"status": "offline",
"cpu_usage": 0,
"ram_usage": 0,
"disk_usage": 0,
"active_threads": 0,
"active_tasks": 0,
"created_at": "2025-06-01T00:00:00Z"
}
}PUT /servers/:id — Cập nhật (partial update) #
Request: Tất cả optional:
{
"name": "Server 01 Updated",
"ip": "10.0.0.1",
"service": "assign",
"priority": 8,
"region": "US",
"max_threads": 32,
"status": "online" // oneof: online, offline, maintenance, die
}GET /servers — Danh sách #
Query: page, limit, search, status, service, sort, order, inactive_minutes
GET /servers/:id — Chi tiết | DELETE /servers/:id — Xóa#
POST /servers/:id/regenerate-key — Tạo lại API key #
GET /servers/:id/logs | /servers/:id/activities | /servers/:id/tools#
Server Docs#
| Method | Path | Mô tả |
|---|---|---|
| GET | /servers/docs | Danh sách docs |
| GET | /servers/docs/:id | Chi tiết |
| POST | /servers/docs | Tạo |
| PUT | /servers/docs/:id | Cập nhật |
| DELETE | /servers/docs/:id | Xóa |
Billing Admin (billing.*)#
GET /orders — Danh sách đơn hàng #
Query: page, limit, search, status, payment_method, package, sort, order, date_from (YYYY-MM-DD), date_to
GET /orders/stats — Thống kê #
Query: date_from, date_to (YYYY-MM-DD)
Response:
{
"success": true,
"data": {
"total_revenue": 5000000,
"total_completed": 50,
"total_pending": 5,
"total_cancelled": 3,
"total_refunded": 1
}
}POST /orders/:id/approve | /reject | /refund#
Request:
{
"note": "Đã xác nhận thanh toán" // optional
}Approve response: {"message": "order approved", "credits_added": 500}
Reject response: {"message": "order rejected"}
Refund response: {"message": "order refunded", "credits_deducted": 500}
Packages CRUD#
POST /packages:
{
"name": "Pro Package", // required, max=100
"slug": "pro-package", // required, max=100
"description": "Pro features",
"price": 500000, // required, >0
"credits": 2500, // required, >0
"duration_days": 30, // required, >0
"features": ["Feature 1"],
"type": "monthly",
"is_popular": true,
"sort_order": 2,
"status": "active"
}Vouchers CRUD#
POST /vouchers:
{
"code": "SALE50", // required, max=50
"discount_type": "percent", // required, oneof: percent, fixed
"discount_value": 50, // required, >0
"max_uses": 100, // required, >0
"min_order_amount": 100000,
"applicable_packages": ["uuid-1"],
"expires_at": "2025-12-31", // format: YYYY-MM-DD
"status": "active"
}GET /transactions #
Query: page, limit, search, type, service, date_from, date_to
Backlinks Admin (backlink.*)#
| Method | Path | Mô tả |
|---|---|---|
| GET | /backlink-links | Tất cả links |
| GET | /backlinks | Danh sách requests |
| GET | /backlinks/:id | Chi tiết |
| DELETE | /backlinks/:id | Xóa |
| GET | /backlinks/:id/links | Links trong request |
| PUT | /backlinks/:id/email | Đổi email |
| GET | /backlink-groups | Tất cả groups |
| GET | /backlink-groups/:id | Chi tiết group |
| DELETE | /backlink-groups/:id | Xóa group |
| GET | /backlink-groups/:id/accounts | Accounts |
| DELETE | /backlink-accounts/:id | Xóa account |
Sites (resources.sites.*)#
POST /sites:
{
"name": "Example Site", // required
"url": "https://example.com", // required
"types": ["entity", "social"],// required, min 1
"captcha_type": "recaptcha",
"category": "blog",
"is_active": true,
"sort_order": 1
}PUT /sites/:id: Partial update (pointer fields).
GET /sites: Query page, limit, search, type, status, is_active
Response item bao gồm thêm: usage_count, success_count, error_count.
CMS Admin#
Case Studies, Pages, Tools (casestudy.*, page.*, tool.*)#
CRUD chuẩn: GET (list), POST (create), PUT /:id (update), DELETE /:id.
Gallery (gallery.*)#
| Method | Path | Mô tả |
|---|---|---|
| GET | /gallery | Danh sách |
| POST | /gallery/upload | Upload ảnh |
| DELETE | /gallery/:id | Xóa |
| POST | /gallery/bulk-delete | Xóa nhiều |
Resources#
AI Prompts, Serper Keys, Gmail (resources.*)#
CRUD chuẩn cho mỗi resource. Gmail có thêm POST /resources/gmail/auto-create.
Payment Methods (paymentmethod.*)#
CRUD + PATCH /payment-methods/:id/toggle (bật/tắt).
Settings (settings.*)#
GET /settings?group=brand — Lấy settings #
Response:
{"success": true, "data": {"logo": "/uploads/brand/logo.png", "site_name": "LIKEPION"}}PUT /settings/:group — Lưu settings #
Request: map[string]string
{
"site_name": "LIKEPION",
"primary_color": "#1890ff"
}POST /settings/upload — Upload brand asset #
Form: type (logo/favicon), file (file upload)
POST /settings/test-notification #
Request:
{
"channel": "telegram" // oneof: smtp, telegram, gchat, zalo
}Action Logs#
GET /action-logs (users.view)
#
Danh sách action logs toàn hệ thống.