for WordPress API Reference

XServer for WordPress API リファレンス

XServer for WordPress API は、XServer for WordPress のWPパネルで提供している主要機能(サイト管理・WordPress運用・ドメイン/DNS・PHPバージョン・ログ・Cron・SSH 等)を REST API で利用するためのインターフェースです。

API の変更履歴は 更新履歴 を参照してください。

項目
ベースURLhttps://api.xserver.ne.jp
ベースパス/v1/wphosting/{contract_id}
対象サービスXServer for WordPress
プロトコルHTTPS
レスポンス形式JSON
OpenAPI仕様openapi.json

認証

すべてのリクエストで Authorization ヘッダーに Bearer トークン(APIキー)を付与してください。

リクエストヘッダー
Authorization: Bearer xs_xxxxxxxxxxxx...

APIキーはXServerアカウント(契約管理画面)の「APIキー管理」から発行できます。

操作対象(対象契約 × 対象サイト)

for WordPress のAPIキーは、「対象のご契約」「対象のサイト」の2軸で操作範囲を設定できます。それぞれ「すべて」または「指定」を選択でき、キーが許可された契約・サイトに対してのみ操作できます(範囲外の契約・サイトを指定しても操作できません)。

権限(スコープ)

APIキー発行時に設定する権限によって、利用可能なAPIが異なります。各エンドポイントに表示されている必要な権限を確認してください。

APIキーの権限利用可能なAPI
すべての操作読み取り + 書き込み のすべてのAPI
読み取り専用読み取り のAPIのみ
カスタム個別に選択した権限に応じたAPI

カスタム権限では、以下のカテゴリごとに読み取り・書き込みを個別に設定できます。

カテゴリ対象API
APIキー情報認証中のAPIキー情報を取得
サイト情報サイト一覧を取得 / サイト詳細を取得 / 利用状況を取得
サイト作成・削除サイトを作成 / サイトを削除
ステージング環境ステージング環境を作成
バックアップ手動バックアップ一覧を取得 / 手動バックアップを作成 / 手動バックアップから復元 / 復元履歴を取得 / 手動バックアップを削除
WordPressバージョンWordPressバージョン情報を取得 / WordPressバージョンの設定を変更 / WordPress本体を更新
メンテナンスモードメンテナンスモードを取得 / メンテナンスモードを切替
プラグインプラグイン一覧を取得 / プラグインをインストール / プラグインの状態を変更 / プラグインを更新 / プラグインを削除
テーマテーマ一覧を取得 / テーマをインストール / テーマの状態を変更 / テーマを更新 / テーマを削除
ドメイン設定ドメイン設定一覧を取得 / ドメイン設定を追加 / ドメインの所有者確認を実行 / ドメイン設定を削除 / サイトURLを変更
DNSレコード設定DNSレコード一覧を取得 / DNSレコードを追加 / DNSレコードを変更 / DNSレコードを削除
PHPバージョン設定PHPバージョンを取得 / PHPバージョンを変更
ログアクセスログを取得 / エラーログを取得
Cron設定Cron一覧を取得 / Cronを新規追加 / Cronを変更 / Cronを削除
SSH設定SSH設定を取得 / SSH設定を変更 / SSH公開鍵一覧を取得 / SSH公開鍵を登録 / SSH公開鍵を更新 / SSH公開鍵を削除
WordPressユーザーWordPressユーザー一覧を取得 / WordPressユーザー詳細を取得 / WordPressユーザーを作成 / WordPressユーザーを更新 / WordPressユーザーを削除 / 権限グループ一覧を取得
WordPressセキュリティセキュリティ設定一覧を取得 / セキュリティ設定を変更

レート制限

レスポンスヘッダーでレート制限情報が返されます。

レスポンスヘッダー
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キーや認証ヘッダーの設定を確認してから再試行してください。

for WordPress のレート制限はご契約単位で適用されます。同じご契約で複数のAPIキーを発行しても、合算値で制限がかかります。上限はご契約のプランによって異なります。

プランリクエスト/分リクエスト/日同時接続数
ベーシック6010,0005
スタンダード12030,00010
プレミアム300100,00020
エンタープライズ300100,00020

HTTPステータスコード

成功時

リクエストが正常に処理された場合、以下のステータスコードが返されます。

ステータス意味対象
200OK同期処理のリクエスト(GET / POST / PUT / DELETE)
202Accepted非同期処理の受け付け(サイト作成・削除、ステージング環境作成、バックアップの作成・復元)。詳細は「非同期処理について」を参照

成功時のレスポンスボディは各エンドポイントのレスポンス例を参照してください。

エラーハンドリング

エラー時は以下の形式のJSONが返されます。

エラーレスポンス
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "入力値が正しくありません",
    "errors": [
      "エラーメッセージ1",
      "エラーメッセージ2"
    ]
  }
}

エラー時のHTTPステータスコード

ステータス意味説明
400Bad Requestリクエストが不正
401Unauthorized認証エラー(APIキーが無効・期限切れ)
403Forbidden権限不足(スコープ不足・対象範囲外・IP制限等)
404Not Foundリソースまたはエンドポイントが見つからない
409Conflictバックグラウンド処理の実行中など、状態により操作を完了できなかった
422Unprocessable Entityバリデーションエラー
429Too Many Requestsレート制限超過
500Internal Server Errorサーバー内部エラー
502Bad Gatewayバックエンドとの通信でエラーが発生
503Service Unavailableサーバーに一時的に接続できない

主なエラーコード

409 が返る場合、レスポンスの error.code で原因を判別できます。

コードHTTP説明
FEATURE_UNAVAILABLE409サイト・ご契約の状態により、その機能が利用できない(詳細は message を参照)。条件は「機能が利用できない状態について」を参照
JOB_IN_PROGRESS409対象サイトでバックグラウンド処理が実行中のため、この操作を行えない。処理の完了を待ってから再試行してください
DUPLICATE_REQUEST409同じ Idempotency-Key のリクエストを処理中(「非同期処理について」参照)

共通仕様

契約ID(contract_id)について

APIのURLパスに含まれる {contract_id} には、操作対象のご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)を指定してください。契約IDはXServerアカウントで確認できます。

サイトの識別子(servername)について

個々のサイトを操作するAPIのURLパスに含まれる {servername} には、対象サイト環境の識別子(servername)を指定してください。servernameサイト一覧APIGET /v1/wphosting/{contract_id}/sites)のレスポンスで取得できます。本番環境・ステージング環境はそれぞれ別の servername を持ちます。

操作対象の範囲

APIキーに設定された「対象のご契約」「対象のサイト」の範囲内でのみ操作できます。範囲外の契約ID・servername を指定した場合は 403 または 404 が返されます。

バックグラウンド処理の実行中

サイトに対してバックグラウンド処理(サイト作成・バックアップ等)が実行中の場合、そのサイトへの書き込み操作は HTTP 409 が返されます。処理の完了を待ってから再試行してください。処理の状況は、サイトの状態(サイト一覧・詳細APIの status)や手動バックアップ一覧・復元履歴APIで確認できます(「非同期処理について」参照)。

DNSレコード設定の対象

DNSレコード設定APIは、当社ネームサーバーを利用しているドメインが対象です。

日時について

APIのレスポンスに含まれる日時はすべて日本時間(JST)で、タイムゾーン表記は付きません。

機能が利用できない状態について

