所有端点均返回 application/json。错误遵循 RFC 7807(Problem+JSON)。每个响应都携带 X-Request-Id 响应头,便于与服务器端审计日志进行关联。
| Method | Path | 权限范围 | 用途 |
|---|---|---|---|
| GET | /v1/health | public | 无需身份验证的健康检查。 |
| GET | /v1/me | any | 自身账户信息与密钥元数据。 |
| GET | /v1/products | read:products | 所有公开销售产品的列表与价格。 |
| GET | /v1/products/{id} | read:products | 产品详情,包含配置选项。 |
| POST | /v1/orders | write:orders | 提交订单。必须携带 Idempotency-Key。 |
| GET | /v1/orders/{id} | read:orders | 自身订单的状态。 |
| GET | /v1/services | read:services | 自身服务列表(支持分页)。 |
| GET | /v1/services/{id} | read:services | 自身某项服务的详情。 |
| GET | /v1/services/{id}/credentials | read:credentials | 服务凭据(独立权限范围,全程审计)。 |
| POST | /v1/services/{id}/actions | write:services | 服务操作:start、stop、reboot、reinstall、suspend、unsuspend、terminate。 |
| GET | /v1/billing/balance | read:billing | 账户余额。 |
| GET | /v1/billing/invoices | read:billing | 您的发票列表(支持分页)。 |
| GET | /v1/billing/invoices/{id}/pdf | read:billing | 发票 PDF。 |
| GET | /v1/webhooks | read:webhooks | 当前 Webhook URL。 |
| PUT | /v1/webhooks | write:webhooks | 设置或取消 Webhook URL。 |
幂等性
POST /v1/orders 与 POST /v1/services/{id}/actions 必须携带 Idempotency-Key 请求头(1 至 80 个字符,取自 [A-Za-z0-9_.-])。服务器会将响应与请求体哈希缓存 24 小时;使用相同 Key 与相同请求体的第二次请求将返回相同响应,使用相同 Key 但请求体不同的第二次请求会以 409 idempotency_conflict 被拒绝。
速率限制
默认每个密钥 60 次/分钟(允许 20 次突发),每日 5000 次;此外每个 IP 600 次/分钟,与密钥独立计算。超过限制时返回 HTTP 429 并附带 Retry-After 响应头。响应头 X-RateLimit-Remaining 与 X-RateLimit-Reset 实时反映当前状态。

