すべてのエンドポイントは 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、cancel(請求期間の終了時に解約)、cancel_revoke。 |
| 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 ヘッダー([A-Za-z0-9_.-] で構成される 1 文字以上 80 文字以下の文字列)が必須です。このキーはメソッド、パス、ボディに紐付けられます。同じリクエストを同じキーで 1 時間以内に繰り返すと、保存済みのレスポンスが返されます。1 時間を過ぎると reason replay_stale 付きの 410 が返されるため、新しいキーを送信してください。同じキーを異なるボディや別のエンドポイントで使用すると、409 idempotency_conflict で拒否されます。
レート制限
デフォルトの上限は、キーごとに毎分 60 リクエスト(加えて最大 20 リクエストのバーストを許容)と 1 日 5,000 リクエスト、アカウントごとに全キー合計で毎分 120 リクエスト、送信元 IP ごとに毎分 600 リクエストです。上限を超えると、Retry-After ヘッダー付きの HTTP 429 が返されます。レスポンスヘッダー X-RateLimit-Remaining と X-RateLimit-Reset で、キー単位の上限の現在の状況を確認できます。

