顧客パネルで発行する 1 つのトークン
ベアラートークンとして送信されます。必要であれば読み取り専用や単一サービスに限定できます。トークンはパスワードとは独立しており、一つを失効させてもログアウトされることはありません。
HTTPS 経由の JSON。SDK は不要、別途の開発者アカウントも不要、そしてパネルにはあってここにはないエンドポイントもありません。
サーバーを作成
curl -X POST https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN" \
-d '{"plan":"reef","image":"debian-13"}'ビルド ID を即座に返します。マシンは約 60 秒後に SSH で応答するようになり、認証情報が送信される前にアドレスのルーティングが完了しています。
20 個のエンドポイント
ベース URL https://api.vpsoffshore.com/v1。パスでバージョン管理されます。v2 が登場しても v1 は動作を続け、廃止日は 1 年前に告知されます。
サーバー
ストレージ
ネットワーク
カタログ
請求
顧客パネルでできることはすべてここにあり、ここにあるものは顧客パネルにも欠けていません。両者が食い違う場合はそれは不具合であり、顧客パネルからお知らせください。仕様として文書化するのではなく、修正します。
動作の仕組み
API の評価は、正常系ではなく異常系で決まります。以下の 4 つのうち 3 つは、何か問題が起きたときに何が起こるかについてです。
顧客パネルで発行する 1 つのトークン
ベアラートークンとして送信されます。必要であれば読み取り専用や単一サービスに限定できます。トークンはパスワードとは独立しており、一つを失効させてもログアウトされることはありません。
JSON を送信し JSON を受信、SDK は不要です
独自エンベロープも、XML フォールバックも、署名の儀式もない、素の HTTPS です。curl でできることなら、それがそのままクライアントになります。Go、Python、TypeScript 向けの公式ライブラリもありますが、いずれも必須ではありません。
不用意に到達することのないレート制限
トークンあたり毎分 600 リクエスト、作成系呼び出しは 60 リクエストまでです。すべてのレスポンスには残り上限がヘッダーで示され、超過時は 429 とともに待機秒数が返されます。リクエストが無言で破棄されることはありません。
対処方法を示すエラー
4xx エラーには、機械可読なコード、人間が読める文章、そして問題のあるフィールドが含まれます。当社は、推測を強いる短いエラーよりも、長くても分かりやすいエラーを返すことを選びます。
一度だけ書く 2 つのこと
最初の失敗の後ではなく、最初の呼び出しを書く前に、両方とも読んでおく価値があります。
認証する
curl https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN"
トークンはパネルで発行し、読み取り専用や特定のサービスに限定できます。パスワードとは独立しており、1 つを取り消してもどこからもログアウトされません。
レート制限を読む
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 はなく、1 秒に一度のポーリングは制限内に収まります。
申請不要
開発者アカウントも、承認も、本番環境と異なる挙動のサンドボックスもありません。