WPパネル(画面)でメニューが表示されない状態では、APIも同じ条件で 409 FEATURE_UNAVAILABLE を返します。エラーの詳細は message を参照してください。

状態影響する主な機能
ご利用期限を過ぎているサイト作成・プラグイン/テーマ/WordPress本体・WordPressユーザー・セキュリティ設定・バックアップ・ドメイン設定・Cron/SSH など(サイト情報・ログ・リソース・メンテナンスモード・PHPバージョン・サイト削除は利用可)
サーバーが凍結中上記に加えサーバー管理ツール系(Cron / SSH)
マルチサイト環境プラグイン・テーマ・WordPress本体更新・WordPressユーザー・セキュリティ設定・サイトURL変更・ステージング環境作成・手動バックアップ
WordPressが正しくインストールされていない同上(マルチサイト環境と同じ範囲)
ステージング環境ドメイン設定・DNSレコード設定・サイトURL変更・手動バックアップの作成/復元

各エンドポイントで利用できない条件は、エンドポイントごとの説明にも記載しています。

非同期処理について

サイトの作成・削除、ステージング環境の作成、バックアップの作成・復元は、完了までに時間がかかるためバックグラウンドで実行されます。これらのAPIは、受け付けに成功すると 202 Accepted とともに、対象を特定する情報(servername。バックアップ作成では backup_id)を返します。

進行状況の確認

進行状況は、処理の種類ごとに対象リソースの status で確認します(ポーリングの推奨間隔: 15〜30秒)。

処理確認方法
サイト作成 / ステージング環境作成サイト詳細取得APIstatus で確認。作成中は setting、完了すると public または private、失敗すると error になります
サイト削除完了確認は不要です。受け付けと同時にサイト一覧から削除されます
バックアップ作成手動バックアップ一覧APIstatus で確認。completed で作成済み、failed で失敗です
バックアップ復元復元履歴取得APIstatus で確認。completed で完了、failed で失敗です

再送時の重複実行を防ぐ(Idempotency-Key)

非同期API(サイト作成・削除、ステージング環境作成、バックアップの作成・復元)では、Idempotency-Key ヘッダーを任意で指定できます。タイムアウト等でレスポンスを受け取れなかった場合に同じキーで再送すると、処理を重複実行せず初回と同じレスポンスが返ります。

リクエストヘッダー
Idempotency-Key: 3b1f2c9e-8a54-4c1d-9f2b-1a2b3c4d5e6f
  • キーは8〜64文字の英数字・ハイフン・アンダースコアで指定します(UUID を推奨)。保持期間は48時間です。
  • 同じキーで内容の異なるリクエストを送ると 422 が返ります。
  • 同じキーの処理が確定前(実行中)の場合は 409(DUPLICATE_REQUEST)が返ります。
  • ヘッダーを指定しない場合は従来どおり、リクエストごとに処理を受け付けます。

APIキー情報

GET /v1/me 読み取り

認証中のAPIキー情報を取得

現在認証に使用しているAPIキーの情報を返します。有効期限・サービス種別を確認できます。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/me" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
service_type string APIキーのサービス種別。XServer for WordPress 用のキーでは wphosting
expires_at string|null 有効期限。無期限の場合は null

レスポンス例

200 OK
{
  "service_type": "wphosting",
  "expires_at": "2027-04-16 00:00:00"
}

サイト情報

GET /v1/wphosting/{contract_id}/sites 読み取り

サイト一覧を取得

ご契約内のすべてのWordPressサイト(本番・ステージング環境)を返します。WPパネルのサイト一覧に相当します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
sites[].servername string サイト環境の識別子
sites[].site_name string サイト名
sites[].env_type string 環境種別(production / staging)
sites[].status string サイトの状態
  • setting作成中
  • reset初期化中
  • restore復元中
  • sync同期中
  • errorエラー
  • waiting_reload反映待ち
  • maintenanceメンテナンス
  • public公開
  • private非公開
  • suspend凍結中
sites[].site_url string サイトURL
sites[].wp_version string|null WordPressバージョン

レスポンス例

200 OK
{
  "sites": [
    {
      "servername": "xw123456.xwp.jp",
      "site_name": "My Blog",
      "env_type": "production",
      "status": "public",
      "site_url": "https://example.com/",
      "wp_version": "6.7.1"
    }
  ]
}
GET /v1/wphosting/{contract_id}/sites/{servername} 読み取り

サイト詳細を取得

指定したサイト環境の詳細(ドメイン・PHPバージョン・リソース割当・関連サイト等)を返します。WPパネルのサイト詳細に相当します。ディスク使用量は GET .../usage で確認できます。related_site には同一グループ内の関連サイト(本番↔ステージング)が含まれます。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
site.servername string サイト環境の識別子
site.site_name string サイト名
site.env_type string 環境種別(production / staging)
site.status string サイトの状態
  • setting作成中
  • reset初期化中
  • restore復元中
  • sync同期中
  • errorエラー
  • waiting_reload反映待ち
  • maintenanceメンテナンス
  • public公開
  • private非公開
  • suspend凍結中
site.site_url string サイトURL(表示用)
site.domain string 現在のドメイン(表示用)
site.wp_version string|null WordPressバージョン
site.php_version string|null PHPバージョン
site.is_multisite boolean マルチサイトかどうか
site.security_auto_optimize boolean セキュリティ自動最適化モードが有効かどうか
site.resource.disk_limit_gb integer このサイトに割り当てられたディスク容量の上限(GB)
site.resource.vcpu_limit integer vCPU 上限(コア数)
site.resource.memory_limit_gb integer メモリ上限(GB)
site.related_site[].servername string 関連サイトの識別子
site.related_site[].domain string 関連サイトのドメイン
site.related_site[].site_url string 関連サイトのURL
site.related_site[].env_type string 関連サイトの環境種別(production / staging)

レスポンス例

200 OK
{
  "site": {
    "servername": "xw123456.xwp.jp",
    "site_name": "My Blog",
    "env_type": "production",
    "status": "public",
    "site_url": "https://example.com",
    "domain": "example.com",
    "wp_version": "6.7.1",
    "php_version": "8.3",
    "is_multisite": false,
    "security_auto_optimize": true,
    "resource": {
      "disk_limit_gb": 10,
      "vcpu_limit": 1,
      "memory_limit_gb": 1
    },
    "related_site": [
      {
        "servername": "xw123456-st.xwp.jp",
        "domain": "xw123456-st.xwp.jp",
        "site_url": "https://xw123456-st.xwp.jp",
        "env_type": "staging"
      }
    ]
  }
}
GET /v1/wphosting/{contract_id}/usage 読み取り

利用状況を取得

ご契約の上限(ディスク・vCPU・メモリ・サイト数)と使用量、サイト別内訳を返します。WPパネルの利用状況に相当します。APIキーで対象サイトを限定している場合、per_site および disk.used_gb・sites.used は許可されたサイト分のみ返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/usage" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
disk.limit_gb integer 契約のディスク容量上限(GB)
disk.used_gb number 使用中のディスク容量(GB)。per_site の disk_used_gb の合計
vcpu.limit integer vCPU 上限(コア数)
memory.limit_gb integer メモリ上限(GB)
sites.limit integer|null サイト数上限。null は無制限
sites.used integer 使用中のサイト環境数(本番・ステージング各環境を1件としてカウント)
per_site[].servername string サイト環境の識別子
per_site[].disk_used_gb number 当該サイト環境のディスク使用量(GB)

