XServer API リファレンス ‐ VPS管理
XServer VPS API は、XServer VPS のVPSパネルで提供している基本操作(VPS情報の取得・電源操作・OS再インストール・パケットフィルター設定・新規お申し込み)を REST API で利用するためのインターフェースです。
API の変更履歴は 更新履歴 を参照してください。
| 項目 | 値 |
|---|---|
| ベースURL | https://api.xserver.ne.jp |
| ベースパス | /v1/vps |
| 対象サービス | XServer VPS(VPS / ビジネスVPS / Windows Server / GPUサーバー) |
| プロトコル | HTTPS |
| レスポンス形式 | JSON |
| OpenAPI仕様 | openapi.json |
認証
すべてのリクエストで Authorization ヘッダーに Bearer トークン(APIキー)を付与してください。
Authorization: Bearer xs_xxxxxxxxxxxx...APIキーはXServerアカウント(契約管理画面)の「APIキー管理」から発行できます。
操作対象(対象のVPS)
VPS のAPIキーは、「対象のVPS」として「すべてのVPS」または「指定のVPSのみ」を設定できます。キーが許可されたVPSに対してのみ操作できます(範囲外のVPSを指定しても操作できません)。「指定のVPSのみ」では新規お申し込みはできません。プラン一覧・お申し込み状況確認は、新規お申し込みの許可があれば利用できます。
権限(スコープ)
APIキー発行時に設定する権限によって、利用可能なAPIが異なります。各エンドポイントに表示されている必要な権限を確認してください。
| APIキーの権限 | 利用可能なAPI |
|---|---|
| すべての操作 | 読み取り + 書き込み のすべてのAPI |
| 読み取り専用 | 読み取り のAPIのみ |
| カスタム | 個別に選択した権限に応じたAPI |
カスタム権限では、以下のカテゴリごとに読み取り・書き込みを個別に設定できます。
| カテゴリ | 対象API |
|---|---|
| VPS情報 | VPS一覧を取得 / VPS詳細を取得 / メモを変更 / サーバー名を変更 / 逆引きホスト名を変更 |
| 電源操作 | 電源状態を取得 / VPSを起動 / VPSを再起動 / VPSを停止 |
| パケットフィルター | パケットフィルター設定を取得 / パケットフィルターの有効/無効を切替 / ルールを追加 / ルールを変更 / ルールを削除 |
| OS再インストール | 再インストールできるイメージ一覧を取得 / OSを再インストール / OS再インストールの状況を確認 / 操作保護の設定を取得 / 操作保護の設定を変更 |
新規お申し込みAPI(プラン一覧・新規お申し込み・お申し込み状況確認)のご利用には、APIキー設定の「このキーでVPSの新規お申し込みを許可する」を有効にする必要があります。この許可は、上記のカスタム権限カテゴリとは別に設定されます。
レート制限
レスポンスヘッダーでレート制限情報が返されます。
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1709654400
X-RateLimit-Concurrent-Limit: 5
X-RateLimit-Concurrent-Remaining: 4制限超過時は HTTP 429 と Retry-After ヘッダー(待機すべき秒数を整数で返却)が返されます。同時リクエスト数が上限を超えた場合も HTTP 429 が返されます。
また、認証失敗が短時間に連続した場合はIPアドレス単位で一時的にブロックされ、認証照合前に HTTP 429 が返されます。APIキーや認証ヘッダーの設定を確認してから再試行してください。
VPS のレート制限はアカウント単位で適用されます。同じアカウントで複数のAPIキーを発行しても、合算値で制限がかかります。上限はプランによらず一律です。
| 対象 | リクエスト/分 | リクエスト/日 | 同時接続数 |
|---|---|---|---|
| 全プラン共通 | 60 | 10,000 | 5 |
HTTPステータスコード
成功時
リクエストが正常に処理された場合、以下のステータスコードが返されます。
| ステータス | 意味 | 対象 |
|---|---|---|
200 | OK | 同期処理のリクエスト(GET / PUT / DELETE / ルール追加のPOST) |
202 | Accepted | 電源操作(起動・再起動・停止)およびOS再インストールの受け付け(レスポンスボディなし)。詳細は「電源操作の反映について」「OS再インストールについて」を参照 |
成功時のレスポンスボディは各エンドポイントのレスポンス例を参照してください。
エラーハンドリング
エラー時は以下の形式のJSONが返されます。
{
"error": {
"code": "VALIDATION_ERROR",
"message": "入力値が正しくありません",
"errors": [
"エラーメッセージ1",
"エラーメッセージ2"
]
}
}エラー時のHTTPステータスコード
| ステータス | 意味 | 説明 |
|---|---|---|
400 | Bad Request | リクエストが不正 |
401 | Unauthorized | 認証エラー(APIキーが無効・期限切れ) |
402 | Payment Required | 新規お申し込みに必要なプリペイド残高が不足 |
403 | Forbidden | 権限不足(スコープ不足・対象範囲外(TARGET_NOT_ALLOWED)・IP制限等) |
404 | Not Found | リソースまたはエンドポイントが見つからない(VPSは VPS_NOT_FOUND、パケットフィルタールールは RULE_NOT_FOUND) |
409 | Conflict | 電源状態や実行中の処理のほか、停止中契約(CONTRACT_NOT_ACTIVE)、プリセットルール変更(RULE_NOT_EDITABLE)、ルール重複(RULE_DUPLICATED)、ルール数上限(RULE_LIMIT_EXCEEDED)、逆引き未設定(PTR_NOT_FOUND) |
422 | Unprocessable Entity | バリデーションエラー |
429 | Too Many Requests | レート制限超過 |
500 | Internal Server Error | サーバー内部エラー |
502 | Bad Gateway | バックエンドとの通信でエラーが発生 |
503 | Service Unavailable | サーバーに一時的に接続できない |
共通仕様
VPSの識別子(uuid)について
APIのURLパスに含まれる {uuid} には、操作対象のVPSの識別子(uuid)を指定してください。uuid はVPS一覧API(GET /v1/vps/servers)のレスポンス、またはVPSパネルのVPS詳細画面で確認できます。
uuid は、収容ホストの移転を伴うメンテナンス等で変更される場合があります。uuid を指定したAPIが 404 を返すようになった場合は、VPS一覧APIで最新の uuid を再取得してください。移転により新しいVPS契約へ移行した場合は、「指定のVPSのみ」を対象とするAPIキーには移行先のVPSが含まれないため、APIキー管理で「対象のVPS」の設定を更新してください(「すべてのVPS」を対象とするAPIキーはそのまま利用できます)。
操作対象の範囲
APIキーに設定された「対象のVPS」の範囲内でのみ操作できます。範囲外の uuid を指定した場合は 403 または 404 が返されます。
操作できない状態
プラン変更・ディスク増設・OS再インストール・イメージ保存・バックアップ復元などの処理が実行中のVPSに対する書き込み操作は、HTTP 409 が返されます。処理の完了を待ってから再試行してください。
対象サービス
本APIの対象は XServer VPS(VPS / ビジネスVPS / Windows Server / GPUサーバー) です。ゲーム専用VPSおよび無料プランのVPSは対象外です。
電源操作の反映について
電源操作(起動・再起動・停止)は、リクエストを受け付けた後バックグラウンドで反映されます。これらのAPIは 202 Accepted を返します(レスポンスボディはありません)。
基本の流れ
- 電源操作APIを実行すると、202 Accepted が返ります。あわせて
Locationヘッダーに状態確認先のパス(/v1/vps/servers/{uuid}/power)が入ります。 - 反映状況は電源状態の取得APIで確認します(ポーリングの推奨間隔: 5秒程度。反映の目安は最大3分)。
power.statusがrunning(起動・再起動後)またはstopped(停止後)になれば反映は完了です。
status の値
| status | 意味 |
|---|---|
running | 稼働中 |
stopped | 停止中 |
processing | 電源操作などの反映中 |
error | エラー。解消しない場合はサポートへお問い合わせください |
現在の状態で実行できない操作
現在の電源状態で実行できない操作(稼働中のVPSへの起動、停止中のVPSへの停止など)は、HTTP 409 が返されます。GET /v1/vps/servers/{uuid}/power で現在の状態を確認してから操作してください。
OS再インストールについて
OS再インストールを実行すると、サーバー内のデータ・設定はすべて削除されます。必要なデータは、あらかじめバックアップを取ったうえで実行してください。削除されたデータを復元することはできません。
実行前の条件
- VPSを停止しておく必要があります。稼働中の場合は 409(
INVALID_POWER_STATE)が返されます。停止はVPS停止APIで行えます。 - プラン変更・イメージ保存・バックアップ復元などの処理が実行中の場合は 409(
FEATURE_UNAVAILABLE)が返されます。完了後に再試行してください。
誤操作を防ぐしくみ
データが失われる操作のため、次の 2 つで誤操作を防いでいます。
- APIキーの権限 — APIキーの権限を「カスタム」に設定すると、「OS再インストール」だけを「操作不可」にできます。自動化用のAPIキーで再インストールを行わせたくない場合にご利用ください。なお、権限が「すべての操作」のAPIキーではOS再インストールを実行できます。
- VPSごとの操作保護 — 操作保護APIで
os_reinstallをtrueにしたVPSは、OS再インストールAPIを 409(PROTECTED)で拒否します。誤って再インストールしたくない本番サーバーや、AIエージェントに操作させるVPSで有効にしておくことをおすすめします。再インストールするときだけfalseに戻してください(VPSパネルからの操作には影響しません)。
プランごとに指定できるイメージ・パスワード
指定できるイメージはVPSパネルのOS再インストール画面と同じで、ご契約中のプランによって異なります。実際に指定できるイメージはイメージ一覧APIで取得してください。
| プラン | 指定できるイメージ | パスワードの条件 | SSHキー |
|---|---|---|---|
| VPS / ビジネスVPS | OS・アプリケーション | 半角英字・半角数字・半角記号のうち2種類以上 | 指定できます |
| Windows Server | Windows Server | 半角英大文字・半角英小文字・半角数字・半角記号のうち3種類以上(administrator を含む文字列は使用不可) | 指定できません |
| GPUサーバー | GPUサーバー用イメージ | 半角英字・半角数字・半角記号のうち2種類以上 | 指定できます |
パスワードは共通して 9〜70文字です。`(バッククォート)・<・>・全角文字は使用できません。
プランのメモリ容量が不足するイメージや、ライセンスが必要なイメージ(Windows Server のリモートデスクトップ用など)で必要数のライセンスをお持ちでない場合は、イメージ一覧APIで available_for_this_server が false になります。
管理ツール付きのゲームイメージ(Minecraft・ARK・パルワールド等)を指定する場合は、管理ツールのBasic認証パスワードとして basic_password(半角英数字12〜64文字)の指定が必要です。対象のイメージはイメージ一覧APIの requires_basic_password で判別できます。
SSHキーには、VPSパネルで登録済みのキーを指定するか、ssh_key_name と ssh_public_key を併せて指定して公開鍵を登録できます。APIでは秘密鍵を応答しないため、SSHキーの自動生成は行いません。
保存イメージからの復元・ドメイン/SSLクイック設定には対応していません。VPSパネルからご利用ください。
再インストールの流れ
- イメージ一覧APIで
image_idを取得します。 - 操作保護を有効にしているVPSでは、操作保護APIで
os_reinstallをfalseにします。 - VPSを停止します(VPS停止API → 電源状態の取得APIで
stoppedを確認)。 - OS再インストールAPIを実行します。202 Accepted が返り、
Locationヘッダーに状況確認先のパス(/v1/vps/servers/{uuid}/os-reinstall)が入ります。 - OS再インストール状況APIで進行状況を確認します(ポーリングの推奨間隔: 30秒程度)。
statusがcompletedになれば完了です。再インストール後のVPSは稼働中の状態になります。
status の値
| status | 意味 |
|---|---|
rebuilding | サーバーの再構築中 |
configuring | 再構築は完了し、OSの初期設定(初回起動時の設定)を実行中 |
completed | 完了(利用可能) |
error | エラー。解消しない場合はサポートへお問い合わせください |
再インストール後の注意
- サーバー内のデータ・設定はすべて初期化されます。SSHのホスト鍵も変わるため、接続時に警告が表示される場合は既知のホスト情報を削除してください。
- パケットフィルターの設定・IPアドレス・逆引きホスト名は再インストールでは変わりません。
- SSHキーを指定しなかった場合は、パスワード認証でログインしてください。
APIキー情報
/v1/me
読み取り
認証中のAPIキー情報を取得
現在認証に使用しているAPIキーの情報を返します。有効期限と、キーに設定された各サービスの権限・操作対象を確認できます。
すべてのサービスで共通のエンドポイントです。APIキーの疎通確認や、鍵の有効期限が切れていないかの確認に利用できます。
各サービスの権限と操作対象は services に入ります。トップレベルの service_type / servername / permission_type は、旧来型のサーバーAPIキー(対象がサーバー1台のみのキー)との互換のために返される値で、新しいキーには含まれません。
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/me" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
expires_at |
string|null | 有効期限(YYYY-MM-DD HH:MM:SS形式)。無期限の場合は null |
services |
object | APIキーに設定されたサービスごとの権限・操作対象。キーは server / domain / wphosting / vps |
services.{service}.permission_type |
string | 権限種別(full / read / custom) |
services.{service}.target_mode |
string | 操作対象の範囲(all: すべて / selected: 指定のみ) |
services.{service}.targets |
string[] | target_mode=selected 時の操作対象一覧。server ではサーバー名(初期ドメイン)、domain ではドメイン名(Punycode)、wphosting では契約ID(WP- で始まる)、vps では uuid。all 時は空配列 |
services.{service}.permissions |
object | permission_type=custom 時のみ。カテゴリ名をキーとした権限マップ(full / read / none) |
services.{service}.allow_signup |
boolean | server / wphosting / vps に含まれる。新規お申し込みの許可 |
services.domain.allow_acquisition |
boolean | services.domain にのみ含まれる。ドメイン取得・移管・更新の許可 |
services.wphosting.site_target_mode |
string | services.wphosting にのみ含まれる。サイト操作対象(all / selected) |
services.wphosting.sites |
string[] | services.wphosting にのみ含まれる。site_target_mode=selected 時のサイト servername 一覧 |
service_type |
string | 【非推奨・後方互換】旧来型サーバー1台キーのみ含まれる。常に server |
servername |
string | 【非推奨・後方互換】旧来型サーバー1台キーのみ含まれる。services.server.targets[0] と同値 |
permission_type |
string | 【非推奨・後方互換】旧来型サーバー1台キーのみ含まれる。services.server.permission_type と同値 |
レスポンス例
{
"expires_at": "2027-04-16 00:00:00",
"services": {
"vps": {
"permission_type": "full",
"target_mode": "selected",
"targets": ["a1b2c3d4-5678-40ab-cdef-1234567890ab"],
"allow_signup": true
}
}
}
/v1/logs
読み取り
API実行ログを取得
現在認証に使用しているAPIキー自身の実行ログを、新しい順に返します。すべてのサービスで共通のエンドポイントです。公開APIへのリクエストのメタデータ(メソッド・パス・ステータスコード・レスポンスタイム・接続元IPアドレス・実行日時)が対象で、リクエストボディとレスポンスボディは含まれません。
ログの保持期間は直近90日です。複数のフィルタを指定した場合は、すべての条件に一致するログを返します。count は検索結果の総件数ではなく、今回のレスポンスに含まれる件数です。has_more が true の場合は、next_cursor を次のリクエストの cursor にそのまま指定して続きを取得してください。
このAPIで取得できるのは、呼び出しに使用したAPIキー自身のログのみです。アカウント内の複数のAPIキーを横断したログは、APIキー管理画面の「実行ログ」で確認してください。APIキーに紐づけられない認証失敗のログは、このAPIの結果には含まれません。
クエリパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
from |
string | 任意 | 取得期間の開始日時。この日時以降のログを取得します(YYYY-MM-DD HH:MM:SS形式を推奨) |
to |
string | 任意 | 取得期間の終了日時。この日時以前のログを取得します(YYYY-MM-DD HH:MM:SS形式を推奨) |
status_class |
string | 任意 | 実行結果
|
status_code |
integer | 任意 | HTTPステータスコードの完全一致。status_class と併用できます |
method |
string | 任意 | HTTPメソッドの完全一致(大文字で指定
|
limit |
integer | 任意 | 取得件数(1〜500、省略時は50) |
cursor |
string | 任意 | 次のページを取得するためのカーソル。前回レスポンスの next_cursor をそのまま指定してください |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/logs" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
logs[].method |
string | 実行したHTTPメソッド |
logs[].path |
string | 実行したAPIのパス |
logs[].status_code |
integer | HTTPステータスコード |
logs[].response_time_ms |
integer|null | レスポンスタイム(ミリ秒)。記録されていない場合は null |
logs[].ip_address |
string | APIを実行した接続元IPアドレス |
logs[].created_at |
string | 実行日時(YYYY-MM-DD HH:MM:SS、日本時間) |
count |
integer | 今回のレスポンスに含まれるログ件数(検索結果の総件数ではありません) |
limit |
integer | 適用された取得件数 |
has_more |
boolean | 続きのログがある場合は true |
next_cursor |
string|null | 次のページを取得するためのカーソル。続きがない場合は null |
レスポンス例
{
"logs": [
{
"method": "GET",
"path": "/v1/vps/servers/a1b2c3d4-5678-40ab-cdef-1234567890ab",
"status_code": 200,
"response_time_ms": 12,
"ip_address": "203.0.113.1",
"created_at": "2026-08-20 10:00:00"
}
],
"count": 1,
"limit": 50,
"has_more": true,
"next_cursor": "djE6MTIzNDU"
}
新規お申し込み
/v1/vps/plans
読み取り
お申し込み可能なプラン・料金を取得
APIからお申し込み可能なプランと契約期間ごとの料金(税込)、お申し込みに指定できるOSイメージの一覧を返します。
APIキー設定でVPSの新規お申し込みが許可されていない場合は 403 FORBIDDEN になります。
一時的に新規お申し込みの受付を停止しているプランも、再開予定の提供対象プランであれば一覧に含まれます。一覧にあっても、受付停止中・メンテナンス中は dry_run・実申請とも 409 CAPACITY_UNAVAILABLE になります。現在の受付可否は、新規お申し込みAPIを dry_run=true で実行して確認してください。完全に提供を終了したプランは一覧から除外されます。
total_price は「その日にお申し込みした場合の初回のお支払い額」(当月の日割り分+契約期間分・キャンペーン適用後)で、日によって変わります。新規お申し込みAPIの expected_total_price には、このAPIが返した対象プラン・契約期間の total_price を指定してください。
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/plans" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
plans[].plan_id |
string | プランID。サービスタイプとメモリ容量をハイフンでつないだ形式(vps-2gb、business-4gb など)で、新規お申し込みAPIの plan_id に指定します |
plans[].vps_type |
string | サービスタイプ
|
plans[].plan_name |
string | プラン名 |
plans[].memory_mb |
integer | メモリ容量(MB) |
plans[].vcpu |
integer | vCPUコア数 |
plans[].disk_gb |
integer | ディスク容量(GB) |
plans[].currency |
string | 通貨(JPY) |
plans[].periods[].months |
integer | 契約期間(月数) |
plans[].periods[].total_price |
integer | 本日お申し込みした場合の合計金額(税込・円・キャンペーン適用後の実際のお支払い額) |
plans[].periods[].regular_total_price |
integer | 本日お申し込みした場合の通常価格(税込・円・キャンペーン適用前・日割り込み)。キャンペーン適用がない場合は total_price と同額 |
plans[].periods[].campaign_applied |
boolean | キャンペーン価格が適用されているか |
os_images[].image_id |
string | OSイメージのID。新規お申し込みAPIの image_id に指定します |
os_images[].name |
string | OS名 |
os_images[].version |
string|null | バージョン表記 |
os_images[].minimum_memory_mb |
integer | 必要メモリ容量(MB)。この値以上の memory_mb を持つプランでのみ指定できます(0 は制限なし) |
レスポンス例
{
"plans": [
{
"plan_id": "vps-2gb",
"vps_type": "vps",
"plan_name": "2GBプラン",
"memory_mb": 2048,
"vcpu": 3,
"disk_gb": 50,
"currency": "JPY",
"periods": [
{ "months": 1, "total_price": 1190, "regular_total_price": 1190, "campaign_applied": false },
{ "months": 12, "total_price": 19386, "regular_total_price": 26317, "campaign_applied": true }
]
}
],
"os_images": [
{ "image_id": "vps_ubuntu2404", "name": "Ubuntu 24.04", "version": "24.04 (64bit)", "minimum_memory_mb": 1024 }
]
}
/v1/vps/servers
書き込み
VPSを新規お申し込み
VPSの新規契約をお申し込みます。料金はプリペイド(前払い残高)から引き落とされます。残高が不足している場合はエラー(PAYMENT_REQUIRED)になります。
ご利用には、APIキーの設定で「このキーでVPSの新規お申し込みを許可する」を有効にしておく必要があります。この設定を有効にするには、プリペイドに20,000円以上の残高が必要です。また、操作範囲が「指定のVPSのみ」のAPIキーからは利用できません(403 FORBIDDEN)。
お申し込みできるのは VPS・ビジネスVPS(Linux 標準 OS)です。Windows Server・GPUサーバー・アプリケーションイメージ・保存イメージには対応していません。
dry_run が true の場合は、課金・契約作成を行わず、現在の受付可否を含む実行可否を検証します。お申し込み可能な場合は HTTP 200 で dry_run と total_price を返し、受け入れ可能なサーバーがない場合やメンテナンス中は 409 CAPACITY_UNAVAILABLE を返します。実申請には Idempotency-Key ヘッダーが必要です(UUID推奨)。
実申請はリクエスト内でお支払い・契約作成・サーバーの作成まで同期的に処理され、成功すると HTTP 200 で server(お申し込みしたVPSの情報)を返します。status が active の場合はすぐに利用できます。OSの初期設定が続いている場合は building、サーバー作成が保留された場合は setup_pending で返ります。いずれの場合もお申し込み・お支払いは完了しており、通常は自動で完了します。その後の状況はお申し込み状況確認API(GET /v1/vps/signup-status/{id})で確認できます。
自動更新は既定で有効(プリペイドからの自動引き落とし)になります。無効にする場合は auto_renew に false を指定してください。自動更新にはプリペイド残高が必要です。更新時に残高が不足している場合は自動更新の設定が解除され、メールでお知らせします。
新規アカウントの作成には対応していません(APIキーを発行したアカウントへの契約追加のみ)。
リクエストヘッダー
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
Idempotency-Key |
string | dry_run=false時必須 | 実申請時に必須。8〜64文字の英数字・ハイフン・アンダースコア(UUID推奨) |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
plan_id |
string | 必須 | プランID。プラン一覧APIの plans[].plan_id から指定します(vps-2gb、business-4gb など) |
period |
integer | 必須 | 契約期間(月数)。プラン一覧APIが返した対象プランの periods[].months から指定します |
image_id |
string | 必須 | OSイメージのID。プラン一覧APIの os_images[].image_id から指定します |
root_password |
string | 必須 | rootパスワード(9〜70文字)。半角英字・半角数字・半角記号のうち2種類以上を使用してください。`(バッククォート)< > と全角文字は使用できません |
name |
string | 任意 | サーバー名(最大50文字。半角英小文字・数字・-(ハイフン)・_(アンダースコア))。省略時は自動で設定されます |
ssh_key_name |
string | 任意 | 作成されるサーバーに設定するSSHキーの名前。VPSパネルで登録済みのキーの名前を指定します。ssh_public_key と併せて指定した場合は、その名前で公開鍵を登録して使います。APIでは秘密鍵を応答しないためSSHキーの自動生成は行いません |
ssh_public_key |
string | 任意 | 登録する公開鍵(OpenSSH形式・半角文字のみ)。ssh_key_name と併せて指定します。指定した名前で公開鍵を登録し、作成されるサーバーに設定します(OS再インストールAPIと同じ指定方法) |
expected_total_price |
integer | 必須 | 合計金額(税込・円・キャンペーン適用後)。プラン一覧APIが返した対象プラン・契約期間の total_price を指定します。現在価格と一致しない場合はエラー(PRICE_MISMATCH)になります |
agree_to_terms |
boolean | 必須 | 利用規約への同意(true 必須) |
partner_code |
string | 任意 | お取次店コード(英数50文字以内) |
auto_renew |
boolean | 任意 | 自動更新の設定(省略時は true)。true でプリペイドからの自動引き落としによる自動更新が有効になります |
dry_run |
boolean | 任意 | true の場合、課金・契約作成を行わずに実行可否のみ検証 |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{
"plan_id": "vps-2gb",
"period": 12,
"image_id": "vps_ubuntu2404",
"root_password": "MyPassw0rd-2026",
"name": "",
"ssh_key_name": "",
"expected_total_price": 19386,
"agree_to_terms": true,
"partner_code": "",
"dry_run": false
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
server.id |
integer | お申し込みしたVPSのサービスコード(契約管理画面のサービスコードと同一)。お申し込み状況確認APIの {id} に指定します |
server.uuid |
string|null | VPSの識別子(uuid)。サーバーの作成が完了すると設定されます(setup_pending の間は null)。各VPS管理APIの {uuid} に指定します |
server.name |
string | サーバー名 |
server.status |
string | VPSの状態
|
server.expiry_date |
string|null | 契約の有効期限(YYYY-MM-DD)。setup_pending の間は null |
レスポンス例
{
"server": {
"id": 40000360,
"uuid": "a1b2c3d4-5678-40ab-cdef-1234567890ab",
"name": "vps-2026-08-14-12-00-00",
"status": "active",
"expiry_date": "2027-08-31"
}
}
レスポンスフィールド(dry_run=true の場合)
課金・契約作成を行わずに実行可否を検証した結果
| 名前 | 型 | 説明 |
|---|---|---|
dry_run |
boolean | dry run であることを示す値(true) |
total_price |
integer | 実申請時の合計金額(税込・円・キャンペーン適用後) |
レスポンス例(dry_run=true の場合)
{
"dry_run": true,
"total_price": 19386
}
/v1/vps/signup-status/{id}
読み取り
お申し込み状況を確認
お申し込み後のサーバー作成状況を返します。新規お申し込みAPIのレスポンスの status が building・setup_pending だった場合の確認先です。
APIキー設定でVPSの新規お申し込みが許可されていない場合は 403 FORBIDDEN になります。
status が active になるとサーバーを利用できます。uuid が確定した後は、VPS詳細取得API(GET /v1/vps/servers/{uuid})でも状態を確認できます。長時間 setup_pending のまま解消されない場合は、サポートまでお問い合わせください。
パスパラメータ
| 名前 | 説明 |
|---|---|
id | 新規お申し込みAPIのレスポンスで返された id(サービスコード) |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/signup-status/{id}" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
server.id |
integer | VPSのサービスコード |
server.uuid |
string|null | VPSの識別子(uuid)。サーバーの作成が完了すると設定されます |
server.name |
string | サーバー名 |
server.status |
string | VPSの状態
|
server.expiry_date |
string|null | 契約の有効期限(YYYY-MM-DD)。setup_pending の間は null |
レスポンス例
{
"server": {
"id": 40000360,
"uuid": "a1b2c3d4-5678-40ab-cdef-1234567890ab",
"name": "vps-2026-08-14-12-00-00",
"status": "active",
"expiry_date": "2027-08-31"
}
}
VPS情報
/v1/vps/servers
読み取り
VPS一覧を取得
ご契約中のVPSの一覧を返します。APIキーの対象が「指定のVPSのみ」の場合は、対象に設定されたVPSのみ返します。
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
servers[].uuid |
string | VPSの識別子(uuid)。各APIのURLパスで使用します |
servers[].name |
string | VPSの名前(VPSパネルで設定した名前) |
servers[].vps_type |
string | サービスタイプ
|
servers[].plan_name |
string | プラン名 |
servers[].status |
string | 契約状態
|
servers[].ip_address |
string|null | IPv4アドレス |
servers[].os |
string|null | OS |
servers[].memo |
string|null | メモ |
レスポンス例
{
"servers": [
{
"uuid": "a1b2c3d4-5678-40ab-cdef-1234567890ab",
"name": "web-server-01",
"vps_type": "vps",
"plan_name": "2GBプラン",
"status": "active",
"ip_address": "203.0.113.10",
"os": "Ubuntu 24.04",
"memo": "本番環境(監視対象)"
}
]
}
/v1/vps/servers/{uuid}
読み取り
VPS詳細を取得
指定したVPSの詳細(プラン・OS・IPアドレス・ホスト名・電源状態・メモ等)を返します。電源状態はリアルタイムの値を返します。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
server.uuid |
string | VPSの識別子(uuid) |
server.name |
string | VPSの名前 |
server.vps_type |
string | サービスタイプ
|
server.status |
string | 契約状態
|
server.plan.name |
string | プラン名 |
server.plan.vcpu |
integer | vCPUコア数 |
server.plan.memory_gb |
number | メモリ容量(GB。メモリ増設適用後の値) |
server.plan.disk_gb |
number | ディスク容量(GB。増設ディスク適用後の値) |
server.os |
string|null | OS |
server.application |
string|null | インストール済みアプリケーションイメージ |
server.hostname |
string|null | 標準ホスト名 |
server.reverse_hostname |
string|null | 逆引きホスト名 |
server.ip_address |
string|null | IPv4アドレス |
server.power.status |
string | 電源状態
|
server.memo |
string|null | メモ |
レスポンス例
{
"server": {
"uuid": "a1b2c3d4-5678-40ab-cdef-1234567890ab",
"name": "web-server-01",
"vps_type": "vps",
"status": "active",
"plan": {
"name": "2GBプラン",
"vcpu": 3,
"memory_gb": 2,
"disk_gb": 50
},
"os": "Ubuntu 24.04",
"application": null,
"hostname": "vps-0123456789.xvps.ne.jp",
"reverse_hostname": "vps-0123456789.xvps.ne.jp",
"ip_address": "203.0.113.10",
"power": {
"status": "running"
},
"memo": "本番環境(監視対象)"
}
}
/v1/vps/servers/{uuid}/memo
書き込み
メモを変更
VPSのメモを変更します。空文字を指定するとメモを削除します。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
memo |
string | 必須 | メモ(最大500文字)。空文字でメモを削除 |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/memo" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"memo": "本番環境(監視対象)"
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "メモを更新しました"
}
/v1/vps/servers/{uuid}/name
書き込み
サーバー名を変更
VPSの名前(サーバー名)を変更します。VPSパネルに表示される名前と共通です。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
name |
string | 必須 | サーバー名(最大50文字。半角英小文字・数字・-(ハイフン)・_(アンダースコア)が使用できます) |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/name" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "web-server-01"
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "サーバー名を変更しました"
}
/v1/vps/servers/{uuid}/reverse-dns
書き込み
逆引きホスト名を変更
VPSのIPアドレスの逆引きホスト名(PTRレコード)を変更します。標準ホスト名を指定すると初期設定に戻ります。指定したホスト名のドメイン所有確認や正引きとの一致確認は行いません。メールサーバー用途などで利用する場合は、正引き(Aレコード)がこのVPSのIPアドレスへ向いていることもあわせてご確認ください。現在の設定値はVPS詳細API(GET /v1/vps/servers/{uuid})の reverse_hostname で確認できます。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
hostname |
string | 必須 | 逆引きホスト名(最大253文字。半角英数字・-(ハイフン)・.(ドット)が使用できます) |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/reverse-dns" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hostname": "mail.example.com"
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "逆引きホスト名を変更しました"
}
電源操作
/v1/vps/servers/{uuid}/power
読み取り
電源状態を取得
VPSの現在の電源状態を返します。電源操作後の反映確認(ポーリング)にもこのAPIを使用します。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/power" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
power.status |
string | 電源状態
|
レスポンス例
{
"power": {
"status": "running"
}
}
/v1/vps/servers/{uuid}/power/start
書き込み
VPSを起動
停止中のVPSを起動します。受け付け後の反映は非同期で行われます(「電源操作の反映について」を参照)。稼働中など、現在の電源状態で実行できない場合は 409 が返されます。レスポンスボディはありません。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/power/start" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンス例
HTTP/1.1 202 Accepted
Location: /v1/vps/servers/a1b2c3d4-5678-40ab-cdef-1234567890ab/power
/v1/vps/servers/{uuid}/power/reboot
書き込み
VPSを再起動
VPSを再起動します。受け付け後の反映は非同期で行われます(「電源操作の反映について」を参照)。レスポンスボディはありません。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
force |
boolean | 任意 | true で強制再起動(電源断相当)。通常の再起動で応答がない場合に使用します(既定: false) |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/power/reboot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"force": false
}'
レスポンス例
HTTP/1.1 202 Accepted
Location: /v1/vps/servers/a1b2c3d4-5678-40ab-cdef-1234567890ab/power
/v1/vps/servers/{uuid}/power/stop
書き込み
VPSを停止
稼働中のVPSを停止します。受け付け後の反映は非同期で行われます(「電源操作の反映について」を参照)。OS上での正常なシャットダウンを行いたい場合は、OSにログインしてシャットダウンしてください。レスポンスボディはありません。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/power/stop" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンス例
HTTP/1.1 202 Accepted
Location: /v1/vps/servers/a1b2c3d4-5678-40ab-cdef-1234567890ab/power
パケットフィルター
/v1/vps/servers/{uuid}/packet-filter
読み取り
パケットフィルター設定を取得
パケットフィルター全体の有効/無効と、設定済みルールの一覧を返します。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/packet-filter" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
packet_filter.enabled |
boolean | パケットフィルター全体の有効/無効 |
packet_filter.rules[].id |
integer | ルールのID |
packet_filter.rules[].type |
string | ルール種別
|
packet_filter.rules[].protocol |
string|null | プロトコル(custom のみ)tcpudpicmp |
packet_filter.rules[].port |
string|null | ポート番号(custom のみ)。単一(例: 8080)または範囲(例: 8000-9000)。icmp は null |
packet_filter.rules[].allowed_ip |
string | 許可する接続元。all(すべて許可)またはIPアドレス/CIDR |
packet_filter.rules[].memo |
string|null | メモ |
レスポンス例
{
"packet_filter": {
"enabled": true,
"rules": [
{
"id": 101,
"type": "ssh",
"protocol": null,
"port": null,
"allowed_ip": "all",
"memo": null
},
{
"id": 102,
"type": "custom",
"protocol": "tcp",
"port": "8080",
"allowed_ip": "203.0.113.0/24",
"memo": "監視エージェント"
}
]
}
}
/v1/vps/servers/{uuid}/packet-filter
書き込み
パケットフィルターの有効/無効を切替
パケットフィルター全体の有効/無効を切り替えます。無効にすると、設定済みルールにかかわらずすべてのポートへの接続が許可されます。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
enabled |
boolean | 必須 | true で有効化 / false で無効化 |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/packet-filter" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "パケットフィルター設定を変更しました"
}
/v1/vps/servers/{uuid}/packet-filter/rules
書き込み
ルールを追加
パケットフィルターのルールを追加します。ルールは1台あたり最大20件で、同じ内容のルールは重複して追加できません(409 が返されます)。プリセット(custom 以外)は対象ポートが種別ごとに固定で、全てのIPアドレスからのアクセスを許可します(protocol / port / allowed_ip / memo は指定できず、指定した場合は 422 が返されます)。接続元IPアドレスを制限したい場合は type=custom で protocol / port / allowed_ip を指定してください。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
type |
string | 必須 | ルール種別sshwebweb_httpmysqlpostgresqlmailrdpcustom |
protocol |
string | 任意 | プロトコル(custom の場合は必須)tcpudpicmp |
port |
string | 任意 | ポート番号(custom の場合は必須。icmp を除く)。1〜65535の整数(例: 8080)または「最小値-最大値」の形式(例: 8000-9000) |
allowed_ip |
string | 任意 | 許可する接続元(custom のみ指定可)。all(すべて許可)またはIPアドレス/CIDR(既定: all)。プリセットでは指定できません(プリセットは常に全IPから許可) |
memo |
string | 任意 | メモ(最大500文字。custom のみ) |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/packet-filter/rules" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "custom",
"protocol": "tcp",
"port": "8080",
"allowed_ip": "203.0.113.0\/24",
"memo": "監視エージェント"
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
rule.id |
integer | 追加したルールのID |
rule.type |
string | ルール種別 |
rule.protocol |
string|null | プロトコル |
rule.port |
string|null | ポート番号 |
rule.allowed_ip |
string | 許可する接続元 |
rule.memo |
string|null | メモ |
レスポンス例
{
"rule": {
"id": 102,
"type": "custom",
"protocol": "tcp",
"port": "8080",
"allowed_ip": "203.0.113.0/24",
"memo": "監視エージェント"
}
}
/v1/vps/servers/{uuid}/packet-filter/rules/{rule_id}
書き込み
ルールを変更
カスタムルール(type=custom)の内容を変更します。protocol / port / allowed_ip / memo のうち1項目以上を指定してください。未指定の項目は現在値を維持します。プリセットのルールは変更できません(削除して追加し直してください)。protocol を icmp から tcp / udp に変更する場合は port も指定してください。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
rule_id | ルールのID。パケットフィルター設定の取得API(GET /v1/vps/servers/{uuid}/packet-filter)の rules[].id で取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
protocol |
string | 任意 | プロトコル。tcp / udp / icmp。省略時は現在値を維持 |
port |
string | 任意 | ポート番号
|
allowed_ip |
string | 任意 | 許可する接続元。all(すべて許可)またはIPアドレス/CIDR。省略時は現在値を維持 |
memo |
string | 任意 | メモ(最大500文字)。省略時は現在値を維持、空文字で削除 |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/packet-filter/rules/{rule_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"protocol": "tcp",
"port": "8080",
"allowed_ip": "198.51.100.0\/24",
"memo": "監視エージェント"
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "パケットフィルタールールを変更しました"
}
/v1/vps/servers/{uuid}/packet-filter/rules/{rule_id}
書き込み
ルールを削除
指定したパケットフィルターのルールを削除します。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
rule_id | ルールのID。パケットフィルター設定の取得API(GET /v1/vps/servers/{uuid}/packet-filter)の rules[].id で取得できます |
リクエスト例
curl \
-X DELETE \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/packet-filter/rules/{rule_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果メッセージ |
レスポンス例
{
"message": "ルールを削除しました"
}
OS再インストール
/v1/vps/servers/{uuid}/os-images
読み取り
再インストールできるイメージ一覧を取得
OS再インストールで指定できるイメージの一覧を返します。ご契約中のプランで選択できるイメージのみが返るため、VPSパネルのOS再インストール画面と同じ内容です。
available_for_this_server が false のイメージは、このVPSでは選択できません(理由は unavailable_reason を参照)。requires_basic_password が true のイメージは、OS再インストールAPIで basic_password の指定が必要です。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/os-images" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
os_images[].image_id |
string | イメージのID。OS再インストールAPIの image_id に指定します |
os_images[].name |
string | イメージ名 |
os_images[].version |
string|null | バージョン表記 |
os_images[].type |
string | イメージの種類
|
os_images[].category |
string|null | イメージのカテゴリ(同一OS・同一アプリのバージョン違いをまとめる区分) |
os_images[].minimum_memory_mb |
integer | 必要メモリ容量(MB)。0 は制限なし |
os_images[].requires_basic_password |
boolean | true の場合、OS再インストールAPIで basic_password の指定が必要です(管理ツール付きのゲームイメージ) |
os_images[].available_for_this_server |
boolean | このVPSで選択できるか |
os_images[].unavailable_reason |
string|null | 選択できない理由
|
レスポンス例
{
"os_images": [
{
"image_id": "vps_ubuntu2404",
"name": "Ubuntu 24.04",
"version": "24.04 (64bit)",
"type": "os",
"category": "ubuntu",
"minimum_memory_mb": 1024,
"requires_basic_password": false,
"available_for_this_server": true,
"unavailable_reason": null
}
]
}
/v1/vps/servers/{uuid}/os-reinstall
書き込み
OSを再インストール
VPSのOSを再インストールします。指定したイメージでサーバーを作り直すため、サーバー内のデータ・設定はすべて削除されます。必要なデータは、あらかじめバックアップを取ったうえで実行してください。
実行にはVPSを停止しておく必要があります。稼働中の場合は 409(INVALID_POWER_STATE)が返されます。停止はVPS停止API(POST /v1/vps/servers/{uuid}/power/stop)で行えます。
誤操作を防ぐため、VPSごとに「操作保護」を設定できます。操作保護API(PUT /v1/vps/servers/{uuid}/protection)で os_reinstall を true にしたVPSに対しては 409(PROTECTED)が返され、再インストールは実行されません。あわせて、APIキーの権限を「カスタム」に設定すると「OS再インストール」だけを操作不可にできます。
指定できるイメージ・パスワードの条件はご契約中のプランによって異なります(「OS再インストールについて」を参照)。指定できるイメージはイメージ一覧API(GET /v1/vps/servers/{uuid}/os-images)で取得できます。
受け付け後の反映は非同期で行われます。レスポンスボディはありません。進捗はOS再インストール状況API(GET /v1/vps/servers/{uuid}/os-reinstall)で確認してください。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
image_id |
string | 必須 | 再インストールするイメージのID。イメージ一覧APIの os_images[].image_id から指定します |
root_password |
string | 必須 | OSの管理者パスワード(9〜70文字)。VPS・GPUサーバーでは root、Windows Server では Administrator のパスワードになります。使用できる文字の条件はプランによって異なります(「OS再インストールについて」を参照) |
ssh_key_name |
string | 任意 | 再インストール後のサーバーに設定するSSHキーの名前。VPSパネルで登録済みのキーの名前を指定します。ssh_public_key と併せて指定した場合は、その名前で公開鍵を登録して使います。省略した場合はSSHキーを設定しません。APIでは秘密鍵を応答しないためSSHキーの自動生成は行いません。Windows Server では指定できません |
ssh_public_key |
string | 任意 | 登録する公開鍵(OpenSSH形式・半角文字のみ)。ssh_key_name と併せて指定します。指定した名前で公開鍵を登録し、再インストール後のサーバーに設定します(新規お申し込みAPIと同じ指定方法) |
basic_password |
string | 管理ツール付きイメージ時必須 | 管理ツールのBasic認証パスワード(半角英数字12〜64文字)。イメージ一覧APIの requires_basic_password が true のイメージでは必須です。それ以外のイメージでは指定できません |
リクエスト例
curl \
-X POST \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/os-reinstall" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_id": "vps_ubuntu2404",
"root_password": "MyPassw0rd-2026"
}'
レスポンス例
HTTP/1.1 202 Accepted
Location: /v1/vps/servers/a1b2c3d4-5678-40ab-cdef-1234567890ab/os-reinstall
/v1/vps/servers/{uuid}/os-reinstall
読み取り
OS再インストールの状況を確認
OS再インストールの進行状況を返します。OS再インストールAPIを実行した後の確認先です(ポーリングの推奨間隔: 30秒程度)。
status が completed になるとサーバーを利用できます。進捗率は返しません。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/os-reinstall" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
os_reinstall.status |
string | 再インストールの状況
|
os_reinstall.image_id |
string|null | 現在インストールされているイメージのID |
os_reinstall.os |
string|null | 現在インストールされているOS名 |
os_reinstall.installed_at |
string|null | 最後にOS再インストール(またはサーバー作成)を開始した日時(YYYY-MM-DD HH:MM:SS形式) |
レスポンス例
{
"os_reinstall": {
"status": "configuring",
"image_id": "vps_ubuntu2404",
"os": "Ubuntu 24.04",
"installed_at": "2026-09-08 11:22:33"
}
}
/v1/vps/servers/{uuid}/protection
読み取り
操作保護の設定を取得
VPSごとの操作保護の設定を返します。操作保護は、APIからの破壊的な操作をVPS単位で拒否するための設定です(VPSパネルからの操作には影響しません)。
現在は os_reinstall(OS再インストールの保護)のみです。有効なVPSに対してOS再インストールAPIを実行すると 409(PROTECTED)が返されます。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエスト例
curl \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/protection" \
-H "Authorization: Bearer YOUR_API_KEY"
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
protection.os_reinstall |
boolean | OS再インストールの保護。true の場合、APIからのOS再インストールを拒否します(既定: false) |
レスポンス例
{
"protection": {
"os_reinstall": true
}
}
/v1/vps/servers/{uuid}/protection
書き込み
操作保護の設定を変更
VPSごとの操作保護の設定を変更します。指定した項目のみ更新します。
os_reinstall を true にすると、そのVPSに対するOS再インストールAPIは 409(PROTECTED)で拒否されます。誤って再インストールしたくない本番サーバーや、自動化ツール・AIエージェントに操作させるVPSで有効にしておくことをおすすめします。再インストールする場合は、先に false へ戻してください。
パスパラメータ
| 名前 | 説明 |
|---|---|
uuid | VPSの識別子(uuid)。VPS一覧API(GET /v1/vps/servers)のレスポンスで取得できます |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
os_reinstall |
boolean | 必須 | true で OS再インストールを保護(拒否)/ false で解除 |
リクエスト例
curl \
-X PUT \
"https://api.xserver.ne.jp/v1/vps/servers/{uuid}/protection" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"os_reinstall": true
}'
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
message |
string | 処理結果のメッセージ |
レスポンス例
{
"message": "操作保護設定を変更しました"
}