すべてのエンドポイントは 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 ヘッダー([A-Za-z0-9_.-] から成る 1~80 文字)が必須です。サーバーはレスポンスとボディハッシュを 24 時間キャッシュします。同じキーかつ同じボディの 2 回目のリクエストは同じレスポンスを返し、同じキーでもボディが異なる場合は 409 idempotency_conflict として拒否されます。
レート制限
デフォルトはキーごとに 60 req/分(20 のバースト許容)かつ 5000/日、加えてキーに依存しない IP ごとの 600 req/分です。超過した場合は HTTP 429 と Retry-After ヘッダーが返ります。レスポンスヘッダー X-RateLimit-Remaining および X-RateLimit-Reset で現在の状況を確認できます。