レスポンス例

200 OK
{
  "disk": { "limit_gb": 700, "used_gb": 1.51 },
  "vcpu": { "limit": 10 },
  "memory": { "limit_gb": 16 },
  "sites": { "limit": null, "used": 10 },
  "per_site": [
    { "servername": "xw123456.xwp.jp", "disk_used_gb": 0.28 },
    { "servername": "xw123456-st.xwp.jp", "disk_used_gb": 0.22 }
  ]
}

サイト作成・削除

POST /v1/wphosting/{contract_id}/sites 書き込み

サイトを作成

ご契約内に新しいWordPressサイト(本番環境)を作成します。非同期で申し込みます。受け付け成功時は 202 で servername を返します。進捗は GET .../sites/{servername} の status で確認してください(setting → public/private、失敗時 error)。Idempotency-Key ヘッダー(任意)で再送時の重複実行を防げます。server_id で初期サイトURL({server_id}.xwp.jp)を指定できます。未指定時は自動生成されます。サイト数・リソースは契約上限の範囲内です。上限到達・利用期限切れ・APIキーでサイト限定時は 409 です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)

リクエストボディ

名前必須説明
wp_sitename string 必須 サイト名(WordPressのサイトタイトル)。全角127文字(半角255文字)以内
wp_username string 必須 WordPress管理ユーザー名。半角255文字以内。半角英数字、半角スペースと _-.@ が使用可能。条件を満たさない場合は 422 エラーになります
wp_password string 必須 WordPress管理ユーザーのパスワード。半角7文字以上64文字以内。半角英字と数字または記号をそれぞれ1文字以上含めてください。使用可能な文字は半角英数字と !#$%=~^|:_[]().+-*/@&<>`;?, です。wp_username と同じ文字列は指定できません。条件を満たさない場合は 422 エラーになります
wp_mailaddress string 必須 WordPress管理ユーザーのメールアドレス。半角100文字以内。形式不正の場合は 422 エラーになります
disk_limit_gb integer 必須 このサイトに割り当てるディスク容量の上限(GB)。10 以上を指定してください(10 未満は 422 エラー)
vcpu_limit integer 必須 このサイトに割り当てる vCPU の上限(コア数)
memory_limit_gb integer 必須 このサイトに割り当てるメモリの上限(GB)
server_id string 任意 初期サイトURLのサーバーID({server_id}.xwp.jp の部分)。アルファベット小文字で始まる半角英小字・数字のみ。未指定時は自動生成(例: xw123456)。形式不正・使用済みは 422 エラー
wp_theme string 任意 インストールするWordPressテーマ。指定可能な値: default(WordPress標準テーマ)/ cocoon-master(Cocoon)/ lightning(Lightning)。未指定時は default
security_auto_optimize boolean 任意 セキュリティ自動最適化モードを有効にするか。未指定時は true(有効)
memo string 任意 メモ(管理用)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "wp_sitename": "My Blog",
    "wp_username": "admin",
    "wp_password": "Passw0rd!",
    "wp_mailaddress": "admin@example.com",
    "disk_limit_gb": 10,
    "vcpu_limit": 1,
    "memory_limit_gb": 1,
    "server_id": "",
    "wp_theme": "",
    "security_auto_optimize": true,
    "memo": ""
}'

レスポンスフィールド

名前説明
servername string 作成されるサイト環境の識別子
message string 処理結果メッセージ

レスポンス例

202 Accepted
{
  "servername": "xw123456.xwp.jp",
  "message": "サイトの作成を受け付けました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername} 書き込み

サイトを削除

指定したサイトを削除します。本番環境を指定した場合、関連するステージング環境も削除されます。非同期で申し込みます。受け付け成功時は 202 を返し、サイト一覧から即時に除外されます。削除したデータは復元できません。実行中の処理がある場合は 409 です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servername削除するサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
servername string 削除するサイト環境の識別子
message string 処理結果メッセージ

レスポンス例

202 Accepted
{
  "servername": "xw123456.xwp.jp",
  "message": "サイトの削除を受け付けました"
}

ステージング環境

POST /v1/wphosting/{contract_id}/sites/{servername}/staging 書き込み

ステージング環境を作成

指定した本番環境の複製としてステージング環境を作成します。1本番につき1ステージングまで。非同期で申し込みます。受け付け成功時は 202 で servername を返します。進捗は GET .../sites/{servername} の status で確認してください。既存ステージングあり・実行中処理・利用不可条件では 409 です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servername複製元となる本番環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
disk_limit_gb integer 必須 ステージング環境に割り当てるディスク容量の上限(GB)。10 以上を指定してください(10 未満は 422 エラー)
vcpu_limit integer 必須 ステージング環境に割り当てる vCPU の上限(コア数)
memory_limit_gb integer 必須 ステージング環境に割り当てるメモリの上限(GB)
server_id string 任意 ステージング環境URLのサーバーID({server_id}.xwp.jp の部分)。アルファベット小文字で始まる半角英小字・数字のみ。未指定時は自動生成。形式不正・使用済みは 422 エラー
security_auto_optimize boolean 任意 セキュリティ自動最適化モードを有効にするか。未指定時は true(有効)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/staging" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "disk_limit_gb": 10,
    "vcpu_limit": 1,
    "memory_limit_gb": 1,
    "server_id": "",
    "security_auto_optimize": true
}'

レスポンスフィールド

名前説明
servername string 作成されるステージング環境の識別子
message string 処理結果メッセージ

レスポンス例

202 Accepted
{
  "servername": "xw234567.xwp.jp",
  "message": "ステージング環境の作成を受け付けました"
}

バックアップ

GET /v1/wphosting/{contract_id}/sites/{servername}/backups 読み取り

手動バックアップ一覧を取得

指定したサイトの手動バックアップの一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/backups" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
backups[].backup_id string バックアップの識別子(復元・削除APIで使用)
backups[].status string 状態
  • waiting作成待ち
  • prepare準備中
  • completed作成済み
  • failed失敗
backups[].memo string 作成時に指定したメモ
backups[].created_at string 作成受付日時
backups[].finished_at string 作成完了日時waitingprepare では null
backups[].expires_at string 保存期限。completed 以外では null

レスポンス例

