This is an unofficial project reference for KiwiVM REST endpoints used by bwh and for endpoints that may be added later. It describes the upstream KiwiVM API surface, not only the methods currently implemented by the Go client.
| Item | Value |
|---|---|
| Base URL | https://api.64clouds.com/v1 |
| Request methods | GET or POST |
| POST content type | application/x-www-form-urlencoded |
| Response format | JSON |
| Authentication | Per-request veid and api_key parameters |
KiwiVM accepts all endpoint parameters through either GET query parameters or POST form data. In this project, read-only client methods should use GET; state-changing methods should use POST form data so credentials and write parameters are not placed in the URL.
Every endpoint requires these common parameters.
| Parameter | Required | Description |
|---|---|---|
veid |
Yes | VPS ID. |
api_key |
Yes | API key for the VPS. |
GET format:
GET https://api.64clouds.com/v1/{endpoint}?veid={VEID}&api_key={API_KEY}POST format:
curl -sS -X POST "https://api.64clouds.com/v1/{endpoint}" \
-d "veid={VEID}" \
-d "api_key={API_KEY}"GET with endpoint parameters:
GET https://api.64clouds.com/v1/setPTR?veid={VEID}&api_key={API_KEY}&ip=203.0.113.10&ptr=host.example.comEvery endpoint returns an error field. A value of 0 means success. Non-zero values indicate an API-level failure.
| Field | Type | Description |
|---|---|---|
error |
integer | 0 on success, non-zero on failure. |
message |
string | Error details when available. |
additionalErrorInfo |
string | Optional extra error context. |
additionalLockingInfo |
object | Optional lock status details when the VPS is busy. |
Success response:
{
"error": 0
}Failure response:
{
"error": 1,
"message": "Error details"
}Get service information:
curl -sS "https://api.64clouds.com/v1/getServiceInfo?veid={VEID}&api_key={API_KEY}"Restart a VPS with POST:
curl -sS -X POST "https://api.64clouds.com/v1/restart" \
-d "veid={VEID}" \
-d "api_key={API_KEY}"Create a snapshot:
curl -sS -X POST "https://api.64clouds.com/v1/snapshot/create" \
-d "veid={VEID}" \
-d "api_key={API_KEY}" \
-d "description=Automatic_Snapshot"Set a PTR record:
curl -sS -X POST "https://api.64clouds.com/v1/setPTR" \
-d "veid={VEID}" \
-d "api_key={API_KEY}" \
-d "ip=203.0.113.10" \
-d "ptr=host.example.com"These endpoints can affect data, security, networking, service availability, or abuse-policy state. CLI flows must keep explicit confirmation for them.
| Endpoint | Risk |
|---|---|
stop |
Stops the VPS. |
restart |
Reboots the VPS. |
kill |
Force-stops the VPS and can lose unsaved data. |
reinstallOS |
Reinstalls the OS and destroys current data. |
resetRootPassword |
Replaces the root password. |
setHostname |
Changes the VPS hostname. |
setPTR |
Changes reverse DNS for an IP address. |
iso/mount |
Changes boot media. |
iso/unmount |
Changes boot media back to primary storage. |
basicShell/exec |
Runs a root shell command synchronously on the VPS. |
shellScript/exec |
Runs a root shell script asynchronously on the VPS. |
snapshot/create |
Creates a snapshot task that can restart and temporarily lock the VPS. |
snapshot/delete |
Deletes a snapshot. |
snapshot/restore |
Restores a snapshot and overwrites current VPS data. |
snapshot/toggleSticky |
Changes snapshot retention behavior. |
backup/copyToSnapshot |
Creates a restorable snapshot from a backup. |
ipv6/add |
Allocates a new IPv6 /64 subnet. |
ipv6/delete |
Releases an IPv6 /64 subnet. |
privateIp/assign |
Assigns a private IPv4 address. |
privateIp/delete |
Removes a private IPv4 address. |
migrate/start |
Migrates the VPS and replaces all IPv4 addresses. |
cloneFromExternalServer |
Clones a remote server into the VPS. |
unsuspend |
Clears an abuse case and unsuspends the VPS when allowed. |
resolvePolicyViolation |
Marks an active policy violation as resolved. |
kiwivm/setNotificationPreferences |
Changes notification settings. |
| Category | Endpoints |
|---|---|
| Power management | start, stop, restart, kill |
| Service information | getServiceInfo, getLiveServiceInfo |
| OS and SSH | getAvailableOS, reinstallOS, updateSshKeys, getSshKeys, resetRootPassword |
| Usage and audit | getUsageGraphs, getRawUsageStats, getAuditLog, getRateLimitStatus |
| Hostname, DNS, ISO | setHostname, setPTR, iso/mount, iso/unmount |
| Shell | basicShell/cd, basicShell/exec, shellScript/exec |
| Snapshots and backups | snapshot/create, snapshot/list, snapshot/delete, snapshot/restore, snapshot/toggleSticky, snapshot/export, snapshot/import, backup/list, backup/copyToSnapshot |
| Network | ipv6/add, ipv6/delete, privateIp/getAvailableIps, privateIp/assign, privateIp/delete |
| Migration | migrate/getLocations, migrate/start, cloneFromExternalServer |
| Suspension and policy | getSuspensionDetails, getPolicyViolations, unsuspend, resolvePolicyViolation |
| KiwiVM settings | kiwivm/getNotificationPreferences, kiwivm/setNotificationPreferences |
Unless noted otherwise, every endpoint supports GET and POST, requires the common authentication parameters, and returns the common error field.
- Path:
/start - Parameters: common only.
- Returns: common response.
- Notes: Starts the VPS.
- Path:
/stop - Parameters: common only.
- Returns: common response.
- Notes: Stops the VPS.
- Path:
/restart - Parameters: common only.
- Returns: common response.
- Notes: Reboots the VPS.
- Path:
/kill - Parameters: common only.
- Returns: common response.
- Notes: Force-stops a VPS that cannot be stopped normally. Unsaved data can be lost.
- Path:
/getServiceInfo - Parameters: common only.
- Returns: base VPS service information.
Known response fields:
| Field | Description |
|---|---|
vm_type |
Hypervisor type, such as ovz or kvm. |
hostname |
VPS hostname. |
node_alias |
Internal physical node name. |
node_location_id |
Location identifier. |
node_location |
Physical location. |
node_datacenter |
Datacenter description. |
location_ipv6_ready |
Whether the current location supports IPv6. |
plan |
Plan name. |
plan_disk |
Disk quota in bytes. |
plan_ram |
RAM in bytes. |
plan_swap |
Swap in bytes. |
os |
Installed operating system. |
email |
Primary account email address. |
plan_monthly_data |
Monthly transfer allowance before applying monthly_data_multiplier. |
data_counter |
Current billing-month transfer usage before applying monthly_data_multiplier. |
monthly_data_multiplier |
Transfer accounting multiplier for the location. |
data_next_reset |
Transfer counter reset time as a Unix timestamp. |
ip_addresses |
Assigned IPv4 addresses and IPv6 /64 subnets. |
ipv6_sit_tunnel_endpoint |
IPv6 SIT tunnel endpoint when present. |
private_ip_addresses |
Assigned private IPv4 addresses. |
ip_nullroutes |
Nullroute details keyed by IP address. |
iso1 |
Mounted ISO image 1. |
iso2 |
Mounted ISO image 2; currently unsupported upstream. |
available_isos |
ISO images available for mounting. |
plan_max_ipv6s |
Maximum IPv6 /64 subnets allowed by the plan. |
rdns_api_available |
Whether rDNS records can be changed through the API. |
plan_private_network_available |
Whether private networking is available on the plan. |
location_private_network_available |
Whether private networking is available at the location. |
ptr |
rDNS records keyed by IP address. |
free_ip_replacement_interval |
Deprecated IP replacement interval value. |
suspended |
Whether the VPS is suspended. |
policy_violation |
Whether an active policy violation needs attention. |
suspension_count |
Suspension count for the current calendar year. |
total_abuse_points |
Abuse points accumulated in the current calendar year. |
max_abuse_points |
Abuse point limit for the plan and calendar year. |
ip_nullroutes can be an empty array, null, or an object keyed by IP. Non-empty entries can include nullroute_timestamp, nullroute_duration_s, and log.
- Path:
/getLiveServiceInfo - Parameters: common only.
- Returns: all
getServiceInfofields plus live status fields. - Notes: This call can take up to 15 seconds.
Common live fields:
| Field | Description |
|---|---|
is_cpu_throttled |
0 when CPU is not throttled, 1 when CPU throttling is active. |
ssh_port |
SSH port. For KVM this may only be returned while the VPS is running. |
OpenVZ-specific fields:
| Field | Description |
|---|---|
vz_status |
Beancounters, load, process, file, socket, memory, and related runtime data. |
vz_quota |
Disk and inode quota data. |
KVM-specific fields:
| Field | Description |
|---|---|
ve_status |
VM state such as Starting, Running, or Stopped. |
ve_mac1 |
MAC address of the primary network interface. |
ve_used_disk_space_b |
Occupied mapped disk space in bytes. |
ve_disk_quota_gb |
Disk image size in GB. |
is_disk_throttled |
0 when disk I/O is not throttled, 1 when throttling is active. |
live_hostname |
Hostname reported from inside the VPS. |
load_average |
Raw load average string. |
mem_available_kb |
Available RAM in KB. |
swap_total_kb |
Total swap in KB. |
swap_available_kb |
Available swap in KB. |
screendump_png_base64 |
Base64-encoded PNG screenshot of the VGA console. |
- Path:
/getAvailableOS - Parameters: common only.
- Returns: available OS templates.
| Field | Description |
|---|---|
installed |
Currently installed operating system. |
templates |
Installable OS templates. |
- Path:
/reinstallOS - Parameters:
os- required OS template fromgetAvailableOS. - Returns: reinstall task details.
- Notes: Destroys current VPS data.
| Field | Description |
|---|---|
rootPassword |
New root password. |
sshPort |
SSH port. |
sshKeys |
SSH keys written to /root/.ssh/authorized_keys. |
sshKeysBrief |
Shortened SSH key display values. |
notificationEmail |
Email address notified when the task completes. |
- Path:
/updateSshKeys - Parameters:
ssh_keys- required per-VM SSH keys. - Returns: common response.
- Notes: These keys are stored in Hypervisor Vault and override account-level keys during future
reinstallOScalls.
- Path:
/getSshKeys - Parameters: common only.
- Returns: per-VM, account-level, and preferred SSH keys.
| Field | Description |
|---|---|
ssh_keys_veid |
Per-VM SSH keys stored in Hypervisor Vault. |
ssh_keys_user |
Account-level SSH keys from the billing portal. |
ssh_keys_preferred |
Keys that reinstallOS will use; per-VM keys take priority. |
shortened_ssh_keys_veid |
Shortened per-VM keys. |
shortened_ssh_keys_user |
Shortened account-level keys. |
shortened_ssh_keys_preferred |
Shortened preferred keys. |
- Path:
/resetRootPassword - Parameters: common only.
- Returns:
password- the new root password.
- Path:
/getUsageGraphs - Parameters: common only.
- Returns: legacy usage graph data.
- Notes: Obsolete upstream. Use
getRawUsageStats.
- Path:
/getRawUsageStats - Parameters: common only.
- Returns: detailed usage statistics from KiwiVM.
Known response fields in this project:
| Field | Description |
|---|---|
vm_type |
VM type, such as kvm or ovz. |
data |
Usage data points. |
Known data point fields:
| Field | Description |
|---|---|
timestamp |
Unix timestamp. |
cpu_usage |
CPU usage percentage. |
network_in_bytes |
Incoming network bytes. |
network_out_bytes |
Outgoing network bytes. |
disk_read_bytes |
Disk read bytes. |
disk_write_bytes |
Disk write bytes. |
- Path:
/getAuditLog - Parameters: common only.
- Returns:
log_entries- audit log entries from KiwiVM.
Known entry fields:
| Field | Description |
|---|---|
timestamp |
Event time as a Unix timestamp. |
requestor_ipv4 |
Requestor IPv4 address encoded as an integer. |
type |
Event type code. |
summary |
Human-readable event summary. |
- Path:
/setHostname - Parameters:
newHostname- required hostname. - Returns: common response.
- Path:
/setPTR - Parameters:
ip- required IP address;ptr- required PTR/rDNS value. - Returns: common response.
- Path:
/iso/mount - Parameters:
iso- required ISO image name. - Returns: common response.
- Notes: The VM must be fully shut down. Restart after changing the mounted ISO.
- Path:
/iso/unmount - Parameters: common only.
- Returns: common response.
- Notes: Removes the ISO boot image and configures the VM to boot from primary storage. The VM must be fully shut down. Restart after changing the boot media.
- Path:
/basicShell/cd - Parameters:
currentDir- required current directory;newDir- required target directory. - Returns:
pwd- directory after the change. - Notes: Supports building a Basic shell style interaction.
- Path:
/basicShell/exec - Parameters:
command- required shell command. - Returns:
error- command exit status;message- command output. - Notes: Runs synchronously inside the VPS.
- Path:
/shellScript/exec - Parameters:
script- required shell script. - Returns:
log- output log file name. - Notes: Runs asynchronously inside the VPS.
- Path:
/snapshot/create - Parameters:
description- optional snapshot description. - Returns:
notificationEmail- email address notified when the task completes.
- Path:
/snapshot/list - Parameters: common only.
- Returns:
snapshots- snapshot list.
Known snapshot fields:
| Field | Description |
|---|---|
fileName |
Snapshot file name used by snapshot operations. |
os |
Snapshot operating system. |
description |
Snapshot description. |
size |
Compressed snapshot size in bytes. |
uncompressed |
Uncompressed snapshot size in bytes. |
md5 |
Snapshot MD5 hash. |
sticky |
Whether the snapshot is protected from automatic purge. |
purgesIn |
Seconds until automatic purge when not sticky. |
downloadLink |
HTTP download link. |
downloadLinkSSL |
HTTPS download link. |
- Path:
/snapshot/delete - Parameters:
snapshot- requiredfileNamefromsnapshot/list. - Returns: common response.
- Path:
/snapshot/restore - Parameters:
snapshot- requiredfileNamefromsnapshot/list. - Returns: common response.
- Notes: Restores the snapshot and overwrites current VPS data.
- Path:
/snapshot/toggleSticky - Parameters:
snapshot- requiredfileName;sticky- required1to set sticky or0to remove sticky. - Returns: common response.
- Notes: Sticky snapshots are not automatically purged.
- Path:
/snapshot/export - Parameters:
snapshot- requiredfileNamefromsnapshot/list. - Returns:
token- transfer token forsnapshot/import.
- Path:
/snapshot/import - Parameters:
sourceVeid- required source VPS ID;sourceToken- required token fromsnapshot/export. - Returns: common response.
- Notes: Imports a snapshot from another instance.
- Path:
/backup/list - Parameters: common only.
- Returns:
backups- automatic backup list.
Known backup fields:
| Field | Description |
|---|---|
backupToken |
Backup token. Some responses expose this as the backup map key. |
size |
Backup size in bytes. |
os |
Backup operating system. |
md5 |
Backup MD5 hash. |
timestamp |
Backup creation time as a Unix timestamp. |
- Path:
/backup/copyToSnapshot - Parameters:
backupToken- required token frombackup/list. - Returns: common response.
- Notes: Copies an automatic backup into a restorable snapshot.
- Path:
/ipv6/add - Parameters: common only.
- Returns:
assigned_subnet- newly assigned IPv6 /64 subnet.
- Path:
/ipv6/delete - Parameters:
ip- required IPv6 /64 subnet. - Returns: common response.
- Notes: Releases the specified IPv6 /64 subnet.
- Path:
/migrate/getLocations - Parameters: common only.
- Returns: migration target metadata.
| Field | Description |
|---|---|
currentLocation |
Current location ID. |
locations |
Location IDs available for migration. |
descriptions |
Friendly location descriptions keyed by location ID. |
dataTransferMultipliers |
Transfer allowance multipliers keyed by location ID. |
- Path:
/migrate/start - Parameters:
location- required target location ID frommigrate/getLocations. - Returns: migration task details.
- Notes: Replaces all IPv4 addresses on the VPS.
| Field | Description |
|---|---|
notificationEmail |
Email address notified when the task completes. |
newIps |
New IP addresses assigned to the VPS. |
- Path:
/cloneFromExternalServer - Parameters:
externalServerIP- required source IP;externalServerSSHport- required SSH port;externalServerRootPassword- required root password. - Returns: common response.
- Notes: OpenVZ only. Clones a remote server or VPS into this instance.
- Path:
/getSuspensionDetails - Parameters: common only.
- Returns: suspension status and abuse evidence.
| Field | Description |
|---|---|
suspension_count |
Suspension count for the current calendar year. |
total_abuse_points |
Abuse points accumulated in the current calendar year. |
max_abuse_points |
Abuse point limit for the plan and calendar year. |
suspensions |
Outstanding suspension issues. |
evidence |
Complaint text or issue details keyed by evidence record ID. |
Known suspension fields:
| Field | Description |
|---|---|
record_id |
Case ID used by unsuspend. |
flag |
Abuse type. |
is_soft |
1 when the issue can be cleared through API, 0 when support contact is required. |
evidence_record_id |
Evidence record ID. |
abuse_points |
Abuse points added by the case. |
- Path:
/getPolicyViolations - Parameters: common only.
- Returns: active policy violations.
| Field | Description |
|---|---|
total_abuse_points |
Abuse points accumulated in the current calendar year. |
max_abuse_points |
Abuse point limit for the plan and calendar year. |
policy_violations |
Active policy violations that need attention. |
Known policy violation fields:
| Field | Description |
|---|---|
record_id |
Case ID used by resolvePolicyViolation. |
timestamp |
Creation time as a Unix timestamp. |
suspend_at |
Time when the service will be suspended if unresolved. |
flag |
Violation type. |
is_soft |
1 when the issue can be resolved through API, 0 when support contact is required. |
abuse_points |
Abuse points added by the violation. |
evidence_data |
Violation details. |
- Path:
/unsuspend - Parameters:
record_id- required case ID fromgetSuspensionDetails. - Returns: common response.
- Notes: Clears the abuse issue and unsuspends the VPS when the case is API-resolvable.
- Path:
/resolvePolicyViolation - Parameters:
record_id- required case ID fromgetPolicyViolations. - Returns: common response.
- Notes: Marks the policy violation as resolved to avoid service suspension.
- Path:
/getRateLimitStatus - Parameters: common only.
- Returns: current API rate limit budget.
| Field | Description |
|---|---|
remaining_points_15min |
Remaining points in the current 15-minute interval. |
remaining_points_24h |
Remaining points in the current 24-hour interval. |
- Path:
/privateIp/getAvailableIps - Parameters: common only.
- Returns:
available_ips- private IPv4 addresses that can be assigned.
- Path:
/privateIp/assign - Parameters:
ip- optional private IPv4 address. If omitted, KiwiVM assigns one automatically. - Returns:
assigned_ips- private IPv4 addresses assigned by the request.
- Path:
/privateIp/delete - Parameters:
ip- required private IPv4 address. - Returns: common response.
- Path:
/kiwivm/getNotificationPreferences - Parameters: common only.
- Returns: notification settings and their current state.
| Field | Description |
|---|---|
email_preferences |
Available notification preferences and state. |
notificationEmail |
Email address receiving notifications. |
Known preference fields:
| Field | Description |
|---|---|
friendly_description |
Human-readable preference description. |
is_enabled |
Current enabled state. |
changed_timestamp |
Last change time as a Unix timestamp. |
s_value |
Stored preference value. |
- Path:
/kiwivm/setNotificationPreferences - Parameters:
json_notification_preferences- required JSON object mapping preference IDs to0or1. - Returns: submitted changes, actual changes, and preference descriptions.
| Field | Description |
|---|---|
submitted_email_preferences |
Preferences submitted in the request. |
updated_email_preferences |
Preferences changed by KiwiVM. |
friendly_descriptions |
Friendly descriptions for preference IDs. |