Tài liệu API (v1)

Base URL: https://2movn.com/api. Định dạng JSON, UTF-8. Các endpoint thao tác tài khoản cần header Authorization: Bearer <token>.

1. Lấy token (JSON)

Hoặc tạo token trong đăng nhập → Khu người dùng → Token API (không cần gửi mật khẩu qua API).

curl -X POST https://2movn.com/api/v1/auth/token \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"email":"[email protected]","password":"***","token_name":"my-server"}'

2. Danh sách công cụ & giá (công khai)

curl "https://2movn.com/api/v1/tools/catalog" -H "Accept: application/json"

Tham số tùy chọn: q, tool_category_id, access_mode (free|buy).

3. Bảng giá proxy / VPS (công khai)

curl "https://2movn.com/api/v1/proxy/pricing?vm_type=PRIVATE_PROXY" -H "Accept: application/json"

vm_type: PRIVATE_PROXY, SHARED_PROXY, CLOUD_SERVER hoặc bỏ để lấy tất cả. Mỗi dòng trả retail_unit_vnd_min / retail_unit_vnd_max (đơn giá bán lẻ trên catalog), không trả % markup hay giá gốc nhà cung cấp.

4. Cần Bearer — ví dụ PHP

$ch = curl_init('https://2movn.com/api/v1/tools/licenses');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Accept: application/json',
    'Authorization: Bearer ' . $token,
  ],
]);
echo curl_exec($ch);
Phương thứcĐường dẫnMô tả
POST/v1/auth/tokenCấp Bearer (email, password, token_name)
DELETE/v1/auth/tokenThu hồi token đang dùng
GET/v1/tools/catalogDanh sách tool + gói + giá
POST/v1/tools/ordersMua tool: tool_id, package_id
POST/v1/tools/licenses/{id}/renewGia hạn: package_id
GET/v1/tools/licensesDanh sách license (phân trang per_page)
GET/v1/tools/licenses/{id}Chi tiết license + thiết bị
GET/v1/tools/licenses/{id}/devicesDanh sách thiết bị
DELETE/v1/tools/licenses/{id}/devices/{deviceId}Reset / gỡ thiết bị
GET/v1/proxy/pricingTóm tắt giá bán lẻ theo chu kỳ (vm_type tùy chọn)
POST/v1/proxy/ordersĐặt mua proxy/VPS (cùng tham số với form web)
GET/v1/proxy/instancesDanh sách instance đã mua (vm_type, per_page)
GET/v1/proxy/instances/{vmCode}Chi tiết + snapshot (giá trong JSON đã là giá bán lẻ)
POST/v1/proxy/instances/{vmCode}/actionĐiều khiển: action start|stop|shutdown|reset|reboot (private + VPS)
POST/v1/proxy/instances/{vmCode}/reinstallCài lại OS (private + VPS)
POST/v1/proxy/instances/renewGia hạn hàng loạt: vm_codes[], price_mode

Mã lỗi thường gặp: 401 thiếu/sai token, 402 số dư không đủ, 422 dữ liệu không hợp lệ hoặc từ nhà cung cấp.