200 OK
{
  "backups": [
    {
      "backup_id": "20260712103000_a1B2c3",
      "status": "completed",
      "memo": "プラグイン更新前",
      "created_at": "2026-07-12 10:30:00",
      "finished_at": "2026-07-12 10:35:00",
      "expires_at": "2026-08-11 10:35:00"
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/backups 書き込み

手動バックアップを作成

指定したサイトの手動バックアップ(Web・メール・データベース)の作成を非同期で申し込みます。受け付け成功時は 202 で backup_id を返します。進捗は GET .../backups の status で確認してください(completed で作成済み、failed で失敗)。作成数上限到達・実行中処理がある場合は 409 です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameバックアップを作成するサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
memo string 任意 メモ(管理用・255文字まで)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/backups" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": ""
}'

レスポンスフィールド

名前説明
servername string 対象サイト環境の識別子
backup_id string 作成されるバックアップの識別子
message string 処理結果メッセージ

レスポンス例

202 Accepted
{
  "servername": "xw123456.xwp.jp",
  "backup_id": "20260712103000_a1B2c3",
  "message": "バックアップの作成を受け付けました"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/backups/{backup_id}/restore 書き込み

手動バックアップから復元

指定した手動バックアップの内容でサイトを復元します。現在の内容は上書きされ、取り消しできません。completed のバックアップのみ復元可能です。非同期で申し込みます。成否は GET .../backups/restore-history の status で確認してください。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servername復元するサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
backup_id復元に使うバックアップの識別子。手動バックアップ一覧API(GET .../backups)の backup_id で取得できます

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/backups/{backup_id}/restore" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
servername string 復元するサイト環境の識別子
message string 処理結果メッセージ

レスポンス例

202 Accepted
{
  "servername": "xw123456.xwp.jp",
  "message": "バックアップの復元を受け付けました"
}
GET /v1/wphosting/{contract_id}/sites/{servername}/backups/restore-history 読み取り

復元履歴を取得

指定したサイトのバックアップ復元履歴を新しい順で返します。手動・自動バックアップからの復元を含みます。復元申込後の成否確認に使用してください。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/backups/restore-history" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
restores[].restore_id integer 復元処理のID
restores[].type string 復元の種別手動バックアップからの復元自動バックアップからの復元
restores[].status string 状態
  • waiting実行待ち
  • running実行中
  • completed完了
  • failed失敗
restores[].created_at string|null 受付日時
restores[].started_at string|null 実行開始日時
restores[].finished_at string|null 完了日時

レスポンス例

200 OK
{
  "restores": [
    {
      "restore_id": 456,
      "type": "backup_restore",
      "status": "completed",
      "created_at": "2026-07-12 11:00:00",
      "started_at": "2026-07-12 11:00:10",
      "finished_at": "2026-07-12 11:05:00"
    }
  ]
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/backups/{backup_id} 書き込み

手動バックアップを削除

指定した手動バックアップを削除します。削除したバックアップは復元に使用できなくなります。実行中の処理がある場合は 409 です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
backup_id削除するバックアップの識別子。手動バックアップ一覧API(GET .../backups)の backup_id で取得できます

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/backups/{backup_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "バックアップを削除しました"
}

WordPressバージョン

GET /v1/wphosting/{contract_id}/sites/{servername}/wordpress 読み取り

WordPressバージョン情報を取得

WordPressのバージョン・更新の有無・自動更新設定を返します。更新が利用可能な場合のみ latest_version にバージョンが入り、最新の場合は null です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wordpress" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
wordpress.version string|null 現在インストールされている WordPress のバージョン
wordpress.latest_version string|null WordPress.org 上で利用可能な更新先バージョン。更新がない場合は null
wordpress.update_available boolean 更新が利用可能か(latest_version が null でないとき true)
wordpress.auto_update boolean 自動更新が有効か(auto_update_scope が none 以外のとき true)
wordpress.auto_update_scope string 自動更新スコープ
  • none無効
  • minorマイナー更新のみ
  • allすべて(メジャー更新を含む)

レスポンス例

200 OK
{
  "wordpress": {
    "version": "6.7.1",
    "latest_version": "6.7.2",
    "update_available": true,
    "auto_update": true,
    "auto_update_scope": "minor"
  }
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/wordpress 書き込み

WordPressバージョンの設定を変更

WordPress本体の自動更新設定(スコープ)を変更します。auto_update_scope のみ指定可能です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
auto_update_scope string 必須 自動更新スコープ
  • none無効
  • minorマイナー更新のみ
  • allすべて(メジャー更新を含む)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wordpress" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "auto_update_scope": "minor"
}'

レスポンスフィールド

名前説明
wordpress.auto_update boolean 変更後の自動更新が有効か(auto_update_scope が none 以外のとき true)
wordpress.auto_update_scope string 変更後の自動更新スコープ
  • none無効
  • minorマイナー更新のみ
  • allすべて(メジャー更新を含む)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "wordpress": { "auto_update": true, "auto_update_scope": "minor" },
  "message": "WordPress本体の設定を変更しました"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/wordpress/update 書き込み

WordPress本体を更新

WordPress本体を最新バージョンへ更新します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wordpress/update" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
wordpress.version string|null 更新後のバージョン
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "wordpress": { "version": "6.7.1" },
  "message": "WordPress本体を更新しました"
}

メンテナンスモード

GET /v1/wphosting/{contract_id}/sites/{servername}/maintenance-mode 読み取り

メンテナンスモードを取得

サイトのメンテナンスモードの状態を返します。管理画面へのアクセス許可やメンテナンス画面の文言設定はWPパネルから行ってください。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/maintenance-mode" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
maintenance_mode.enabled boolean メンテナンスモードが有効か

レスポンス例

200 OK
{
  "maintenance_mode": { "enabled": false }
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/maintenance-mode 書き込み

メンテナンスモードを切替

サイトのメンテナンスモードを有効・無効に切り替えます。有効にするとWPパネルと同じカスタムメンテナンス画面が表示されます。管理画面へのアクセス許可やメンテナンス画面の文言設定はWPパネルから行ってください。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
enabled boolean 必須 メンテナンスモードを有効にするか

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/maintenance-mode" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true
}'

レスポンスフィールド

名前説明
maintenance_mode.enabled boolean 変更後の状態
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "maintenance_mode": { "enabled": true },
  "message": "メンテナンスモードを変更しました"
}

プラグイン

GET /v1/wphosting/{contract_id}/sites/{servername}/plugins 読み取り

プラグイン一覧を取得

インストール済みプラグインの一覧(状態・バージョン・更新有無・自動更新)を返します。WPパネル「プラグイン管理」と同じ条件で返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/plugins" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
plugins[].plugin string プラグインslug
plugins[].name string プラグイン名
plugins[].status string 状態(active / inactive)
plugins[].version string バージョン
plugins[].update_available boolean 更新の有無
plugins[].update_version string|null 更新先バージョン。update_available が true のとき WordPress.org 上の最新版。false のときは null
plugins[].auto_update boolean 自動更新の有無

レスポンス例

200 OK
{
  "plugins": [
    {
      "plugin": "akismet",
      "name": "Akismet Anti-spam",
      "status": "active",
      "version": "5.3",
      "update_available": false,
      "update_version": null,
      "auto_update": true
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/plugins 書き込み

プラグインをインストール

WordPress.org 公式リポジトリのプラグインを slug 指定でインストールします。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
plugin string 必須 プラグインslug
activate boolean 任意 インストール後に有効化するか

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/plugins" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "plugin": "akismet",
    "activate": false
}'

レスポンスフィールド

名前説明
plugin.plugin string インストールしたプラグインの slug
plugin.activated boolean 有効化されたか
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "plugin": { "plugin": "akismet", "activated": false },
  "message": "プラグインをインストールしました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin} 書き込み

プラグインの状態を変更

プラグインの有効/無効・自動更新設定を変更します。送信した項目のみ更新されます。バージョン更新は別APIです。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
pluginプラグインslug

リクエストボディ

名前必須説明
status string 任意 active / inactive
auto_update boolean 任意 自動更新の有無

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "",
    "auto_update": true
}'

レスポンスフィールド

名前説明
plugin object 対象プラグイン
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "plugin": { "plugin": "akismet" },
  "message": "プラグインの設定を変更しました"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin}/update 書き込み

プラグインを更新

プラグインを最新バージョンへ更新します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
pluginプラグインslug

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin}/update" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
plugin object 対象プラグイン
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "plugin": { "plugin": "akismet" },
  "message": "プラグインを更新しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin} 書き込み

プラグインを削除

指定したプラグインを削除します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
pluginプラグインslug

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/plugins/{plugin}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "プラグインを削除しました"
}

