Trên trang này
- Tổng quan
- Tính tiền theo giờ
- Hạn mức lưu lượng
- Đặc tính theo dòng
- Luật riêng của VPS theo giờ
- Nhịp thao tác
- Mã lỗi riêng
- GET /cloudvps-hourly/products
- GET /cloudvps-hourly/os
- POST /cloudvps-hourly/quote
- POST /cloudvps-hourly/buy
- GET /cloudvps-hourly/list
- GET /cloudvps-hourly/info
- GET /cloudvps-hourly/charges
- POST /cloudvps-hourly/action
- POST /cloudvps-hourly/reinstall
- POST /cloudvps-hourly/limits
- POST /cloudvps-hourly/sync
- GET /cloudvps-hourly/console
- POST /cloudvps-hourly/delete
Tổng quan
Địa chỉ gốc của các endpoint trên trang này:
https://cloudmoon.net/api/v1| Endpoint | Việc | Quyền khoá |
|---|---|---|
GET /cloudvps-hourly/products |
Danh mục VPS theo giờ: giá MỖI GIỜ cho Linux (price_hour) và Windows (price_hour_windows, đã gồm bản quyền; null = gói … | Chỉ đọc |
GET /cloudvps-hourly/os |
Hệ điều hành: ?product_id= ⇒ HĐH thuê được cho gói, kèm price_hour theo HĐH · ?order_code= ⇒ HĐH cài lại được cho máy đ… | Chỉ đọc |
POST /cloudvps-hourly/quote |
BÁO GIÁ thuê một máy — không trừ tiền, khoá chỉ đọc gọi được. CÙNG bộ kiểm với lệnh thuê: báo giá được thì lệnh thuê ch… | Chỉ đọc |
POST /cloudvps-hourly/buy |
Thuê một VPS theo giờ — BẤT ĐỒNG BỘ: trả HTTP 202 kèm order_code, máy được tạo ở nền; hỏi /cloudvps-hourly/info?order_c… | Toàn quyền |
GET /cloudvps-hourly/list |
VPS theo giờ của tài khoản (không kèm mật khẩu). Mặc định máy đang chạy; ?status=deleted xem máy đã xoá (kèm deleted_re… | Chỉ đọc |
GET /cloudvps-hourly/info |
Chi tiết một VPS theo giờ (mỗi lần gọi tự hỏi lại trạng thái mới nhất của máy, tối đa 1 lần / 30 giây / máy): billing (… | Chỉ đọc |
GET /cloudvps-hourly/charges |
Sổ trừ tiền TỪNG GIỜ của một máy, mới nhất trước (result: paid · insufficient_balance · pending · refunded — hoàn vì má… | Chỉ đọc |
POST /cloudvps-hourly/action |
Bật / tắt / khởi động lại. Gửi lệnh cho máy đã ở sẵn trạng thái đó vẫn THÀNH CÔNG; already: true khi hệ thống đo được m… | Toàn quyền |
POST /cloudvps-hourly/reinstall |
Cài lại hệ điều hành — XOÁ TOÀN BỘ DỮ LIỆU. os_id lấy từ /cloudvps-hourly/os?order_code=. Một lần / 10 phút / máy. Sau … | Toàn quyền |
POST /cloudvps-hourly/limits |
Đặt TRẦN CHI TIÊU cho một máy: max_amount (tổng tiền) và/hoặc max_hours (số giờ), 0 = không giới hạn. Trần nào chạm trư… | Toàn quyền |
POST /cloudvps-hourly/sync |
Hỏi lại trạng thái THẬT của máy (IP · chạy/tắt · máy mới/cài lại đã sẵn sàng chưa) rồi trả đơn đã làm mới. Khoá chỉ đọc… | Chỉ đọc |
GET /cloudvps-hourly/console |
URL console trên trình duyệt (tên miền trung tính). Khoá TOÀN QUYỀN. Chưa sẵn ⇒ pending: true + retry_after (giây). Chỉ… | Toàn quyền |
POST /cloudvps-hourly/delete |
XOÁ máy = DỪNG TÍNH TIỀN ngay (không hoàn phần giờ đã trả, không khôi phục). Bắt buộc confirm = đúng order_code. Đi đượ… | Toàn quyền |
Giá đại lý: Giá theo giờ như nhau với mọi tài khoản — không có chiết khấu đại lý. — xem mục Tài khoản đại lý.
Tính tiền theo giờ
VPS theo giờ không có chu kỳ hay ngày hết hạn: máy trả trước từng giờ từ số dư ví của tài khoản, giá như nhau với mọi tài khoản.
- Giờ đầu bị trừ lúc máy bắt đầu được tạo — lệnh thuê còn
queuedthì chưa trừ đồng nào (xem trườngchargedở mục Lệnh mua & theo dõi). Mỗi giờ tiếp theo hệ thống tự trừ đúng mốcbilling.paid_until. - Tắt máy vẫn tính tiền — máy vẫn giữ tài nguyên. Muốn dừng tính tiền thì xoá máy (
POST /cloudvps-hourly/delete): có hiệu lực ngay, kể cả lúc máy đang khởi tạo, và không phải chờ nhịp. - Ví không đủ trả giờ kế tiếp ⇒ máy bị XOÁ, dữ liệu trên máy mất và không khôi phục được. Hệ thống gửi báo khi ví chỉ còn đủ dưới 3 giờ cho mọi máy theo giờ đang chạy;
/cloudvps-hourly/infotrả khốiwallet(balance·hourly_total·hours_affordable) để bạn tự canh. - Trần chi tiêu —
max_amount(tổng tiền) và/hoặcmax_hours(số giờ), đặt lúc thuê hoặc sau đó bằng/cloudvps-hourly/limits;0là không giới hạn. Chạm trần nào trước thì máy bị xoá theo trần đó — không bao giờ thu vượt trần. - Máy không khởi tạo được (lỗi phía hạ tầng): hệ thống tự huỷ máy và hoàn toàn bộ số đã trừ vào số dư —
deleted_reason: provisioning_failed, các dòng ở/cloudvps-hourly/chargesmangrefunded,billing.hours_paidvàtotal_paidvề 0.
Khối billing của mỗi máy
price_hour giá mỗi giờ · hours_paid / total_paid số giờ và số tiền đã trả (ròng — đã trừ phần hoàn) · paid_until đã trả tới · seconds_left số giây tới lượt trừ kế · status (running · deleting = đã ngừng tính tiền, đang gỡ máy · deleted) · max_amount · max_hours · started_at · stopped_at.
Vì sao máy bị xoá — deleted_reason
| Giá trị | Nghĩa |
|---|---|
customer | Bạn xoá (qua API hoặc trên web). |
insufficient_balance | Ví không đủ trả giờ kế tiếp. |
max_amount · max_hours | Chạm trần chi tiêu bạn đã đặt. |
provisioning_failed | Máy không khởi tạo được — đã hoàn toàn bộ. |
bandwidth | (chỉ ở đơn cũ) Xoá vì vượt hạn mức lưu lượng. Nay vượt hạn mức là tạm dừng, không xoá — xem mục dưới. |
system | Lý do khác phía hệ thống — liên hệ hỗ trợ kèm order_code. |
Hạn mức lưu lượng
Một số dòng máy có hạn mức lưu lượng đi ra — gói mang bandwidth_limit khác null ở danh mục ({base_gb, gb_per_hour}); gói null không giới hạn.
- Hạn mức ≈ 20 GB nền +
gb_per_hour× số giờ đã trả. Mỗi giờ trả thêm cộng thêm hạn mức. Chỉ tính chiều đi ra; chiều vào không tính.gb_per_hourở danh mục đã làm tròn tới 0,1 GB — hạn mức chính xác của từng máy làbandwidth.limit_mb(sau giờ kế tiếp:next_limit_mb) ở/cloudvps-hourly/info. - Hệ thống đo định kỳ (khoảng 10 phút một lần). Vượt hạn mức ⇒ máy bị tạm dừng (tắt), không bị xoá — vẫn tính tiền mỗi giờ như máy đang tắt.
- Máy tự bật lại khi hạn mức đã vượt lượng đã dùng và đã qua ít nhất một giờ kể từ lúc dừng. Trong lúc tạm dừng: bật · khởi động lại · cài lại nhận
409 BANDWIDTH_PAUSED; tắt và xoá vẫn làm được. /cloudvps-hourly/infotrả khốibandwidth:used_out_mb·limit_mb·next_limit_mb(hạn mức sau giờ kế tiếp) ·checked_at·paused·resume_at(mốc sớm nhất máy tự bật lại).
Đặc tính theo dòng
Mỗi dòng máy hỗ trợ một bộ việc khác nhau — API ghi ở features (power · reinstall · console) của gói / máy, còn allowed_actions cho biết việc làm được ngay lúc này trên một máy cụ thể.
| Dòng · khu vực | Console | Windows | GPU | Hạn mức lưu lượng |
|---|---|---|---|---|
| Xeon Hour · 9 gói
Việt Nam |
||||
| Xeon Hour · 168 gói (155 còn hàng)
Mỹ · Anh · Pháp · Đức · Tây Ban Nha · Ba Lan · Thụy Điển · Hà Lan · Canada · Mexico · Brazil · Chile · Úc · Singapore · Nhật · Hàn Quốc · Ấn Độ · Israel · Nam Phi |
gói đủ RAM |
|||
| GPU Hour · 14 gói (0 còn hàng)
Mỹ · Đức · Singapore · Nhật · Ấn Độ |
NVIDIA A16 · NVIDIA A40 |
Mọi dòng đều bật/tắt/khởi động lại, cài lại hệ điều hành, đặt trần chi tiêu và xoá được. Windows có giá riêng (price_hour_windows, đã gồm bản quyền) và có thể đòi gói đủ RAM. Bảng dựng trực tiếp từ danh mục /cloudvps-hourly/products — gói tạm hết hàng vẫn được tính (in_stock: false, thuê nhận 409 OUT_OF_STOCK).
Giá trị của allowed_actions
start · stop · restart · reinstall · console · sync · limits · delete — tên nào vắng mặt thì lệnh tương ứng sẽ bị chối (NOT_SUPPORTED, REBUILDING, BANDWIDTH_PAUSED…). Máy đang khởi tạo chỉ còn sync · limits · delete — đặt trần chi tiêu được ngay từ lúc này. Ngay sau lệnh thuê, lúc máy chưa có, lệnh theo order_code (trừ info) nhận 429 IN_PROGRESS — chờ Retry-After rồi gửi lại.
Luật riêng của VPS theo giờ
- Không có chu kỳ, gia hạn, tự gia hạn, đổi chu kỳ, nâng cấp, đổi IP hay chuyển quyền — các việc ấy chỉ có ở VPS theo tháng. Đơn theo giờ gọi vào
/cloudvps/…(và ngược lại) ⇒400 NOT_SUPPORTEDkèm đường đúng. - Cài lại hệ điều hành được nhiều hơn VPS tháng (xem mục Nhịp thao tác) vì máy theo giờ thường dùng để thử. Gói có giá Windows riêng chỉ cài lại được hệ điều hành cùng họ với máy (Linux ↔ Linux, Windows ↔ Windows) — danh sách đúng ở
GET /cloudvps-hourly/os?order_code=…. - Lệnh thuê không tự chống bấm đúp theo thời gian: hai lệnh giống hệt gửi liền nhau là hai máy. Chống gửi lặp bằng
Idempotency-Key. - Trần lệnh thuê: tối đa 3 lệnh đang chờ tạo máy và 10 lượt mỗi giờ, tính gộp với lệnh mua Cloud VPS theo tháng (
429 TOO_MANY_PENDING·429 RATE_LIMITED); số dư khả dụng trừ tiền các lệnh còn chờ. - Máy đã xoá không khôi phục được; thông tin đơn vẫn đọc được ở
/cloudvps-hourly/infovà/cloudvps-hourly/list?status=deleted.
Nhịp thao tác trên cùng một máy
Để máy kịp đổi trạng thái, các lệnh trên cùng một máy phải cách lệnh trước một khoảng tối thiểu (cùng luật với web). Các việc trong cùng một dòng dùng chung một đồng hồ. Gửi sớm hơn ⇒ 429 COOLDOWN (header Retry-After cho biết còn bao nhiêu giây); gửi trong lúc máy đang xử lý lệnh khác ⇒ 429 IN_PROGRESS.
| Lệnh | Cách lệnh trước trên cùng máy |
|---|---|
| Bật · Tắt · Khởi động lại | 1 phút |
Làm mới trạng thái (/cloudvps-hourly/sync) | 20 giây (tính riêng) |
| Cài lại hệ điều hành | 1 lần / 10 phút |
| Xoá · đặt trần chi tiêu | không phải chờ (chỉ một lệnh mỗi lúc trên cùng máy (429 IN_PROGRESS)) |
Mã lỗi riêng
Ngoài các mã lỗi chung của mọi endpoint, trang này còn có các mã dưới đây. Hãy rẽ nhánh theo code.
| HTTP | code | Ý nghĩa | Nên làm gì |
|---|---|---|---|
| 400 | NOT_SUPPORTED |
Gói / máy này không hỗ trợ thao tác được yêu cầu, hoặc đơn thuộc loại khác (VPS theo giờ gọi vào /cloudvps/… và ngược lại). | Đọc features và allowed_actions trước khi gọi; đơn khác loại thì dùng đúng đường mà msg chỉ. |
| 400 | CONFIRM_REQUIRED |
Lệnh xoá thiếu trường xác nhận. | Gửi confirm bằng đúng order_code. |
| 409 | OUT_OF_STOCK |
Gói tạm hết hàng (trong danh mục gói mang in_stock: false). |
Chọn gói khác — thêm ?in_stock=1 vào danh mục để chỉ thấy gói còn hàng. |
| 409 | REBUILDING |
Máy đang khởi tạo / chờ bàn giao, hoặc đang cài lại hệ điều hành. | Hỏi /cloudvps-hourly/info tới khi provision_status = ready. |
| 409 | BANDWIDTH_PAUSED |
Máy đang tạm dừng vì đã dùng hết hạn mức lưu lượng đi ra — bật, khởi động lại, cài lại đều bị chặn. | Chờ tới bandwidth.resume_at (máy tự bật lại); tắt và xoá vẫn làm được. |
| 409 | ORDER_DELETED |
Đơn đã bị xoá. | Không thao tác được nữa. |
| 429 | COOLDOWN |
Một máy vừa nhận lệnh cùng nhóm — cần nghỉ giữa hai lệnh. | Chờ Retry-After giây. |
| 429 | IN_PROGRESS |
Máy đang xử lý một lệnh khác — hoặc lệnh mua vừa nhận chưa tạo xong máy. | Chờ Retry-After giây rồi gửi lại. |
| 503 | SYNC_FAILED |
Chưa lấy được trạng thái máy lúc này. | Thử lại sau ít phút. |
| 503 | CONSOLE_UNAVAILABLE |
Chưa mở được console lúc này. | Thử lại sau ít phút. |
| 503 | MAINTENANCE |
Khu vực của gói / máy này đang bảo trì. | Thử lại sau. |
/cloudvps-hourly/products
Chỉ đọcDanh mục VPS theo giờ: giá MỖI GIỜ cho Linux (price_hour) và Windows (price_hour_windows, đã gồm bản quyền; null = gói không bán Windows), GPU, thành phố, hạn mức lưu lượng đi ra (bandwidth_limit; null = không giới hạn), features. Gói tạm hết hàng vẫn có trong danh sách với in_stock: false. Lọc ?region= · ?in_stock=1.
GET https://cloudmoon.net/api/v1/cloudvps-hourly/products| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
region |
query | không | mã khu vực, vd VN · SG · US |
in_stock |
query | không | 1 = chỉ gói còn hàng |
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/products' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/products",
headers={"X-API-Key": "ak_..."},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/products", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/products');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"items": [
{
"product_id": 544,
"product_code": "433",
"name": "VN11-1-1-20",
"group_name": "vn11",
"region_code": "vn",
"city": "Hà Nội",
"cpu": "1",
"ram": "1",
"disk": "20",
"ip": "1",
"bandwidth": "200 Mbps",
"traffic": "Unlimited",
"gpu": null,
"in_stock": true,
"price_hour": 580,
"price_hour_windows": 580,
"bandwidth_limit": null,
"features": {
"power": true,
"reinstall": true,
"console": true
}
},
{
"product_id": 668,
"product_code": "557",
"name": "SG11-1-2-55",
"group_name": "sg11",
"region_code": "sg",
"city": "Singapore",
"cpu": "1",
"ram": "2",
"disk": "55",
"ip": "1",
"bandwidth": "1 Gbps (chia sẻ)",
"traffic": "3 GB/giờ",
"gpu": null,
"in_stock": true,
"price_hour": 760,
"price_hour_windows": 1980,
"bandwidth_limit": {
"base_gb": 20,
"gb_per_hour": 3
},
"features": {
"power": true,
"reinstall": true,
"console": false
}
}
],
"total": 2,
"currency": "VND"
}
}/cloudvps-hourly/os
Chỉ đọcHệ điều hành: ?product_id= ⇒ HĐH thuê được cho gói, kèm price_hour theo HĐH · ?order_code= ⇒ HĐH cài lại được cho máy đó (gói có giá Windows riêng thì chỉ HĐH cùng họ Linux/Windows với máy).
GET https://cloudmoon.net/api/v1/cloudvps-hourly/os| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
product_id |
query | không | id số trong /cloudvps-hourly/products (HĐH thuê được) |
order_code |
query | không | mã đơn (HĐH cài lại được) |
Chạy thử Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu.
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/os?product_id=668' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/os",
headers={"X-API-Key": "ak_..."},
params={"product_id": "668"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/os?product_id=668", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/os?product_id=668');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"items": [
{
"os_id": 9,
"os_name": "Linux Ubuntu 24.04",
"os_type": "linux",
"icon": "/frontend/assets/images/ubuntu.png",
"price_hour": 760
},
{
"os_id": 2,
"os_name": "Windows Server 2022 Trial 180 days",
"os_type": "windows",
"icon": "/frontend/assets/images/windows.png",
"price_hour": 1980
}
],
"total": 2
}
}/cloudvps-hourly/quote
Chỉ đọcBÁO GIÁ thuê một máy — không trừ tiền, khoá chỉ đọc gọi được. CÙNG bộ kiểm với lệnh thuê: báo giá được thì lệnh thuê chỉ còn hỏng vì số dư hoặc hết máy đúng lúc ấy. available_balance = số dư − tiền mọi lệnh mua/thuê VPS còn chờ tạo máy (gộp Cloud VPS tháng + theo giờ).
POST https://cloudmoon.net/api/v1/cloudvps-hourly/quote| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
product_id |
body | có | id số trong /cloudvps-hourly/products |
os_id |
body | có | từ /cloudvps-hourly/os?product_id= |
max_amount |
body | không | trần tổng tiền (đ), 0 = không giới hạn |
max_hours |
body | không | trần số giờ, 0 = không giới hạn |
Chạy thử Lệnh đọc — gửi kèm X-Sandbox: 1 vẫn chạy như thường (không đổi gì).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/quote' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"product_id":668,"os_id":9}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/quote",
headers={"X-API-Key": "ak_..."},
json={"product_id": 668, "os_id": 9},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/quote", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ product_id: 668, os_id: 9 }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/quote', ['product_id' => 668, 'os_id' => 9]);
print_r($kq);{
"product_id": 668,
"os_id": 9
}{
"status": "success",
"msg": "OK",
"data": {
"type": "buy",
"product_id": 668,
"os_id": 9,
"os_type": "linux",
"price_hour": 760,
"first_charge": 760,
"currency": "VND",
"balance": 954112,
"available_balance": 954112,
"enough": true,
"hours_affordable": 1255,
"max_amount": 0,
"max_hours": 0
}
}/cloudvps-hourly/buy
Toàn quyềnThuê một VPS theo giờ — BẤT ĐỒNG BỘ: trả HTTP 202 kèm order_code, máy được tạo ở nền; hỏi /cloudvps-hourly/info?order_code= tới khi provision_status = ready (failed kèm charged: false = chưa trừ tiền). Trừ trước GIỜ ĐẦU khi máy bắt đầu được tạo; sau đó hệ thống tự trừ mỗi giờ, ví không đủ ⇒ máy bị XOÁ. Nên đặt max_amount / max_hours để máy tự xoá khi chạm trần. Trần: 3 lệnh chờ tạo máy (GỘP với lệnh mua Cloud VPS tháng), 10 lượt/giờ (429); số dư KHẢ DỤNG trừ tiền các lệnh còn chờ. Nhà dựng hỏng máy ⇒ hệ thống tự huỷ + hoàn toàn bộ (deleted_reason: provisioning_failed). Thử miễn phí: header X-Sandbox: 1.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/buy| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
Idempotency-Key |
header | không | KHUYÊN DÙNG — gửi lại cùng khoá ⇒ đúng order_code cũ, không thuê hai máy |
product_id |
body | có | id số trong /cloudvps-hourly/products |
os_id |
body | có | từ /cloudvps-hourly/os?product_id= |
max_amount |
body | không | trần tổng tiền (đ) — 0 = không giới hạn, khác 0 thì ≥ 2 giờ tiền |
max_hours |
body | không | trần số giờ — 0 = không giới hạn, khác 0 thì ≥ 2 |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Kịch bản lỗi (X-Sandbox-Scenario): INSUFFICIENT_BALANCE (402) · OUT_OF_STOCK (409) · TOO_MANY_PENDING (429) · RATE_LIMITED (429) · BUSY (429) · SERVICE_DISABLED (503) · MAINTENANCE (503) · FAILED (500) · PROVISION_FAILED (lệnh vẫn nhận, info về sau báo failed).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/buy' \
-H 'X-API-Key: ak_...' \
-H 'Idempotency-Key: 7f9c2e4b-1a2b-4c3d-9e8f-0123456789ab' \
-H 'Content-Type: application/json' \
-d '{"product_id":668,"os_id":9,"max_hours":24}'import uuid
import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/buy",
headers={"X-API-Key": "ak_...", "Idempotency-Key": str(uuid.uuid4())},
json={"product_id": 668, "os_id": 9, "max_hours": 24},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
import { randomUUID } from "node:crypto";
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/buy", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
"Idempotency-Key": randomUUID(),
},
body: JSON.stringify({ product_id: 668, os_id: 9, max_hours: 24 }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/buy', ['product_id' => 668, 'os_id' => 9, 'max_hours' => 24], bin2hex(random_bytes(16)));
print_r($kq);{
"product_id": 668,
"os_id": 9,
"max_hours": 24
}{
"status": "success",
"msg": "Đã nhận lệnh thuê — máy đang được tạo",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"status": "queued",
"provision_status": "queued",
"product_id": 668,
"os_id": 9,
"price_hour": 760,
"max_amount": 0,
"max_hours": 24,
"note": "Máy đang được tạo ở nền — hỏi GET /cloudvps-hourly/info?order_code= để biết khi nào sẵn sàng"
}
}/cloudvps-hourly/list
Chỉ đọcVPS theo giờ của tài khoản (không kèm mật khẩu). Mặc định máy đang chạy; ?status=deleted xem máy đã xoá (kèm deleted_reason). Phân trang.
GET https://cloudmoon.net/api/v1/cloudvps-hourly/list| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
status |
query | không | active (mặc định) | deleted |
limit |
query | không | 1-200, mặc định 50 |
page |
query | không | Trang, tính từ 1 |
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/list' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/list",
headers={"X-API-Key": "ak_..."},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/list", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/list');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"items": [
{
"order_code": "081026CLOUDVBHZQXKMNTRA",
"name": "SG11-1-2-55",
"ip": "203.0.113.25",
"cpu": "1",
"ram": "2",
"disk": "55",
"os_id": 9,
"os_name": "Linux Ubuntu 24.04",
"vps_status": "running",
"provision_status": "ready",
"order_status": "active",
"time_buy": "2026-10-08",
"plan": {
"product_id": 668,
"name": "SG11-1-2-55",
"region": "sg",
"city": "Singapore",
"gpu": null
},
"billing": {
"price_hour": 760,
"hours_paid": 3,
"total_paid": 2280,
"paid_until": "2026-10-08T13:05:00+07:00",
"seconds_left": 1834,
"status": "running",
"max_amount": 0,
"max_hours": 24,
"started_at": "2026-10-08T10:05:00+07:00",
"stopped_at": null
},
"bandwidth": {
"used_out_mb": 812,
"limit_mb": 29696,
"next_limit_mb": 32768,
"checked_at": "2026-10-08T12:30:00+07:00",
"paused": false,
"resume_at": null
},
"deleted_reason": null,
"features": {
"power": true,
"reinstall": true,
"console": false
},
"allowed_actions": [
"start",
"stop",
"restart",
"reinstall",
"sync",
"limits",
"delete"
]
}
],
"page": 1,
"limit": 50,
"total": 1
}
}/cloudvps-hourly/info
Chỉ đọcChi tiết một VPS theo giờ (mỗi lần gọi tự hỏi lại trạng thái mới nhất của máy, tối đa 1 lần / 30 giây / máy): billing (đơn giá · giờ đã trả · tổng đã trả · trả tới · số giây tới lượt trừ kế · trần) · bandwidth (dòng có hạn mức lưu lượng; paused + resume_at khi máy tạm dừng vì vượt hạn mức) · wallet (ví còn đủ trả bao nhiêu giờ cho mọi máy giờ đang chạy) · features · allowed_actions. username/password/port CHỈ kèm khi khoá TOÀN QUYỀN và provision_status = ready.
GET https://cloudmoon.net/api/v1/cloudvps-hourly/info| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
query | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
Chạy thử Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu.
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/info?order_code=081026CLOUDVBHZQXKMNTRA' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/info",
headers={"X-API-Key": "ak_..."},
params={"order_code": "081026CLOUDVBHZQXKMNTRA"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/info?order_code=081026CLOUDVBHZQXKMNTRA", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/info?order_code=081026CLOUDVBHZQXKMNTRA');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"name": "SG11-1-2-55",
"ip": "203.0.113.25",
"cpu": "1",
"ram": "2",
"disk": "55",
"os_id": 9,
"os_name": "Linux Ubuntu 24.04",
"vps_status": "running",
"provision_status": "ready",
"order_status": "active",
"time_buy": "2026-10-08",
"plan": {
"product_id": 668,
"name": "SG11-1-2-55",
"region": "sg",
"city": "Singapore",
"gpu": null
},
"billing": {
"price_hour": 760,
"hours_paid": 3,
"total_paid": 2280,
"paid_until": "2026-10-08T13:05:00+07:00",
"seconds_left": 1834,
"status": "running",
"max_amount": 0,
"max_hours": 24,
"started_at": "2026-10-08T10:05:00+07:00",
"stopped_at": null
},
"bandwidth": {
"used_out_mb": 812,
"limit_mb": 29696,
"next_limit_mb": 32768,
"checked_at": "2026-10-08T12:30:00+07:00",
"paused": false,
"resume_at": null
},
"deleted_reason": null,
"features": {
"power": true,
"reinstall": true,
"console": false
},
"allowed_actions": [
"start",
"stop",
"restart",
"reinstall",
"sync",
"limits",
"delete"
],
"wallet": {
"balance": 951832,
"hourly_total": 760,
"hours_affordable": 1252
},
"username": "root",
"password": "S3cret-pass",
"port": 22,
"credentials_note": null
}
}/cloudvps-hourly/charges
Chỉ đọcSổ trừ tiền TỪNG GIỜ của một máy, mới nhất trước (result: paid · insufficient_balance · pending · refunded — hoàn vì máy không khởi tạo được) + tổng.
GET https://cloudmoon.net/api/v1/cloudvps-hourly/charges| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
query | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
limit |
query | không | 1-200, mặc định 48 |
Chạy thử Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu.
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/charges?order_code=081026CLOUDVBHZQXKMNTRA' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/charges",
headers={"X-API-Key": "ak_..."},
params={"order_code": "081026CLOUDVBHZQXKMNTRA"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/charges?order_code=081026CLOUDVBHZQXKMNTRA", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/charges?order_code=081026CLOUDVBHZQXKMNTRA');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"items": [
{
"from": "2026-10-08T12:05:00+07:00",
"to": "2026-10-08T13:05:00+07:00",
"amount": 760,
"result": "paid",
"created_at": "2026-10-08T12:05:31+07:00"
}
],
"total": 1,
"summary": {
"price_hour": 760,
"hours_paid": 3,
"total_paid": 2280
}
}
}/cloudvps-hourly/action
Toàn quyềnBật / tắt / khởi động lại. Gửi lệnh cho máy đã ở sẵn trạng thái đó vẫn THÀNH CÔNG; already: true khi hệ thống đo được máy đã ở sẵn trạng thái ấy (không phải lượt nào cũng đo được) — muốn biết máy đang chạy hay tắt thì đọc vps_status ở /info. TẮT máy vẫn tính tiền theo giờ — xoá máy để dừng tính tiền. Nhịp: 60 giây/máy. Máy đang tạm dừng vì vượt hạn mức lưu lượng ⇒ start/restart nhận 409 BANDWIDTH_PAUSED.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/action| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
body | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
action |
body | có | start | stop | restart |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): REBUILDING (409) · BANDWIDTH_PAUSED (409) · ORDER_DELETED (409) · COOLDOWN (429) · IN_PROGRESS (429) · BUSY (429) · MAINTENANCE (503) · FAILED (400).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/action' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"order_code":"081026CLOUDVBHZQXKMNTRA","action":"restart"}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/action",
headers={"X-API-Key": "ak_..."},
json={"order_code": "081026CLOUDVBHZQXKMNTRA", "action": "restart"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/action", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ order_code: "081026CLOUDVBHZQXKMNTRA", action: "restart" }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/action', ['order_code' => '081026CLOUDVBHZQXKMNTRA', 'action' => 'restart']);
print_r($kq);{
"order_code": "081026CLOUDVBHZQXKMNTRA",
"action": "restart"
}{
"status": "success",
"msg": "Khởi động lại VPS thành công",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"action": "restart",
"already": false
}
}/cloudvps-hourly/reinstall
Toàn quyềnCài lại hệ điều hành — XOÁ TOÀN BỘ DỮ LIỆU. os_id lấy từ /cloudvps-hourly/os?order_code=. Một lần / 10 phút / máy. Sau lệnh provision_status = rebuilding tới khi máy mới sống.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/reinstall| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
body | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
os_id |
body | có | — |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): REBUILDING (409) · BANDWIDTH_PAUSED (409) · ORDER_DELETED (409) · COOLDOWN (429) · IN_PROGRESS (429) · BUSY (429) · MAINTENANCE (503) · FAILED (400).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/reinstall' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"order_code":"081026CLOUDVBHZQXKMNTRA","os_id":9}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/reinstall",
headers={"X-API-Key": "ak_..."},
json={"order_code": "081026CLOUDVBHZQXKMNTRA", "os_id": 9},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/reinstall", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ order_code: "081026CLOUDVBHZQXKMNTRA", os_id: 9 }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/reinstall', ['order_code' => '081026CLOUDVBHZQXKMNTRA', 'os_id' => 9]);
print_r($kq);{
"order_code": "081026CLOUDVBHZQXKMNTRA",
"os_id": 9
}{
"status": "success",
"msg": "Đang cài lại hệ điều hành — hỏi /cloudvps-hourly/info để biết khi nào xong",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"os_id": 9,
"os_name": "Linux Ubuntu 24.04",
"provision_status": "rebuilding"
}
}/cloudvps-hourly/limits
Toàn quyềnĐặt TRẦN CHI TIÊU cho một máy: max_amount (tổng tiền) và/hoặc max_hours (số giờ), 0 = không giới hạn. Trần nào chạm trước thì máy bị XOÁ theo trần đó — không bao giờ thu vượt trần. Trần thấp hơn (đã tiêu + một giờ) bị chối kèm con số nhỏ nhất hợp lệ. Gửi một trường thì trường kia giữ nguyên.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/limits| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
body | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
max_amount |
body | không | trần tổng tiền (đ), 0 = không giới hạn |
max_hours |
body | không | trần số giờ, 0 = không giới hạn |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): ORDER_DELETED (409) · IN_PROGRESS (429).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/limits' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"order_code":"081026CLOUDVBHZQXKMNTRA","max_amount":20000}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/limits",
headers={"X-API-Key": "ak_..."},
json={"order_code": "081026CLOUDVBHZQXKMNTRA", "max_amount": 20000},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/limits", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ order_code: "081026CLOUDVBHZQXKMNTRA", max_amount: 20000 }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/limits', ['order_code' => '081026CLOUDVBHZQXKMNTRA', 'max_amount' => 20000]);
print_r($kq);{
"order_code": "081026CLOUDVBHZQXKMNTRA",
"max_amount": 20000
}{
"status": "success",
"msg": "Đã lưu hạn mức",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"max_amount": 20000,
"max_hours": 24,
"hours_paid": 3,
"total_paid": 2280
}
}/cloudvps-hourly/sync
Chỉ đọcHỏi lại trạng thái THẬT của máy (IP · chạy/tắt · máy mới/cài lại đã sẵn sàng chưa) rồi trả đơn đã làm mới. Khoá chỉ đọc gọi được. Nhịp: 20 giây/máy.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/sync| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
body | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): ORDER_DELETED (409) · COOLDOWN (429) · IN_PROGRESS (429) · BUSY (429) · MAINTENANCE (503) · SYNC_FAILED (503).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/sync' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"order_code":"081026CLOUDVBHZQXKMNTRA"}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/sync",
headers={"X-API-Key": "ak_..."},
json={"order_code": "081026CLOUDVBHZQXKMNTRA"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/sync", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ order_code: "081026CLOUDVBHZQXKMNTRA" }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/sync', ['order_code' => '081026CLOUDVBHZQXKMNTRA']);
print_r($kq);{
"order_code": "081026CLOUDVBHZQXKMNTRA"
}{
"status": "success",
"msg": "Đã cập nhật trạng thái mới nhất",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"name": "SG11-1-2-55",
"ip": "203.0.113.25",
"cpu": "1",
"ram": "2",
"disk": "55",
"os_id": 9,
"os_name": "Linux Ubuntu 24.04",
"vps_status": "running",
"provision_status": "ready",
"order_status": "active",
"time_buy": "2026-10-08",
"plan": {
"product_id": 668,
"name": "SG11-1-2-55",
"region": "sg",
"city": "Singapore",
"gpu": null
},
"billing": {
"price_hour": 760,
"hours_paid": 3,
"total_paid": 2280,
"paid_until": "2026-10-08T13:05:00+07:00",
"seconds_left": 1834,
"status": "running",
"max_amount": 0,
"max_hours": 24,
"started_at": "2026-10-08T10:05:00+07:00",
"stopped_at": null
},
"bandwidth": {
"used_out_mb": 812,
"limit_mb": 29696,
"next_limit_mb": 32768,
"checked_at": "2026-10-08T12:30:00+07:00",
"paused": false,
"resume_at": null
},
"deleted_reason": null,
"features": {
"power": true,
"reinstall": true,
"console": false
},
"allowed_actions": [
"start",
"stop",
"restart",
"reinstall",
"sync",
"limits",
"delete"
]
}
}/cloudvps-hourly/console
Toàn quyềnURL console trên trình duyệt (tên miền trung tính). Khoá TOÀN QUYỀN. Chưa sẵn ⇒ pending: true + retry_after (giây). Chỉ máy features.console.
GET https://cloudmoon.net/api/v1/cloudvps-hourly/console| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
query | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): NOT_SUPPORTED (400) · REBUILDING (409) · BANDWIDTH_PAUSED (409) · COOLDOWN (429) · BUSY (429) · MAINTENANCE (503) · CONSOLE_UNAVAILABLE (503).
curl 'https://cloudmoon.net/api/v1/cloudvps-hourly/console?order_code=081026CLOUDVBHZQXKMNTRA' \
-H 'X-API-Key: ak_...'import requests
r = requests.get(
"https://cloudmoon.net/api/v1/cloudvps-hourly/console",
headers={"X-API-Key": "ak_..."},
params={"order_code": "081026CLOUDVBHZQXKMNTRA"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/console?order_code=081026CLOUDVBHZQXKMNTRA", {
headers: { "X-API-Key": "ak_..." },
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('GET', '/v1/cloudvps-hourly/console?order_code=081026CLOUDVBHZQXKMNTRA');
print_r($kq);{
"status": "success",
"msg": "OK",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"console_url": "https://console.systemcloudvps.com/vnc.html?token=...",
"pending": false,
"retry_after": null
}
}/cloudvps-hourly/delete
Toàn quyềnXOÁ máy = DỪNG TÍNH TIỀN ngay (không hoàn phần giờ đã trả, không khôi phục). Bắt buộc confirm = đúng order_code. Đi được cả lúc máy đang khởi tạo; gỡ máy có thể trễ vài phút (status: deleting) nhưng tiền đã ngừng tính.
POST https://cloudmoon.net/api/v1/cloudvps-hourly/delete| Tham số | Vị trí | Bắt buộc | Mô tả |
|---|---|---|---|
order_code |
body | có | Mã đơn (order_code) — lấy từ lệnh mua hoặc /list |
confirm |
body | có | gõ lại đúng order_code |
Chạy thử Gửi kèm X-Sandbox: 1: máy chủ kiểm như lượt thật rồi trả kết quả mô phỏng cùng khuôn — không trừ tiền, không đổi gì. Nhận cả mã SANDBOX… của lệnh mua chạy thử ⇒ trả máy mẫu. Kịch bản lỗi (X-Sandbox-Scenario): ORDER_DELETED (409) · IN_PROGRESS (429) · FAILED (400).
curl -X POST 'https://cloudmoon.net/api/v1/cloudvps-hourly/delete' \
-H 'X-API-Key: ak_...' \
-H 'Content-Type: application/json' \
-d '{"order_code":"081026CLOUDVBHZQXKMNTRA","confirm":"081026CLOUDVBHZQXKMNTRA"}'import requests
r = requests.post(
"https://cloudmoon.net/api/v1/cloudvps-hourly/delete",
headers={"X-API-Key": "ak_..."},
json={"order_code": "081026CLOUDVBHZQXKMNTRA", "confirm": "081026CLOUDVBHZQXKMNTRA"},
timeout=30,
)
print(r.status_code, r.json())// Node.js 18+ — lưu thành tệp .mjs
const res = await fetch("https://cloudmoon.net/api/v1/cloudvps-hourly/delete", {
method: "POST",
headers: {
"X-API-Key": "ak_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ order_code: "081026CLOUDVBHZQXKMNTRA", confirm: "081026CLOUDVBHZQXKMNTRA" }),
});
console.log(res.status, await res.json());// cm_api(): xem mục "Client mẫu" ở trang Tổng quan
$kq = cm_api('POST', '/v1/cloudvps-hourly/delete', ['order_code' => '081026CLOUDVBHZQXKMNTRA', 'confirm' => '081026CLOUDVBHZQXKMNTRA']);
print_r($kq);{
"order_code": "081026CLOUDVBHZQXKMNTRA",
"confirm": "081026CLOUDVBHZQXKMNTRA"
}{
"status": "success",
"msg": "Đã xoá VPS",
"data": {
"order_code": "081026CLOUDVBHZQXKMNTRA",
"status": "deleted",
"billing_stopped": true,
"hours_paid": 3,
"total_paid": 2280
}
}