QuangHuy Portal

API Docs

Use tokens to securely fetch your key data via the API.

Base URL & Xác thực

Base URLhttps://manager.quanghuynopro.com/api/v1
Định dạngJSON (UTF-8)
HeaderAuthorization: Bearer <token>

Token lấy tại trang API Tokens. Chấp nhận: Personal Access Token (scope read / read write), JWT access token (web tự lưu ở localStorage), hoặc cookie phiên cùng origin. Thao tác ghi bằng cookie phải kèm header X-CSRF-Token; bằng Bearer thì không cần.

Scopes

ScopeQuyền
readĐọc dữ liệu (key, hoá đơn, tài khoản)
writeThao tác thay đổi (reset HWID, đổi redeem, mua, token…)
adminEndpoint quản trị (chỉ token admin)

Đối tượng Key

FieldKiểuMô tả
idintID nội bộ của key
keystringChuỗi key
limit_hwidintSố HWID tối đa
used_hwidintSố HWID đã đăng ký
expirationint (unix)Thời điểm hết hạn (epoch giây)
is_unlimitedboolKey vĩnh viễn
expiredboolĐã hết hạn
last_resetint (unix)Lần reset HWID gần nhất
cooldown_remainingint (giây)Giây còn lại trước khi reset được (0 = reset ngay)
can_resetboolCó thể reset ngay không

Endpoints

MethodPathScopeBody / ParamsMô tả
GET/mereadThông tin tài khoản
GET/pricereadGiá cơ bản VND/USD
GET/session/tokenread (cookie)Lấy access token hiện tại (để lưu localStorage)
GET/keysreadDanh sách key + cooldown
GET/keys/{key}readpath: keyChi tiết 1 key
POST/keys/resetwrite{key_id | key}Reset HWID (cooldown 30′)
GET/invoicesreadLịch sử hoá đơn
POST/redeemwrite{code}Đổi mã redeem → key premium
POST/buywrite{quantity,hwid,month,redeem?}Tạo hoá đơn → trả code + redirect
POST/tokens/createwrite{name,scope}Tạo PAT (trả token 1 lần)
POST/tokens/revokewrite{id}Thu hồi PAT
POST/sessions/revokewrite{id}Thu hồi 1 phiên
POST/sessions/logout-allwriteĐăng xuất mọi thiết bị
GET/admin/statsadminThống kê
GET/admin/user/{discord_id}adminpathKey theo Discord ID
POST/admin/user/updateadmin{id,do}ban/unban/seller/admin (do)
POST/admin/keys/addadmin{discord_id,quantity,hwid,month}Whitelist key thủ công
POST/admin/keys/deleteadmin{id}Xoá key
POST/admin/keys/resetadmin{key_id | discord_id}Force reset HWID
POST/admin/settingsadmin{price_vnd,price_usd}Đổi giá

Response mẫu

GET /keys

{ "success": true, "count": 1, "keys": [{ "id": 42, "key": "QuangHuy-Premium-AB12-CD34-EF56-GH78", "limit_hwid": 2, "used_hwid": 1, "expiration": 1786500000, "is_unlimited": false, "expired": false, "last_reset": 1784100000, "cooldown_remaining": 0, "can_reset": true }] }

POST /keys/reset khi đang cooldown

{ "success": false, "error": "reset_failed", "msg": "Bạn vừa reset gần đây, thử lại sau 24 phút.", "retry_after": 1440 }

Mã lỗi

HTTPerrorÝ nghĩa
401invalid_tokenToken sai / hết hạn / bị thu hồi
403insufficient_scopeToken thiếu quyền (write/admin)
419csrfThiếu/sai X-CSRF-Token (khi ghi bằng cookie)
404not_foundKey / endpoint không tồn tại
400reset_failed / redeem_failed / buy_failedThao tác thất bại (kèm msg)

Ví dụ

curl -H "Authorization: Bearer qh_xxx" https://manager.quanghuynopro.com/api/v1/keys
curl -X POST https://manager.quanghuynopro.com/api/v1/keys/reset \ -H "Authorization: Bearer qh_xxx" -H "Content-Type: application/json" \ -d '{"key_id":42}'