テーマ

GET /v1/wphosting/{contract_id}/sites/{servername}/themes 読み取り

テーマ一覧を取得

インストール済みテーマの一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/themes" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
themes[].theme string テーマslug
themes[].name string テーマ名
themes[].status string 状態(active / inactive)
themes[].version string バージョン
themes[].update_available boolean 更新の有無
themes[].update_version string|null 更新先バージョン。update_available が true のとき WordPress.org 上の最新版。false のときは null
themes[].auto_update boolean 自動更新の有無

レスポンス例

200 OK
{
  "themes": [
    {
      "theme": "twentytwentyfive",
      "name": "Twenty Twenty-Five",
      "status": "active",
      "version": "1.1",
      "update_available": false,
      "update_version": null,
      "auto_update": false
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/themes 書き込み

テーマをインストール

WordPress.org 公式リポジトリのテーマを slug 指定でインストールします。提供WordPressテーマ(Cocoon、Xwrite 等)のインストールはできません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
theme string 必須 テーマslug
activate boolean 任意 インストール後に有効化するか

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/themes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "theme": "twentytwentyfive",
    "activate": false
}'

レスポンスフィールド

名前説明
theme.theme string インストールしたテーマの slug
theme.activated boolean 有効化されたか
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "theme": { "theme": "twentytwentyfive", "activated": false },
  "message": "テーマをインストールしました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/themes/{theme} 書き込み

テーマの状態を変更

テーマの有効化・自動更新設定を変更します。送信した項目のみ更新されます。status は active(有効化)のみ指定可能で、無効化は API では提供しません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
themeテーマslug

リクエストボディ

名前必須説明
status string 任意 active(有効化のみ指定可能)
auto_update boolean 任意 自動更新の有無

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/themes/{theme}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "",
    "auto_update": true
}'

レスポンスフィールド

名前説明
theme object 対象テーマ
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "theme": { "theme": "twentytwentyfive" },
  "message": "テーマの設定を変更しました"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/themes/{theme}/update 書き込み

テーマを更新

テーマを最新バージョンへ更新します。提供WordPressテーマ(Cocoon、Xwrite 等)の更新はできません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
themeテーマslug

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/themes/{theme}/update" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
theme object 対象テーマ
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "theme": { "theme": "twentytwentyfive" },
  "message": "テーマを更新しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/themes/{theme} 書き込み

テーマを削除

指定したテーマを削除します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
themeテーマslug

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/themes/{theme}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "テーマを削除しました"
}

ドメイン設定

GET /v1/wphosting/{contract_id}/sites/{servername}/domains 読み取り

ドメイン設定一覧を取得

サイトに設定されているドメインの一覧(Web/SSL状態・サイトURLフラグ)を返します。初期ドメインを含み、削除済みの独自ドメインは含めません。ステージング環境では利用できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
domains[].domain string ドメイン名
domains[].status string Web設定の状態
  • awaiting_verification認証待ち
  • verifying認証中
  • verification_failed認証エラー
  • pending_reflection反映待ち
  • active有効
domains[].ssl_status string SSLの状態
  • unavailableWeb設定が有効化前
  • not_installed無効
  • verifying認証中
  • verification_failed認証エラー
  • pending_reflection反映待ち
  • active有効
domains[].is_site_url boolean 現在のサイトURL(プライマリドメイン)か
domains[].is_default boolean 初期ドメイン(servername と同値)か。DELETE 不可

レスポンス例

200 OK
{
  "domains": [
    {
      "domain": "xw123456.xwp.jp",
      "status": "active",
      "ssl_status": "active",
      "is_site_url": false,
      "is_default": true
    },
    {
      "domain": "example.com",
      "status": "active",
      "ssl_status": "active",
      "is_site_url": true,
      "is_default": false
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/domains 書き込み

ドメイン設定を追加

サイトにドメインを追加します。所有者確認が必要な場合は verification 情報(TXTレコード)を返します。DNS設定後、所有者確認APIを実行してください。一度削除した同一ドメインは再追加できます。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
domain string 必須 追加するドメイン

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com"
}'

レスポンスフィールド

名前説明
domain.domain string 追加したドメイン名
domain.status string Web設定の状態(要確認時は awaiting_verification)
verification object|null 所有者確認が必要な場合のTXTレコード情報
verification.status string 所有者確認の状態(awaiting_verification)
verification.txt_record_name string DNSに設定するTXTレコード名
verification.txt_record_value string DNSに設定するTXTレコード値
verification.note string 所有者確認の手順メッセージ
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "domain": { "domain": "example.com", "status": "awaiting_verification" },
  "verification": {
    "status": "awaiting_verification",
    "txt_record_name": "_acme-challenge.example.com",
    "txt_record_value": "xxxxxxxx",
    "note": "DNSに上記TXTレコードを設定後、所有者確認APIを実行してください。"
  },
  "message": "ドメインを追加しました。所有者確認が必要です。"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/verify 書き込み

ドメインの所有者確認を実行

追加したドメインの所有者確認(TXTレコード検証)を実行します。成功時にWeb設定・無料SSL・リダイレクトが適用されます。確認済みのドメインへの再実行は 200 で完了状態を返します。TXTレコード反映前や処理中の再実行は失敗します。反映には数分〜数十分かかることがあります。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/verify" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
domain.domain string 確認したドメイン名
domain.status string Web設定の状態(pending_reflection または active)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "domain": { "domain": "example.com", "status": "pending_reflection" },
  "message": "ドメインの所有者確認が完了しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain} 書き込み

ドメイン設定を削除

指定したドメイン設定を削除します。現在のサイトURLに設定中のドメインは削除できません。ステージング環境では利用できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "ドメインを削除しました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/site-url 書き込み

サイトURLを変更

現在のサイトURL(プライマリドメイン)を変更します。初期ドメインおよび独自ドメインの両方を指定できます。WordPress内のURL置換が実行されます。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
domain string 必須 新しいサイトURLにするドメイン
auto_redirect boolean 任意 旧URLからの301リダイレクトを自動設定するか(既定 true)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/site-url" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "auto_redirect": true
}'

レスポンスフィールド

名前説明
site_url.domain string 変更後のドメイン
site_url.site_url string 変更後のサイトURL
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "site_url": { "domain": "example.com", "site_url": "https://example.com/" },
  "message": "サイトURLを変更しました"
}

DNSレコード設定

GET /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns 読み取り

DNSレコード一覧を取得

当社ネームサーバーを利用している独自ドメインの DNS レコード一覧を返します。初期ドメインは DNS 管理対象外です。ステージング環境では利用できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン(独自ドメイン。is_default: false)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
records[].id integer DNSレコードID(PUT/DELETEで使用)
records[].domain string 対象ドメイン
records[].host string ホスト名(@ は apex)
records[].type string レコードタイプAAAAACNAMEMXTXTSRV
records[].content string レコードの値
records[].ttl integer TTL(秒)
records[].priority integer MX/SRVレコードの優先度。それ以外のレコードでは 0

レスポンス例

