第二家中转运营商已在 Chișinău 上线——混合带宽容量达 20 Gbps。 20 Gbps 混合上行现已上线 为什么选择摩尔多瓦

一个令牌,面板能做的,API 都能做

基于 HTTPS 的 JSON 接口,无需 SDK,无需单独的开发者账户,也不存在只在面板中出现、这里却没有的接口。

创建服务器

curl -X POST https://api.vpsoffshore.com/v1/servers \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"plan":"reef","image":"debian-13"}'

会立即返回一个配置 ID。大约六十秒后,机器即可通过 SSH 响应,且地址会在凭据发送之前完成路由。

20 个端点

一切内容,分为五组

基础 URL https://api.vpsoffshore.com/v1。路径中标注版本号;即使 v2 已经推出,v1 仍将继续可用,其停用日期会提前一年公布。

服务器

GET /servers 账户下的每项服务,含状态、套餐与地址。
POST /servers 创建一个即可,会立即返回一个配置 ID;大约一分钟后服务器即可访问。
GET /servers/{id} 单个服务,包含最近一小时的实时资源使用情况。
PATCH /servers/{id} 更改套餐。只要磁盘条件允许,无需重装即可调整规格。
DELETE /servers/{id} 销毁即可。磁盘会保留 14 天,随后清除后再重新分配。
POST /servers/{id}/actions reboot · shutdown · start · rebuild · rescue · reset-password.

存储

GET /servers/{id}/snapshots 某项服务的快照,按最新优先排列。
POST /servers/{id}/snapshots 拍摄一份快照,体量精简,速度快,也不会让磁盘占用翻倍。
POST /snapshots/{id}/restore 原地恢复,或恢复到相同套餐及以上规格的另一台服务器。
DELETE /snapshots/{id} 删除一个快照。

网络

GET /servers/{id}/addresses 已路由至某项服务的地址,涵盖 v4 和 v6。
POST /servers/{id}/addresses 申请额外的地址,或一个 /29。
PUT /addresses/{ip}/rdns 设置反向 DNS。一分钟内即可生效,无需等待下一次区域刷新。
GET /servers/{id}/bandwidth 流量统计,仅供参考——没有额度上限可言。

目录

GET /plans 每个套餐及其规格和价格,均来自本站页面所用的同一数据源。
GET /images 可用镜像与 ISO,包括您上传的镜像。
POST /images 通过 URL 上传 ISO,启动时自带控制台。

账单

GET /invoices 账单记录,含已付款与未付款项,并附币种与链上交易信息。
POST /invoices/{id}/pay 为 8 种受理币种之一生成付款地址。
GET /credits SLA 补偿发放记录,以及触发每一笔补偿的具体事故。

客户面板能做的一切,这里都能做到;这里有的,客户面板也一样都不缺。如果两者出现不一致,那就是一个缺陷;请在客户面板中告诉我们,我们会修复它,而不是把它写成预期行为。

实际运作方式

您会在一小时内注意到的四项决定

评判一个 API,要看它的异常路径,而不是正常路径。下面四点中有三点,讲的都是出问题时会发生什么。

一个令牌,在客户面板中生成

以持有者令牌形式发送。您可以将其限定为只读,或限定给单个服务;令牌与您的密码相互独立,吊销一个令牌也绝不会让您被登出。

JSON 输入,JSON 输出,无需 SDK

纯粹的 HTTPS,没有自定义信封、没有 XML 回退、也没有签名仪式。只要 curl 能做到的,您就已经拥有一个客户端。官方提供 Go、Python 和 TypeScript 库,但都并非必需。

不会被您意外触发的速率限制

每个令牌每分钟 600 次请求,创建类调用为 60 次。每次响应都会在请求头中携带剩余配额,超出后返回 429 及需等待的秒数——绝不静默丢弃。

会告诉您下一步该做什么的错误信息

4xx 状态码携带机器可读的代码、人类可读的说明和出错的字段。相比让您去猜一条简短的错误信息,我们更愿意返回详尽的错误。

只需要写一次的两件事

身份验证方式,以及错误响应的样子

两者都值得在您编写第一次调用之前阅读,而不是等到第一次失败之后。

验证身份

curl https://api.vpsoffshore.com/v1/servers \
  -H "Authorization: Bearer $TOKEN"

令牌在客户面板中创建,可限定为只读权限或仅适用于单个服务。它们与您的密码相互独立,撤销某个令牌不会使您在任何地方被登出。

查看速率限制

X-RateLimit-Remaining: 574
X-RateLimit-Reset: 41

每一次响应都包含该信息,不仅仅是失败的那一次。超出限制时返回 429,并附带需要等待的秒数,绝不会静默丢弃,也绝不会截断响应。

错误信息会指明具体字段

{"error":"plan_unknown",
 "message":"No plan named 'reff'. Did you mean 'reef'?",
 "field":"plan"}

机器可读的错误代码、面向人类的说明句,以及出错的字段。详尽的错误信息,好过让您去猜的简短提示。

查询构建状态

curl https://api.vpsoffshore.com/v1/servers/$ID \
  -H "Authorization: Bearer $TOKEN" | jq .state

状态从 building 变为 running。在创建任何资源之前,您无需注册任何 webhook,且每秒轮询一次也在限制范围之内。

无需申请

令牌就在客户面板中,而客户面板会随第一台服务器一起提供

无需开发者账户,无需审批,也没有行为与生产环境不同的沙盒环境。

语言

用您的语言阅读本网站

28 个语言目前已上线,其余语言仍在翻译中。