<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=KiwiVM_API_%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97</id>
	<title>KiwiVM API 自动化入门指南 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=KiwiVM_API_%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=KiwiVM_API_%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&amp;action=history"/>
	<updated>2026-04-07T00:27:03Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=KiwiVM_API_%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&amp;diff=1467&amp;oldid=prev</id>
		<title>Root：​创建页面，内容为“= 一、前言 = KiwiVM 控制面板的大多数功能，其实都可以通过 API 接口来实现。搬瓦工官方对此的说法是：“Whether you want to automatically create nightly snapshots, query status of your VPS, or develop a complete replacement for the KiwiVM panel, this page is for you.” 简单来说，不管你是想定时自动备份、查询 VPS 状态，还是想自己写一套管理程序来替代 KiwiVM 面板，都可以通过 API 实…”</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=KiwiVM_API_%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&amp;diff=1467&amp;oldid=prev"/>
		<updated>2026-02-19T15:28:19Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“= 一、前言 = KiwiVM 控制面板的大多数功能，其实都可以通过 API 接口来实现。搬瓦工官方对此的说法是：“Whether you want to automatically create nightly snapshots, query status of your VPS, or develop a complete replacement for the KiwiVM panel, this page is for you.” 简单来说，不管你是想定时自动备份、查询 VPS 状态，还是想自己写一套管理程序来替代 KiwiVM 面板，都可以通过 API 实…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 一、前言 =&lt;br /&gt;