200 OK
{
  "records": [
    {
      "id": 12345,
      "domain": "example.com",
      "host": "@",
      "type": "A",
      "content": "123.45.67.89",
      "ttl": 3600,
      "priority": 0
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns 書き込み

DNSレコードを追加

DNSレコードを追加します。対象は独自ドメインに限ります。NS レコードは追加できません。所有者確認が完了していないドメインでは編集できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン(独自ドメイン。is_default: false)

リクエストボディ

名前必須説明
host string 必須 ホスト名(@ で apex、相対名または FQDN、最大255文字)
type string 必須 レコードタイプAAAAACNAMEMXTXTSRV(NS は非対応)
content string 必須 内容(最大1024文字。type に応じた形式チェックあり。A は IPv4 形式)
ttl integer 任意 TTL(60-86400。省略時 3600)
priority integer 任意 MX / SRV レコードの優先度(0~65535。省略時 0)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "www",
    "type": "A",
    "content": "192.0.2.1",
    "ttl": 3600,
    "priority": 10
}'

レスポンスフィールド

名前説明
id integer 追加されたDNSレコードのID(PUT/DELETEで使用)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": 12346,
  "message": "DNSレコードを追加しました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns/{dns_id} 書き込み

DNSレコードを変更

DNSレコードを変更します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。更新するフィールドが1つも指定されなかった場合は 422 を返します。対象は独自ドメインに限ります。所有者確認が完了していないドメインでは編集できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン(独自ドメイン。is_default: false)
dns_idDNSレコードID(GET の records[].id)

リクエストボディ

名前必須説明
host string 任意 ホスト名(@ で apex、相対名または FQDN)
type string 任意 レコードタイプAAAAACNAMEMXTXTSRV(NS は非対応)
content string 任意 内容(最大1024文字。type に応じた形式チェックあり。A は IPv4 形式)
ttl integer 任意 TTL(60-86400)
priority integer 任意 MX / SRV レコードの優先度(0~65535)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns/{dns_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "www",
    "type": "A",
    "content": "192.0.2.1",
    "ttl": 3600,
    "priority": 10
}'

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "DNSレコードを変更しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns/{dns_id} 書き込み

DNSレコードを削除

DNSレコードを削除します。対象は独自ドメインに限ります。存在しない dns_id を指定した場合は 404 を返します。所有者確認が完了していないドメインでは編集できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
domain対象ドメイン(独自ドメイン。is_default: false)
dns_idDNSレコードID(GET の records[].id)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/domains/{domain}/dns/{dns_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "DNSレコードを削除しました"
}

PHPバージョン設定

GET /v1/wphosting/{contract_id}/sites/{servername}/php-version 読み取り

PHPバージョンを取得

現在のPHPバージョンと利用可能なバージョン一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/php-version" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
php_version.current string|null 現在のPHPバージョン
php_version.available object 選択可能なPHPバージョン。キーがバージョン番号、値が表示名称(例: {"8.3": "PHP8.3.30(推奨)", "8.2": "PHP8.2.28(非推奨)"})

レスポンス例

200 OK
{
  "php_version": {
    "current": "8.3",
    "available": {
      "8.3": "PHP8.3.30(推奨)",
      "8.2": "PHP8.2.28(非推奨)",
      "8.1": "PHP8.1.32(非推奨)"
    }
  }
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/php-version 書き込み

PHPバージョンを変更

PHPバージョンを変更します。同一バージョンを指定した場合は php_version.changed が false になり、実際には変更されません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
version string 必須 変更先バージョン(GET .../php-version の available のキー。例: 8.3)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/php-version" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "8.3"
}'

レスポンスフィールド

名前説明
php_version.current string 変更後のバージョン
php_version.previous string|null 変更前のバージョン
php_version.changed boolean バージョンが変更されたか(同一版本を指定した場合は false)
message string 処理結果メッセージ(常に「PHPバージョンを変更しました」。サーバー API 同様。実際の変更有無は php_version.changed を参照)

レスポンス例

200 OK
{
  "php_version": { "current": "8.3", "previous": "8.2", "changed": true },
  "message": "PHPバージョンを変更しました"
}

ログ

GET /v1/wphosting/{contract_id}/sites/{servername}/access-log 読み取り

アクセスログを取得

サイトのアクセスログを取得します。行数指定・キーワード検索が可能です(全文取得は不可)。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

クエリパラメータ

名前必須説明
date string 任意 対象日(YYYY-MM-DD)。省略時および当日を指定した場合はローテーション前の当日ログ。前日以前を指定した場合は該当日のアーカイブログ(.gz)を参照
keyword string 任意 絞り込みキーワード
line_number integer 任意 取得行数(1〜50000)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/access-log" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
access_log.contents string ログ内容

レスポンス例

200 OK
{
  "access_log": { "contents": "..." }
}
GET /v1/wphosting/{contract_id}/sites/{servername}/error-log 読み取り

エラーログを取得

サイトのエラーログを取得します。行数指定・キーワード検索が可能です(全文取得は不可)。日付指定は不可で、当日分のみ取得します。WPパネルと同じ条件です。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

クエリパラメータ

名前必須説明
keyword string 任意 絞り込みキーワード
line_number integer 任意 取得行数(1〜50000)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/error-log" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
error_log.contents string ログ内容

レスポンス例

200 OK
{
  "error_log": { "contents": "..." }
}

Cron設定

GET /v1/wphosting/{contract_id}/sites/{servername}/cron 読み取り

Cron一覧を取得

登録済みのCron設定を一覧で返します。各要素の id は PUT/DELETE で指定するハッシュIDです。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/cron" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
crons[].id string CronのハッシュID(PUT/DELETEで使用)
crons[].minute string 分(0-59, */5 等)
crons[].hour string 時(0-23, * 等)
crons[].day string 日(1-31, * 等)
crons[].month string 月(1-12, * 等)
crons[].weekday string 曜日(0-7, * 等)
crons[].command string 実行コマンド
crons[].comment string コメント
crons[].enabled boolean 有効/無効
notification_email string|null Cron実行結果の通知先メールアドレス(未設定時は null)

レスポンス例

200 OK
{
  "crons": [
    {
      "id": "a1b2c3d4e5",
      "minute": "*/5",
      "hour": "*",
      "day": "*",
      "month": "*",
      "weekday": "*",
      "command": "/usr/bin/php /home/user/cron.php",
      "comment": "5分毎のバッチ処理",
      "enabled": true
    }
  ],
  "notification_email": "admin@example.com"
}
POST /v1/wphosting/{contract_id}/sites/{servername}/cron 書き込み

Cronを新規追加

新しいCron設定を追加します。レスポンスの id は後続の PUT・DELETE で使用します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
minute string 必須 分(0-59, */5 等)
hour string 必須 時(0-23, * 等)
day string 必須 日(1-31, * 等)
month string 必須 月(1-12, * 等)
weekday string 必須 曜日(0-7, * 等)
command string 必須 実行コマンド(最大5000文字)
comment string 任意 コメント

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/cron" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "minute": "*\/5",
    "hour": "*",
    "day": "*",
    "month": "*",
    "weekday": "*",
    "command": "\/usr\/bin\/php \/home\/user\/cron.php",
    "comment": "5分毎のバッチ"
}'

レスポンスフィールド

名前説明
id string 追加されたCronのハッシュID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "a1b2c3d4e5",
  "message": "Cron設定を追加しました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/cron/{cron_id} 書き込み

Cronを変更

既存のCron設定を変更します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。スケジュール・コマンド・コメントなどの内容を変更すると id が変わります。後続の PUT/DELETE ではレスポンスの新しい id を使用してください。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
cron_idCronのハッシュID(一覧取得で得られる id)

リクエストボディ

名前必須説明
minute string 任意
hour string 任意
day string 任意
month string 任意
weekday string 任意 曜日
command string 任意 実行コマンド
comment string 任意 コメント
enabled boolean 任意 有効/無効(デフォルト: true)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/cron/{cron_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "minute": "0",
    "hour": "3",
    "day": "*",
    "month": "*",
    "weekday": "*",
    "command": "\/usr\/bin\/php \/home\/user\/cron.php",
    "comment": "毎日3時のバッチ",
    "enabled": true
}'

レスポンスフィールド

名前説明
id string 変更したCronのハッシュID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "a1b2c3d4e5",
  "message": "Cron設定を変更しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/cron/{cron_id} 書き込み

Cronを削除

指定したCron設定を削除します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
cron_idCronのハッシュID(一覧取得で得られる id)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/cron/{cron_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "Cron設定を削除しました"
}

SSH設定

GET /v1/wphosting/{contract_id}/sites/{servername}/ssh 読み取り

SSH設定を取得

SSH接続の有効/無効、国外アクセス制限の状態、接続情報、登録済み公開鍵数を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
ssh_enabled boolean SSH接続が有効かどうか
abroad_access_restriction boolean SSH接続の国外アクセス制限の有効/無効
connection_info.host string 接続先ホスト名
connection_info.port integer 接続ポート
connection_info.username string ユーザー名
connection_info.auth_method string 認証方式(publickey)
key_count integer 登録済み公開鍵数

レスポンス例

200 OK
{
  "ssh_enabled": true,
  "abroad_access_restriction": true,
  "connection_info": {
    "host": "aaaaa.xwp.jp",
    "port": 10022,
    "username": "aaaaa",
    "auth_method": "publickey"
  },
  "key_count": 1
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/ssh 書き込み

SSH設定を変更

SSH接続の有効/無効、国外アクセス制限の有効/無効を変更します。変更したいフィールドのみ送信してください。SSH公開鍵の登録・更新・削除の結果によっては、SSH接続および国外アクセス制限が自動で有効/無効される場合があります。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
ssh_enabled boolean 任意 SSH接続の有効/無効
abroad_access_restriction boolean 任意 国外アクセス制限の有効/無効

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ssh_enabled": true,
    "abroad_access_restriction": true
}'

レスポンスフィールド

名前説明
ssh_enabled boolean 変更後のSSH接続状態(送信時のみ。未送信の項目は null)
abroad_access_restriction boolean 変更後の国外制限状態(送信時のみ。未送信の項目は null)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "ssh_enabled": true,
  "abroad_access_restriction": null,
  "message": "SSH設定を変更しました"
}
GET /v1/wphosting/{contract_id}/sites/{servername}/ssh/key 読み取り

SSH公開鍵一覧を取得

登録済みSSH公開鍵の一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh/key" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
keys[].id integer 公開鍵ID
keys[].label string ラベル
keys[].public_key string 公開鍵
keys[].status string ステータス(on/off)
keys[].created_at string 登録日時

レスポンス例

200 OK
{
  "keys": [
    {
      "id": 1,
      "label": "CI/CD用",
      "public_key": "ssh-ed25519 AAAA...",
      "status": "on",
      "created_at": "2026-04-01 12:00:00"
    }
  ]
}
POST /v1/wphosting/{contract_id}/sites/{servername}/ssh/key 書き込み

SSH公開鍵を登録

公開鍵を手動で登録するか、generate: true でサーバー側で鍵ペアを自動生成します。自動生成時は秘密鍵がレスポンスに含まれます(発行時の1回のみ)。公開鍵が最初に登録される場合は、SSH接続および国外アクセス制限が自動で有効になります。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエストボディ

名前必須説明
label string 必須 ラベル(1〜500文字)
public_key string 任意 公開鍵(手動登録時。OpenSSH形式)
generate boolean 任意 サーバー側で鍵ペアを自動生成するか(デフォルト: false)
passphrase string 任意 パスフレーズ(自動生成時のみ。6〜32文字)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh/key" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "デプロイ用",
    "public_key": "ssh-ed25519 AAAA...",
    "generate": true,
    "passphrase": ""
}'

レスポンスフィールド

名前説明
id integer 公開鍵ID
label string ラベル
public_key string 公開鍵
status string ステータス
private_key string 秘密鍵(自動生成時のみ、発行時の1回だけ返却)
message string 処理結果メッセージ。有効な公開鍵が0件だった場合は suffix が付加される場合があります

レスポンス例

200 OK
{
  "id": 2,
  "label": "デプロイ用",
  "public_key": "ssh-ed25519 AAAA...",
  "status": "on",
  "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
  "message": "SSH鍵ペアを生成しました(SSH接続と国外アクセス制限を有効化しました)"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/ssh/key/{key_id} 書き込み

SSH公開鍵を更新

ラベルやステータス(on/off)を変更します。変更したいフィールドのみ送信してください。ステータスの変更により、公開鍵が有効になる一つ目の場合は SSH接続および国外アクセス制限が自動で有効になります。有効な公開鍵が0件になる場合は SSH接続および国外アクセス制限が自動で無効になります。SSH接続設定が無効の状態では更新できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
key_id公開鍵ID

リクエストボディ

名前必須説明
label string 任意 ラベル
status string 任意 ステータス(on/off)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh/key/{key_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "本番用",
    "status": "off"
}'

レスポンスフィールド

名前説明
id integer 公開鍵ID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": 1,
  "message": "SSH公開鍵を更新しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/ssh/key/{key_id} 書き込み

SSH公開鍵を削除

指定したSSH公開鍵を削除します。公開鍵がすべて削除されて有効な公開鍵が0件になる場合は、SSH接続および国外アクセス制限が自動で無効になります。SSH接続設定が無効の状態では削除できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます
key_id公開鍵ID

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/ssh/key/{key_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
id integer 公開鍵ID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": 1,
  "message": "SSH公開鍵を削除しました(SSH公開鍵がすべて削除されたため、SSH接続と国外アクセス制限を無効にしました)"
}

WordPressユーザー

GET /v1/wphosting/{contract_id}/sites/{servername}/wp-users 読み取り

WordPressユーザー一覧を取得

指定したサイトのWordPressユーザーの一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

クエリパラメータ

名前必須説明
search string 任意 ユーザー名等の部分一致で絞り込み(半角英数字と _ - . @)
orderby string 任意 並び替え項目(ID / user_login / display_name / user_email / user_registered)
order string 任意 並び順(asc / desc)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
wp_users[].id integer WordPressユーザーID(詳細・更新・削除APIで使用)
wp_users[].user_login string ユーザー名(ログインID)
wp_users[].display_name string 表示名
wp_users[].user_email string メールアドレス
wp_users[].roles string[] 権限グループの配列(例: ["administrator"])。WordPressのユーザーは複数の権限グループを持てるため、1件の場合も配列で返します
wp_users[].user_registered string 登録日時
wp_users[].user_url string サイトURL(WordPressプロフィールの「Webサイト」欄。未設定時は空文字)

レスポンス例

200 OK
{
  "wp_users": [
    {
      "id": 1,
      "user_login": "admin",
      "display_name": "admin",
      "user_email": "admin@example.com",
      "roles": ["administrator"],
      "user_registered": "2026-07-01 10:00:00",
      "user_url": ""
    }
  ]
}
GET /v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id} 読み取り