KiwiVM 控制面板的大多数功能，其实都可以通过 API 接口来实现。搬瓦工官方对此的说法是：“Whether you want to automatically create nightly snapshots, query status of your VPS, or develop a complete replacement for the KiwiVM panel, this page is for you.” 简单来说，不管你是想定时自动备份、查询 VPS 状态，还是想自己写一套管理程序来替代 KiwiVM 面板，都可以通过 API 实现。&lt;br /&gt;
&lt;br /&gt;
对于有一定编程基础的朋友，搬瓦工的 API 使用起来其实很简单——本质上就是发送一个 HTTP 请求，然后收到一个 JSON 格式的返回结果。没有复杂的 OAuth 认证流程，也不需要 SDK，用 curl、wget、Python、PHP 甚至浏览器都能调用。本文就从零开始，介绍 KiwiVM API 的获取方法、调用方式、常用接口以及实用自动化场景。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ℹ️ &amp;#039;&amp;#039;&amp;#039;提示：&amp;#039;&amp;#039;&amp;#039;KiwiVM API 适合有一定编程基础的用户。如果你平时只是用 KiwiVM 面板做一些简单操作（重启、重装系统等），不需要专门研究 API，直接用面板就行。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 二、获取 API KEY 和 VEID =&lt;br /&gt;
调用 KiwiVM API 需要两个参数：VEID 和 API KEY。这两个参数是每台 VPS 独立的，也就是说如果你有多台搬瓦工 VPS，每台的 VEID 和 API KEY 都不一样。&lt;br /&gt;
&lt;br /&gt;
== 2.1 通过 KiwiVM 面板获取 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;第一步：&amp;#039;&amp;#039;&amp;#039;登录搬瓦工官网（bwh81.net），进入 Services → My Services，点击对应 VPS 的 KiwiVM Control Panel 按钮进入面板。&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;第二步：&amp;#039;&amp;#039;&amp;#039;在 KiwiVM 面板左侧菜单找到 API 选项，点击进入。&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;第三步：&amp;#039;&amp;#039;&amp;#039;点击 Show API Key 按钮，即可查看该 VPS 的 API KEY（一个以 private_ 开头的随机字符串）。页面上同时会显示 VEID（一个 7 位数的数字）。&lt;br /&gt;
&lt;br /&gt;
如果需要重置 API KEY（比如怀疑密钥泄露），可以点击 Reset API Key 按钮，重置后旧的 API KEY 立即失效。&lt;br /&gt;
&lt;br /&gt;
== 2.2 批量导出所有 VPS 的 API KEY ==&lt;br /&gt;
如果你有多台搬瓦工 VPS，逐个登录 KiwiVM 面板查看 API KEY 比较麻烦。搬瓦工官网后台提供了一个批量导出功能：在搬瓦工官网后台的 Services → My Services 页面，找到 Export all services with private API keys 选项，可以导出一个 CSV 文件，里面包含了你所有 VPS 的 VEID 和 API KEY。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;API KEY 相当于你 VPS 的管理密码，拥有 API KEY 的人可以通过 API 对你的 VPS 进行重启、重装系统、执行命令等操作。请妥善保管，不要泄露给不信任的人。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 三、API 调用基础 =&lt;br /&gt;
&lt;br /&gt;
== 3.1 请求格式 ==&lt;br /&gt;
KiwiVM API 的调用方式非常直接：向指定 URL 发送 HTTP 请求，带上 VEID 和 API KEY 作为参数即可。支持 GET 和 POST 两种方式传参。&lt;br /&gt;
&lt;br /&gt;
API 基础地址如下：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/{API接口名称}?veid={VEID}&amp;amp;api_key={API_KEY}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
举个例子，如果要查询 VPS 的基本信息，完整的请求 URL 是这样的：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/getServiceInfo?veid=1234567&amp;amp;api_key=private_xxxxxxxxxxxx&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3.2 返回格式 ==&lt;br /&gt;
所有 API 调用的返回结果都是 JSON 格式。每个返回结果都包含一个 error 字段，如果 error 为 0 表示调用成功，否则请查看 message 字段了解具体错误原因。示例：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|// 成功返回示例（getServiceInfo）&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;error&amp;quot;: 0,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;hostname&amp;quot;: &amp;quot;my-vps&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;node_datacenter&amp;quot;: &amp;quot;USCA_6&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;ip_addresses&amp;quot;: [&amp;quot;1.2.3.4&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;plan_monthly_data&amp;quot;: 1000000000000,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;data_counter&amp;quot;: 52428800,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;os&amp;quot;: &amp;quot;ubuntu-24.04-x86_64&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;ve_status&amp;quot;: &amp;quot;Running&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// 失败返回示例&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;error&amp;quot;: 700005,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;message&amp;quot;: &amp;quot;Authentication failure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3.3 常见错误码 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;错误码&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;含义&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;解决方法&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|700005&lt;br /&gt;
|Authentication failure（认证失败）&lt;br /&gt;
|VEID 或 API KEY 不正确，核对参数&lt;br /&gt;
|-&lt;br /&gt;
|700000&lt;br /&gt;
|VPS is not running / stopped&lt;br /&gt;
|VPS 未运行，需先启动&lt;br /&gt;
|-&lt;br /&gt;
|700003&lt;br /&gt;
|VPS is already running&lt;br /&gt;
|已在运行中，无需重复启动&lt;br /&gt;
|-&lt;br /&gt;
|rate limit&lt;br /&gt;
|请求过于频繁，被限流&lt;br /&gt;
|等待几分钟后重试，减少调用频率&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ℹ️ &amp;#039;&amp;#039;&amp;#039;提示：&amp;#039;&amp;#039;&amp;#039;KiwiVM API 有限流机制，短时间内调用太频繁会被临时屏蔽。可以通过 getRateLimitStatus 接口查询当前限流状态。建议调用间隔不要低于 1 秒。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 四、常用 API 接口整理 =&lt;br /&gt;
下面按功能分类整理 KiwiVM API 的主要接口。这些接口基本覆盖了 KiwiVM 面板上能做的所有操作。&lt;br /&gt;
&lt;br /&gt;
== 4.1 VPS 信息查询 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;接口名称&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;说明&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|getServiceInfo&lt;br /&gt;
|获取 VPS 基本信息：IP、端口、操作系统、流量使用、机房位置等&lt;br /&gt;
|-&lt;br /&gt;
|getLiveServiceInfo&lt;br /&gt;
|获取 VPS 实时状态（含 getServiceInfo 全部字段），返回磁盘使用、运行状态等实时数据（调用可能需 15 秒）&lt;br /&gt;
|-&lt;br /&gt;
|getRawUsageStats&lt;br /&gt;
|获取详细统计数据，对应 KiwiVM 面板的 Detailed Statistics 页面&lt;br /&gt;
|-&lt;br /&gt;
|getAvailableOS&lt;br /&gt;
|获取当前可用的操作系统列表（用于重装系统）&lt;br /&gt;
|-&lt;br /&gt;
|getSuspensionDetails&lt;br /&gt;
|查询当前是否有暂停情况及具体原因&lt;br /&gt;
|-&lt;br /&gt;
|getAuditLog&lt;br /&gt;
|获取 KiwiVM 操作日志，对应面板的 Audit log 功能&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4.2 电源管理 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;接口名称&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;说明&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|启动 VPS&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|正常停止 VPS&lt;br /&gt;
|-&lt;br /&gt;
|restart&lt;br /&gt;
|重启 VPS&lt;br /&gt;
|-&lt;br /&gt;
|kill&lt;br /&gt;
|强制停止 VPS（用于 VPS 卡死无法正常停止的情况，未保存数据会丢失）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4.3 备份与快照 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;接口名称&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;说明&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|snapshot/create&lt;br /&gt;
|创建快照，参数 description 为快照描述&lt;br /&gt;
|-&lt;br /&gt;
|snapshot/list&lt;br /&gt;
|获取快照列表（包含文件名、大小、MD5、下载链接等）&lt;br /&gt;
|-&lt;br /&gt;
|snapshot/delete&lt;br /&gt;
|删除指定快照，参数 snapshot 为文件名&lt;br /&gt;
|-&lt;br /&gt;
|snapshot/restore&lt;br /&gt;
|恢复指定快照，参数 snapshot 为文件名&lt;br /&gt;
|-&lt;br /&gt;
|backup/list&lt;br /&gt;
|获取自动备份列表（系统定期自动备份）&lt;br /&gt;
|-&lt;br /&gt;
|backup/copyToSnapshot&lt;br /&gt;
|将自动备份转换为快照（方便手动管理）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4.4 系统与网络管理 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;接口名称&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;说明&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|reinstallOS&lt;br /&gt;
|重装操作系统，参数 os 为系统模板名称&lt;br /&gt;
|-&lt;br /&gt;
|resetRootPassword&lt;br /&gt;
|重置 root 密码，新密码通过返回结果获取&lt;br /&gt;
|-&lt;br /&gt;
|setHostname&lt;br /&gt;
|设置主机名，参数 newHostname&lt;br /&gt;
|-&lt;br /&gt;
|setPTR&lt;br /&gt;
|设置反向 DNS 记录，参数 ip 和 ptr&lt;br /&gt;
|-&lt;br /&gt;
|ipv6/add&lt;br /&gt;
|分配新的 IPv6 地址&lt;br /&gt;
|-&lt;br /&gt;
|migrate/getLocations&lt;br /&gt;
|获取可迁移的机房列表&lt;br /&gt;
|-&lt;br /&gt;
|migrate/start&lt;br /&gt;
|开始迁移机房，参数 location 为目标机房 ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4.5 Shell 命令执行 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;接口名称&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;说明&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|basicShell/exec&lt;br /&gt;
|在 VPS 上同步执行 Shell 命令，参数 command，返回执行结果&lt;br /&gt;
|-&lt;br /&gt;
|shellScript/exec&lt;br /&gt;
|在 VPS 上异步执行 Shell 脚本，参数 script，返回日志文件名&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;basicShell/exec 和 shellScript/exec 这两个接口的权限非常高，可以直接在你的 VPS 上执行任意命令。这也是为什么必须保护好 API KEY 的原因。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 五、实战调用示例 =&lt;br /&gt;
&lt;br /&gt;
== 5.1 使用 curl / wget 调用 ==&lt;br /&gt;
最简单的调用方式，在终端直接运行一条命令即可：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|# 使用 wget 查询 VPS 信息&lt;br /&gt;
&lt;br /&gt;
wget -qO- &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/getServiceInfo?veid=YOUR_VEID&amp;amp;api_key=YOUR_API_KEY&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 使用 curl 重启 VPS&lt;br /&gt;
&lt;br /&gt;
curl &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/restart?veid=YOUR_VEID&amp;amp;api_key=YOUR_API_KEY&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 使用 curl 创建快照&lt;br /&gt;
&lt;br /&gt;
curl &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/snapshot/create?veid=YOUR_VEID&amp;amp;api_key=YOUR_API_KEY&amp;amp;description=manual_backup&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5.2 使用 Python 调用 ==&lt;br /&gt;
用 Python 调用也很简单，使用标准库或第三方 requests 库都可以：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|import requests&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEID = &amp;#039;YOUR_VEID&amp;#039;&lt;br /&gt;
&lt;br /&gt;
API_KEY = &amp;#039;YOUR_API_KEY&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASE_URL = &amp;#039;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def call_api(action, params=None):&lt;br /&gt;
&lt;br /&gt;
   url = f&amp;#039;{BASE_URL}/{action}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
   data = {&amp;#039;veid&amp;#039;: VEID, &amp;#039;api_key&amp;#039;: API_KEY}&lt;br /&gt;
&lt;br /&gt;
   if params:&lt;br /&gt;
&lt;br /&gt;
       data.update(params)&lt;br /&gt;
&lt;br /&gt;
   r = requests.get(url, params=data)&lt;br /&gt;
&lt;br /&gt;
   return r.json()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 查询 VPS 信息&lt;br /&gt;
&lt;br /&gt;
info = call_api(&amp;#039;getServiceInfo&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
print(json.dumps(info, indent=2))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 重启 VPS&lt;br /&gt;
&lt;br /&gt;
result = call_api(&amp;#039;restart&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
print(result)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 创建快照&lt;br /&gt;
&lt;br /&gt;
result = call_api(&amp;#039;snapshot/create&amp;#039;, {&amp;#039;description&amp;#039;: &amp;#039;nightly_backup&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
print(result)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5.3 使用 PHP 调用 ==&lt;br /&gt;
搬瓦工官方给出的示例是 PHP 代码，以下是最基本的调用方式：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$veid = &amp;#039;YOUR_VEID&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
$api_key = &amp;#039;YOUR_API_KEY&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// 查询 VPS 信息&lt;br /&gt;
&lt;br /&gt;
$url = &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/getServiceInfo?veid={$veid}&amp;amp;api_key={$api_key}&amp;lt;/nowiki&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$info = json_decode(file_get_contents($url));&lt;br /&gt;
&lt;br /&gt;
print_r($info);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// 使用 curl 进行 POST 请求（适合需要传递更多参数的场景）&lt;br /&gt;
&lt;br /&gt;
$ch = curl_init();&lt;br /&gt;
&lt;br /&gt;
curl_setopt($ch, CURLOPT_URL, &amp;#039;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/restart&amp;#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
&lt;br /&gt;
curl_setopt($ch, CURLOPT_POSTFIELDS, [&amp;#039;veid&amp;#039; =&amp;gt; $veid, &amp;#039;api_key&amp;#039; =&amp;gt; $api_key]);&lt;br /&gt;
&lt;br /&gt;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
&lt;br /&gt;
$result = json_decode(curl_exec($ch));&lt;br /&gt;
&lt;br /&gt;
curl_close($ch);&lt;br /&gt;
&lt;br /&gt;
print_r($result);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 六、实用自动化场景 =&lt;br /&gt;
光会调用 API 还不够，关键是要知道拿它来做什么。下面介绍几个实用的自动化场景。&lt;br /&gt;
&lt;br /&gt;
== 6.1 定时自动快照备份 ==&lt;br /&gt;
KiwiVM 面板本身有自动备份功能（Backups），但备份周期是系统自动计算的，用户无法自定义。如果你希望每天晚上自动创建一个快照，可以用 crontab + API 来实现：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 文件名: auto_snapshot.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 功能: 自动创建 KiwiVM 快照&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEID=&amp;quot;YOUR_VEID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
API_KEY=&amp;quot;YOUR_API_KEY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DATE=$(date +%Y%m%d_%H%M%S)&lt;br /&gt;
&lt;br /&gt;
DESC=&amp;quot;auto_backup_${DATE}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RESULT=$(curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/snapshot/create?veid=${VEID}&amp;amp;api_key=${API_KEY}&amp;amp;description=${DESC}&amp;lt;/nowiki&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[$(date)] Snapshot result: ${RESULT}&amp;quot; &amp;gt;&amp;gt; /var/log/bwg_snapshot.log&lt;br /&gt;
|}&lt;br /&gt;
然后添加到 crontab 中，每天凌晨 3 点执行：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |# 编辑 crontab&lt;br /&gt;
&lt;br /&gt;
crontab -e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 添加以下行（每天 03:00 执行）&lt;br /&gt;
&lt;br /&gt;
0 3 * * * /root/auto_snapshot.sh&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ℹ️ &amp;#039;&amp;#039;&amp;#039;提示：&amp;#039;&amp;#039;&amp;#039;搬瓦工快照有数量限制，建议配合 snapshot/list 和 snapshot/delete 接口实现自动轮转，保留最近 N 个快照，删除更早的。&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 6.2 VPS 状态监控与告警 ==&lt;br /&gt;
通过定期调用 getLiveServiceInfo 接口，可以监控 VPS 的运行状态，当 VPS 异常停止时自动发送通知或尝试自动重启：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 文件名: monitor_vps.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 功能: 监控 VPS 状态，停止时自动重启&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEID=&amp;quot;YOUR_VEID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
API_KEY=&amp;quot;YOUR_API_KEY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; 查询 VPS 状态&lt;br /&gt;
&lt;br /&gt;
STATUS=$(curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/getLiveServiceInfo?veid=${VEID}&amp;amp;api_key=${API_KEY}&amp;lt;/nowiki&amp;gt;&amp;quot; | python3 -c &amp;quot;import sys,json; print(json.load(sys.stdin).get(&amp;#039;ve_status&amp;#039;,&amp;#039;Unknown&amp;#039;))&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$STATUS&amp;quot; != &amp;quot;Running&amp;quot; ]; then&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;[$(date)] VPS status: ${STATUS}, attempting restart...&amp;quot; &amp;gt;&amp;gt; /var/log/bwg_monitor.log&lt;br /&gt;
&lt;br /&gt;
   curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/start?veid=${VEID}&amp;amp;api_key=${API_KEY}&amp;lt;/nowiki&amp;gt;&amp;quot; &amp;gt;&amp;gt; /var/log/bwg_monitor.log&lt;br /&gt;
&lt;br /&gt;
   # 可以在这里加上邮件/Telegram 通知&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
配合 crontab 每 5 分钟执行一次即可实现基本的健康监控。当然，更完善的方案可以结合 Python 脚本和邮件通知来做。&lt;br /&gt;
&lt;br /&gt;
== 6.3 流量使用监控 ==&lt;br /&gt;
getServiceInfo 接口返回的数据中包含 plan_monthly_data（套餐月流量）和 data_counter（已用流量）两个字段，单位是字节。可以用这两个字段计算流量使用百分比，当超过阈值时发出告警，避免因流量耗尽导致 VPS 被暂停。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|import requests&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEID = &amp;#039;YOUR_VEID&amp;#039;&lt;br /&gt;
&lt;br /&gt;
API_KEY = &amp;#039;YOUR_API_KEY&amp;#039;&lt;br /&gt;
&lt;br /&gt;
THRESHOLD = 0.85  # 流量使用超过 85% 时告警&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
info = requests.get(&lt;br /&gt;
&lt;br /&gt;
   f&amp;#039;&amp;lt;nowiki&amp;gt;https://api.64clouds.com/v1/getServiceInfo?veid={VEID}&amp;amp;api_key={API_KEY}&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
).json()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
monthly = info[&amp;#039;plan_monthly_data&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
used = info[&amp;#039;data_counter&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
usage = used / monthly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(f&amp;#039;流量使用: {used/1e9:.2f} GB / {monthly/1e9:.0f} GB ({usage:.1%})&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if usage &amp;gt; THRESHOLD:&lt;br /&gt;
&lt;br /&gt;
   print(f&amp;#039;警告: 流量已使用 {usage:.1%}，请注意控制用量!&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
   # 发送邮件或 Telegram 消息通知&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 6.4 批量管理多台 VPS ==&lt;br /&gt;
如果你有多台搬瓦工 VPS，可以将所有 VPS 的 VEID 和 API KEY 保存在一个配置文件中（或直接用导出的 CSV），然后写一个脚本遍历所有 VPS，批量查询状态、批量创建快照等。实现了开头提到的 “develop a complete replacement for the KiwiVM panel”。&lt;br /&gt;
&lt;br /&gt;
社区也有一些现成的工具可以直接使用，比如 iOS 上的“瓦工助手”、安卓上的“Bandwagon 控制台”等 APP，原理都是调用 KiwiVM API 实现的。当然，第三方 APP 的安全性需要自行评估。&lt;br /&gt;
&lt;br /&gt;
= 七、API 与 KiwiVM 面板功能对照 =&lt;br /&gt;
下表整理了 KiwiVM 面板主要功能与对应 API 接口的关系，方便大家查找。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;KiwiVM 面板功能&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;对应 API 接口&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;备注&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Main Controls&lt;br /&gt;
|getServiceInfo&lt;br /&gt;
|查看 IP、端口、状态、流量等&lt;br /&gt;
|-&lt;br /&gt;
|Detailed Statistics&lt;br /&gt;
|getRawUsageStats&lt;br /&gt;
|CPU、网络、磁盘统计数据&lt;br /&gt;
|-&lt;br /&gt;
|Root shell – basic&lt;br /&gt;
|basicShell/exec&lt;br /&gt;
|同步执行命令&lt;br /&gt;
|-&lt;br /&gt;
|Install new OS&lt;br /&gt;
|reinstallOS&lt;br /&gt;
|需先调用 getAvailableOS&lt;br /&gt;
|-&lt;br /&gt;
|Root password modification&lt;br /&gt;
|resetRootPassword&lt;br /&gt;
|返回新密码&lt;br /&gt;
|-&lt;br /&gt;
|Snapshots&lt;br /&gt;
|snapshot/*&lt;br /&gt;
|create/list/delete/restore&lt;br /&gt;
|-&lt;br /&gt;
|Backups&lt;br /&gt;
|backup/*&lt;br /&gt;
|list / copyToSnapshot&lt;br /&gt;
|-&lt;br /&gt;
|Migrate to another DC&lt;br /&gt;
|migrate/*&lt;br /&gt;
|getLocations / start&lt;br /&gt;
|-&lt;br /&gt;
|Audit log&lt;br /&gt;
|getAuditLog&lt;br /&gt;
|操作日志审计&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 八、常见问题与注意事项 =&lt;br /&gt;
&lt;br /&gt;
== 8.1 调用报 Authentication failure ==&lt;br /&gt;
最常见的问题。通常是 VEID 或 API KEY 填错了，检查以下几点：VEID 是一串纯数字，API KEY 以 private_ 开头；确认没有多余的空格或换行符；如果最近重置过 API KEY，需要更新为新的 KEY。&lt;br /&gt;
&lt;br /&gt;
== 8.2 调用无响应或超时 ==&lt;br /&gt;
可能是网络问题导致无法访问 api.64clouds.com。可以尝试更换 DNS，或者在其他网络环境下重试。另外，getLiveServiceInfo 接口本身就比较慢，可能需要 15 秒才返回结果，这是正常的。&lt;br /&gt;
&lt;br /&gt;
== 8.3 被限流了怎么办 ==&lt;br /&gt;
短时间内调用 API 太频繁会触发限流，API 会丢弃你的请求。解决方法很简单：等待几分钟后重试，并降低调用频率。可以通过 getRateLimitStatus 接口查询当前的限流状态。建议在脚本中加上适当的 sleep 间隔。&lt;br /&gt;
&lt;br /&gt;
== 8.4 API KEY 安全问题 ==&lt;br /&gt;
几个安全建议：不要将 API KEY 硬编码在公开的代码仓库中（比如 GitHub）；可以使用环境变量或配置文件来存储 API KEY；如果怀疑密钥泄露，立即在 KiwiVM 面板点击 Reset API Key 重置密钥；所有通过 API 进行的操作都会记录在 KiwiVM 面板的 Audit log 中，定期查看审计日志可以发现异常操作。&lt;br /&gt;
&lt;br /&gt;
= 九、总结 =&lt;br /&gt;
KiwiVM API 的设计很简洁，认证方式直接，调用方法简单，不需要额外的 SDK 或库，用 curl 一行命令就能完成大多数操作。对于有编程基础的用户来说，利用 API 可以实现很多自动化场景：定时备份、状态监控、流量告警、批量管理等。&lt;br /&gt;
&lt;br /&gt;
对于普通用户，日常管理 VPS 用 KiwiVM 面板就完全足够了，不需要专门研究 API。但如果你有自动化的需求，或者单纯想折腾写点代码，搬瓦工的 API 接口是很好的练手素材。&lt;br /&gt;
&lt;br /&gt;
[https://www.banwagong.net/ 搬瓦工中文网] — 专业的搬瓦工中文教程站&lt;br /&gt;
[[Category:200 KiwiVM 简介 — KiwiVM Introduction]]&lt;/div&gt;</summary>
		<author><name>Root</name></author>
	</entry>
</feed>