WordPressユーザー詳細を取得

指定したWordPressユーザーの情報を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子
user_idWordPressユーザーID。ユーザー一覧API(GET .../wp-users)の id で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
wp_user.id integer WordPressユーザーID
wp_user.user_login string ユーザー名(ログインID)
wp_user.display_name string 表示名
wp_user.user_email string メールアドレス
wp_user.roles string[] 権限グループの配列(例: ["editor"])。WordPressのユーザーは複数の権限グループを持てるため、1件の場合も配列で返します
wp_user.user_registered string 登録日時
wp_user.user_url string サイトURL(WordPressプロフィールの「Webサイト」欄。未設定時は空文字)

レスポンス例

200 OK
{
  "wp_user": {
    "id": 2,
    "user_login": "editor01",
    "display_name": "編集者",
    "user_email": "editor@example.com",
    "roles": ["editor"],
    "user_registered": "2026-07-10 12:00:00",
    "user_url": ""
  }
}
POST /v1/wphosting/{contract_id}/sites/{servername}/wp-users 書き込み

WordPressユーザーを作成

指定したサイトにWordPressユーザーを作成します。role に指定できる値は GET .../wp-users/roles で確認できます。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子

リクエストボディ

名前必須説明
user_login string 必須 ユーザー名(半角英数字と _ - . @ のみ・60文字以内)
user_email string 必須 メールアドレス
user_pass string 必須 パスワード(半角7文字以上64文字以内)
role string 必須 権限グループ(例: administrator / editor / author / contributor / subscriber)
display_name string 任意 表示名
first_name string 任意
last_name string 任意
user_url string 任意 サイトURL
send_email boolean 任意 新規ユーザーへアカウントに関するメールを送信するか(未指定時は送信しない)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_login": "author01",
    "user_email": "author01@example.com",
    "user_pass": "Passw0rd!",
    "role": "author",
    "display_name": "",
    "first_name": "",
    "last_name": "",
    "user_url": "",
    "send_email": false
}'

レスポンスフィールド

名前説明
wp_user.id integer 作成されたWordPressユーザーID
wp_user.user_login string ユーザー名
message string 処理結果メッセージ

レスポンス例

201 Created
{
  "wp_user": {
    "id": 5,
    "user_login": "author01"
  },
  "message": "WordPressユーザーを作成しました"
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id} 書き込み

WordPressユーザーを更新

指定したWordPressユーザーの情報を更新します。送信した項目のみ更新されます(いずれか1つ以上必須)。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子
user_idWordPressユーザーID

リクエストボディ

名前必須説明
user_email string 任意 メールアドレス
user_pass string 任意 パスワード(半角7文字以上64文字以内)
role string 任意 権限グループ
display_name string 任意 表示名
first_name string 任意
last_name string 任意
user_url string 任意 サイトURL

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_email": "",
    "user_pass": "",
    "role": "",
    "display_name": "",
    "first_name": "",
    "last_name": "",
    "user_url": ""
}'

レスポンスフィールド

名前説明
wp_user.id integer 更新したWordPressユーザーID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "wp_user": {
    "id": 5
  },
  "message": "WordPressユーザーを更新しました"
}
DELETE /v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id} 書き込み

WordPressユーザーを削除

指定したWordPressユーザーを削除します。対象ユーザーの投稿等のコンテンツもあわせて削除されます。ユーザーID 1(サイト作成時の初期ユーザー)は削除できません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子
user_id削除するWordPressユーザーID

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users/{user_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "message": "WordPressユーザーを削除しました"
}
GET /v1/wphosting/{contract_id}/sites/{servername}/wp-users/roles 読み取り

権限グループ一覧を取得

ユーザー作成・更新APIの role に指定できる権限グループの一覧を返します。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/wp-users/roles" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
roles[].role string 権限グループのキー(role に指定する値)
roles[].name string 権限グループの表示名

レスポンス例

200 OK
{
  "roles": [
    {"role": "administrator", "name": "Administrator"},
    {"role": "editor", "name": "Editor"},
    {"role": "author", "name": "Author"},
    {"role": "contributor", "name": "Contributor"},
    {"role": "subscriber", "name": "Subscriber"}
  ]
}

WordPressセキュリティ

GET /v1/wphosting/{contract_id}/sites/{servername}/security 読み取り

セキュリティ設定一覧を取得

指定したサイトのWordPressセキュリティ設定の状態を返します。国外アクセス制限・ログイン試行回数制限・コメント/トラックバック制限・その他のセキュリティ項目を含みます。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子。サイト一覧API(GET /v1/wphosting/{contract_id}/sites)の servername で取得できます

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/security" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前説明
security_settings[].key string 設定キー(設定変更APIで使用)
security_settings[].label string 設定の表示名
security_settings[].is_enable boolean 現在有効かどうか
security_settings[].is_disable_locked boolean 無効化しようとしたときに409エラーになるか。セキュリティ自動最適化モードが有効なサイトで、ロック対象の項目のみ true になります。

レスポンス例

200 OK
{
  "security_settings": [
    {
      "key": "foreign_ip_restriction_restapi",
      "label": "国外アクセス制限設定 > REST API アクセス制限",
      "is_enable": true,
      "is_disable_locked": true
    },
    {
      "key": "comment_restriction_foreign_post",
      "label": "コメント・トラックバック制限 > 国外からの投稿",
      "is_enable": false,
      "is_disable_locked": false
    }
  ]
}
PUT /v1/wphosting/{contract_id}/sites/{servername}/security/{key} 書き込み

セキュリティ設定を変更

指定したセキュリティ設定の有効/無効を切り替えます。国外からWordPressのREST APIや管理画面を利用する場合は、該当の国外アクセス制限を無効化してください。REST API制限とダッシュボード制限は連動します。セキュリティ自動最適化モードが有効なサイトでは、一部の項目を無効化できません。許可IPリストはAPIからは変更されません。

パスパラメータ

名前説明
contract_idご契約の契約ID(WP- で始まる契約ID。例: WP-AB234567)
servernameサイト環境の識別子
key設定キー。セキュリティ設定一覧API(GET .../security)の key で取得できます

リクエストボディ

名前必須説明
is_enable boolean 必須 有効にする場合は true・無効にする場合は false

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/wphosting/{contract_id}/sites/{servername}/security/{key}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "is_enable": true
}'

レスポンスフィールド

名前説明
security_setting.key string 変更した設定キー
security_setting.is_enable boolean 変更後の状態
message string 処理結果メッセージ。国外アクセス制限の連動が発生した場合は suffix が付加されます(REST API 有効化時: 「(REST API アクセス制限を有効にした場合、ダッシュボード アクセス制限も有効になります)」/ダッシュボード無効化かつ変更前に REST API が ON の場合: 「(ダッシュボード アクセス制限を無効にしたため、REST API アクセス制限も無効にしました)」)。

レスポンス例

200 OK
{
  "security_setting": {
    "key": "foreign_ip_restriction_restapi",
    "is_enable": true
  },
  "message": "セキュリティ設定を変更しました(REST API アクセス制限を有効にした場合、ダッシュボード アクセス制限も有効になります)"
}