API Reference

XServer API リファレンス ‐ サーバー管理

XServer API は、エックスサーバー・XServerビジネスのサーバーパネルで提供している主要機能を REST API で利用するためのインターフェースです。

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

項目値
ベースURLhttps://api.xserver.ne.jp
ベースパス/v1/server/{servername}
プロトコルHTTPS
レスポンス形式JSON
OpenAPI仕様openapi.json

認証

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

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

APIキーはXServerアカウント(契約管理画面)の「APIキー管理」から発行できます。キー名・有効期限・対象サーバーアカウント・権限を設定できます。

APIキーの発行手順については、下記マニュアルをご参照ください。

権限(スコープ)

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

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

レート制限

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

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

プランリクエスト/分リクエスト/日同時接続数
エックスサーバー スタンダード6010,0005
エックスサーバー プレミアム12030,00010
エックスサーバー ビジネス / XServerビジネス 全プラン300100,00020

HTTPステータスコード

成功時

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

ステータス意味対象
200OKすべてのリクエスト(GET / POST / PUT / DELETE)

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

エラーハンドリング

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

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

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

ステータス意味説明
400Bad Requestリクエストが不正
401Unauthorized認証エラー(APIキーが無効・期限切れ)
402Payment Required新規お申し込みに必要なプリペイド残高が不足
403Forbidden権限不足(スコープ不足・IP制限等)
404Not Foundリソースまたはエンドポイントが見つからない
409Conflictサーバー側の制約により操作を完了できなかった
422Unprocessable Entityバリデーションエラー
429Too Many Requestsレート制限超過
500Internal Server Errorサーバー内部エラー
502Bad Gatewayバックエンドとの通信でエラーが発生

エラーコード一覧

レスポンスの error.code には以下のいずれかの値が入ります。

コードHTTP説明
BAD_REQUEST400リクエストの形式が不正(JSONのパースエラー、必須ヘッダー欠落など)
UNAUTHORIZED401APIキーが未指定・無効・期限切れ
FORBIDDEN403APIキーの権限不足、IP制限、または対象サーバーがAPIキーの対象外(対象サーバーの指定外・APIに対応していないプランのサーバーなど)
NOT_FOUND404指定したリソース(ID・アカウント等)が存在しない
PAYMENT_REQUIRED402新規お申し込みに必要なプリペイド残高が不足。入金後、同じ Idempotency-Key で再実行できます
OPERATION_ERROR409リクエストは有効だが、サーバー側の制約により操作を完了できなかった。message に原因が含まれます(例: 重複登録、パスワードポリシー違反など)
FEATURE_UNAVAILABLE409サーバーの状態により、その機能が利用できない(サーバー凍結中・メンテナンス中・サーバー移行中など)。リクエスト自体は正しいため、状態が解消してから再実行してください。詳細は message を参照
SERVER_ID_TAKEN409新規お申し込みで指定したサーバーIDがすでに使用されている
DUPLICATE_REQUEST409同じ Idempotency-Key のリクエストを再送できない状態。詳細は「新規申込の安全な実行」を参照
PRICE_MISMATCH422expected_total_price が現在の価格と一致しない。プラン・料金取得APIで最新価格を確認して再実行してください
PLAN_NOT_AVAILABLE422指定したプランまたは契約期間は新規お申し込みの対象外
VALIDATION_ERROR422入力値または Idempotency-Key のバリデーションエラー。errors 配列にメッセージが含まれます
RATE_LIMIT_EXCEEDED429分あたり・日あたりのリクエスト上限を超過。Retry-After ヘッダーで待機秒数を確認できます
INTERNAL_ERROR500API内部で予期しないエラーが発生
BACKEND_ERROR502バックエンドとの通信・応答処理でエラーが発生。時間をおいて再試行してください

新規申込の安全な実行

POST /v1/server は、プリペイド残高から料金を支払い、サーバー契約を作成するAPIです。最初に dry_run=true で申込内容と税込合計金額を確認してください。dry_run を省略すると false となり、実申請として処理されます。

実申請では、プラン・料金取得APIが返した total_price を expected_total_price に指定し、agree_to_terms=true と Idempotency-Key ヘッダーを送信します。

Idempotency-Key と再実行

  • キーは8〜64文字の英数字・ハイフン・アンダースコアで指定します(UUID推奨)。
  • 入力不備・残高不足・価格不一致などの4xxエラーで却下された場合は、内容を修正して同じキーで再実行できます。
  • 応答を受け取れなかった場合やサーバーエラーの場合は、同じキーでの再送は48時間 409 DUPLICATE_REQUEST になります。サーバー契約一覧と請求履歴で申込状況を確認し、未実行と確認できた場合のみ新しいキーで再申請してください。

共通仕様

サーバー名(servername)について

APIのURLパスに含まれる {servername} には、サーバーの初期ドメインを指定してください。

初期ドメインはサーバー契約時に自動で付与されるドメインで、以下の形式です。

サービス初期ドメインの形式
エックスサーバーサーバーID.xsrv.jp
XServerビジネスサーバーID.xbiz.jp
リクエスト例
GET /v1/server/xs123456.xsrv.jp/server-info

ドメイン所有権確認

一部のAPIでは、操作対象ドメインの所有権確認として _xserver-verify.{domain} の TXT レコード検証が自動で実施されます。

事前に以下の手順で TXT レコードを設定してください。

  1. サーバー情報取得API(GET /v1/server/{servername}/server-info)を実行し、レスポンスの domain_validation_token を取得する
  2. 対象ドメインの DNS に TXT レコードを追加する
    ホスト名: _xserver-verify.{domain}
    値: xserver-verify={取得したトークン}
  3. DNS の反映を待ってから対象APIを実行する

所有権確認が必要なAPIは以下の通りです。

  • ドメイン追加(POST /v1/server/{servername}/domain)
  • メールアカウント作成(POST /v1/server/{servername}/mail)

日本語ドメインについて

日本語ドメイン(国際化ドメイン名)を指定する場合、APIによって指定方法が異なります。

API指定方法
ドメイン追加(POST /domain)日本語ドメインのまま指定可能(例: 日本語.jp)
上記以外のドメイン操作Punycode に変換して指定(例: xn--wgv71a309e.jp)

パスパラメータ・クエリパラメータ・リクエストボディのいずれでドメインを指定する場合も同様です。サブドメインの場合はドメイン部分を Punycode に変換してください(例: blog.xn--wgv71a309e.jp)。

日時について

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

APIキー情報

GET /v1/me 読み取り

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

現在認証に使用しているAPIキーの情報を返します。有効期限と、キーに設定された各サービスの権限・操作対象を確認できます。

すべてのサービスで共通のエンドポイントです。APIキーの疎通確認や、鍵の有効期限が切れていないかの確認に利用できます。

各サービスの権限と操作対象は services に入ります。トップレベルの service_type / servername / permission_type は、旧来型のサーバーAPIキー(対象がサーバー1台のみのキー)との互換のために返される値で、新しいキーには含まれません。

リクエスト例

cURL
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 と同値

レスポンス例

200 OK
{
  "service_type": "server",
  "servername": "xs123456.xsrv.jp",
  "permission_type": "full",
  "expires_at": "2027-04-16 00:00:00",
  "services": {
    "server": {
      "permission_type": "full",
      "target_mode": "selected",
      "targets": ["xs123456.xsrv.jp"]
    }
  }
}
GET /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 任意 実行結果
  • successステータスコード400未満
  • errorステータスコード400以上
status_code integer 任意 HTTPステータスコードの完全一致。status_class と併用できます
method string 任意 HTTPメソッドの完全一致(大文字で指定
  • 例GET
  • POST
  • PUT
  • DELETE)
limit integer 任意 取得件数(1〜500、省略時は50)
cursor string 任意 次のページを取得するためのカーソル。前回レスポンスの next_cursor をそのまま指定してください

リクエスト例

cURL
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

レスポンス例

200 OK
{
  "logs": [
    {
      "method": "POST",
      "path": "/v1/server/xs123456.xsrv.jp/cron",
      "status_code": 422,
      "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"
}

新規お申し込み

GET /v1/server/plans 読み取り

お申し込み可能なプラン・料金を取得

APIからお申し込み可能なプランと、契約期間ごとの料金(税込)の一覧を返します。

ご利用には、APIキー設定で「このキーでサーバーの新規お申し込みを許可する」を有効にする必要があります。

新規お申し込みAPIの expected_total_price には、このAPIが返した対象プラン・契約期間の total_price(キャンペーン適用後の実際のお支払い額)を指定してください。

クエリパラメータ

名前型必須説明
plan_id string 任意 取得するプランを指定します。カンマ区切りで複数指定できます。未指定の場合は全プランを返します

リクエスト例

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

レスポンスフィールド

名前型説明
plans[].plan_id string プランID。新規お申し込みAPIの plan_id に指定します
plans[].plan_name string プラン名
plans[].periods[].months integer 契約期間(月数)
plans[].periods[].total_price integer 契約期間分の合計金額(税込・円・キャンペーン適用後の実際のお支払い額)
plans[].periods[].regular_total_price integer 契約期間分の通常価格(税込・円・キャンペーン適用前)。キャンペーン適用がない場合は total_price と同額
plans[].periods[].campaign_applied boolean キャンペーン価格が適用されているか
plans[].currency string 通貨(JPY)

レスポンス例

200 OK
{
  "plans": [
    {
      "plan_id": "standard",
      "plan_name": "スタンダード",
      "currency": "JPY",
      "periods": [
        { "months": 3, "total_price": 3960, "regular_total_price": 3960, "campaign_applied": false },
        { "months": 12, "total_price": 11880, "regular_total_price": 13200, "campaign_applied": true },
        { "months": 36, "total_price": 35640, "regular_total_price": 35640, "campaign_applied": false }
      ]
    }
  ]
}
POST /v1/server 書き込み

サーバーを新規お申し込み

サーバーの新規契約をお申し込みます。料金はプリペイド残高から引き落とされ、無料お試し期間なしの本契約となります。残高が不足している場合は PAYMENT_REQUIRED エラーになります。

ご利用には、APIキー設定で「このキーでサーバーの新規お申し込みを許可する」を有効にする必要があります。設定時には20,000円以上のプリペイド残高が必要です。「指定のサーバーのみ」のAPIキーからは利用できません。新規アカウントの作成には対応していません。

実申請前に dry_run=true で料金とお申し込み内容を確認してください。実申請には Idempotency-Key が必要です。安全な実行と再申請については、ページ上部の「新規申込の安全な実行」を参照してください。

成功時はお申し込みした契約情報を server に返します。status が setup_pending の場合もお申し込みとお支払いは完了しており、その後の状況はお申し込み状況確認APIで確認できます。

リクエストヘッダー

名前型必須説明
Idempotency-Key string dry_run=false時必須 実申請時に必須。8〜64文字の英数字・ハイフン・アンダースコア(UUID推奨)。dry_run=true の場合も送信できます

リクエストボディ

名前型必須説明
plan_id string 必須 プランID。プラン・料金取得APIが返した plan_id を指定します
period integer 必須 契約期間(月数)。プラン・料金取得APIが返した months から指定します
server_id string 任意 希望するサーバーID。3〜12文字で、小文字の英字で始まる小文字英数字のみ。省略時は自動で割り当てられます。指定したIDが利用できない場合はエラーになります
expected_total_price integer 必須 合計金額(税込・円・キャンペーン適用後)。プラン・料金取得APIが返した total_price を指定します。現在価格と一致しない場合はエラー(PRICE_MISMATCH)になります
agree_to_terms boolean 必須 「利用規約・個人情報の取り扱い」を確認し、同意した場合に true を指定してください(true 必須)
partner_code string 任意 お取次店コード(半角英数50文字以内)。パートナー(お取次店)経由のお申し込みの場合に指定します
auto_renew boolean 任意 自動更新の設定(省略時は true)。true でプリペイドからの自動引き落としが有効になります。更新時に残高が不足すると設定が解除され、メールで通知されます。プリペイド残高が0円の間は会員管理画面の「自動更新設定」に契約が表示されませんが、設定自体は維持されます
dry_run boolean 任意 true の場合、課金・契約作成を行わずに実行可否のみ検証。省略時は false(実申請)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{
    "plan_id": "standard",
    "period": 12,
    "server_id": "",
    "expected_total_price": 11880,
    "agree_to_terms": true,
    "dry_run": false
}'

レスポンスフィールド

名前型説明
server.server_id string サーバーID
server.servername string サーバー名(初期ドメイン)。各サーバー管理APIの {servername} に指定します
server.plan_id string プランID
server.period integer 契約期間(月数)
server.status string サーバーの状態
  • active利用可能
  • setup_pendingサーバー設定処理中。setup_pending の場合は、お申し込み状況確認APIで設定状況を確認できます
server.expiry_date string|null 契約の有効期限(YYYY-MM-DD)。setup_pending の間は null
server.auto_renew boolean 自動更新設定の有無

レスポンス例

200 OK
{
  "server": {
    "server_id": "xs123456",
    "servername": "xs123456.xsrv.jp",
    "plan_id": "standard",
    "period": 12,
    "status": "active",
    "expiry_date": "2027-08-31",
    "auto_renew": true
  }
}

レスポンスフィールド(dry_run=true の場合)

課金・契約作成を行わずに実行可否を検証した結果

名前型説明
dry_run boolean dry run であることを示す値(true)
total_price integer 実申請時の合計金額(税込・円)

レスポンス例(dry_run=true の場合)

200 OK
{
  "dry_run": true,
  "total_price": 11880
}
GET /v1/server/{servername}/signup-status 読み取り

お申し込み状況を確認

お申し込み後のサーバー設定状況を返します。新規お申し込みAPIのレスポンスの status が setup_pending だった場合の確認先です。

ご利用には、APIキー設定で「このキーでサーバーの新規お申し込みを許可する」を有効にする必要があります。

setup_pending は通常自動で解消され、active になるとサーバーを利用できます。凍結された場合は suspended を返します。長時間 setup_pending のまま解消されない場合は、サポートまでお問い合わせください。

パスパラメータ

名前説明
servername新規お申し込みAPIのレスポンスで返されたサーバー名(初期ドメイン)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/signup-status" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
servername string サーバー名(初期ドメイン)
server_id string サーバーID
plan_id string プランID
status string サーバーの状態
  • active利用可能
  • setup_pendingサーバー設定処理中
  • suspended凍結中
expiry_date string|null 契約の有効期限(YYYY-MM-DD)。setup_pending の間は null

レスポンス例

200 OK
{
  "servername": "xs123456.xsrv.jp",
  "server_id": "xs123456",
  "plan_id": "standard",
  "status": "active",
  "expiry_date": "2027-08-31"
}

サーバー契約管理

GET /v1/server 読み取り

サーバー契約の一覧を取得

アカウントのサーバー契約の一覧を返します。

会員管理画面に表示される契約が対象です。解約済みでも利用期限内でサーバーが利用可能な契約は一覧に含まれます。

APIキーの操作範囲が「指定のサーバーのみ」の場合は、対象に設定されたサーバーのみ返します。

リクエスト例

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

レスポンスフィールド

名前型説明
servers[].servername string サーバー名(初期ドメイン)。各サーバー管理APIの {servername} に指定します
servers[].server_id string サーバーID
servers[].plan_id string プランID
servers[].plan_name string プラン名
servers[].status string サーバーの状態
  • active利用可能
  • setup_pendingサーバー設定処理中
  • suspended凍結中
servers[].expiry_date string|null 契約の有効期限(YYYY-MM-DD)。setup_pending の間は null
servers[].auto_renew boolean 自動更新設定の有無
servers[].memo string メモ。未設定の場合は空文字

レスポンス例

200 OK
{
  "servers": [
    {
      "servername": "xs123456.xsrv.jp",
      "server_id": "xs123456",
      "plan_id": "standard",
      "plan_name": "スタンダード",
      "status": "active",
      "expiry_date": "2027-08-31",
      "auto_renew": true,
      "memo": "制作会社A案件"
    }
  ]
}
GET /v1/server/{servername}/memo 読み取り

メモを取得

サーバー契約に設定したメモを返します。

パスパラメータ

名前説明
servernameサーバー名(初期ドメイン)

リクエスト例

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

レスポンスフィールド

名前型説明
servername string サーバー名(初期ドメイン)
memo string メモ。未設定の場合は空文字

レスポンス例

200 OK
{
  "servername": "xs123456.xsrv.jp",
  "memo": "制作会社A案件"
}
PUT /v1/server/{servername}/memo 書き込み

メモを更新

サーバー契約のメモを更新します。契約管理画面のサーバー一覧に表示されるメモと同一です。空文字を指定するとメモを削除します。絵文字など、eucJP-winで表現できない文字は使用できません。

パスパラメータ

名前説明
servernameサーバー名(初期ドメイン)

リクエストボディ

名前型必須説明
memo string 必須 メモ(最大500文字)。空文字で削除。絵文字など、eucJP-winで表現できない文字は使用できません

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/memo" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "制作会社A案件"
}'

レスポンスフィールド

名前型説明
servername string サーバー名(初期ドメイン)
memo string 更新後のメモ
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "servername": "xs123456.xsrv.jp",
  "memo": "制作会社A案件",
  "message": "メモを更新しました"
}

サーバー情報

GET /v1/server/{servername}/server-info 読み取り

サーバー情報を取得

サーバーのスペック・ソフトウェアバージョン・ネームサーバーなどの基本情報を返します。サーバーパネルの「サーバー情報」画面に相当します。

リクエスト例

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

レスポンスフィールド

名前型説明
server_id string サーバーID(例: xs123456)
hostname string ホスト名(例: sv12345.xserver.jp)
ip_address string IPアドレス
os string OS名(例: Linux)
cpu string|null CPU情報。XServerビジネスのサブアカウントでは null
memory string|null メモリ容量(例: 1024GB)。XServerビジネスのサブアカウントでは null
apache_version string Apacheバージョン(パッチ番号は x 表記。例: 2.4.x)
perl_versions string[] 利用可能なPerlバージョンの配列
php_versions string[] 利用可能なPHPバージョンの配列(PHP8→PHP7→PHP5→PHP4 の順)
db_versions string[] 利用可能なDB製品+バージョンの配列。先頭が mysql または mariadb(例: mariadb10.5.x)
name_servers string[] ネームサーバーの配列(通常 ns1〜ns5)
domain_validation_token string ドメイン追加時の所有権確認用トークン。_xserver-verify.{domain} の TXT レコードに xserver-verify={token} を設定して使用する

レスポンス例

200 OK
{
  "server_id": "xs123456",
  "hostname": "sv12345.xserver.jp",
  "ip_address": "123.45.67.89",
  "os": "Linux",
  "cpu": "AMD EPYC 9534( 2.45GHz ) x 2",
  "memory": "1536GB",
  "apache_version": "2.4.x",
  "perl_versions": ["5.26", "5.16"],
  "php_versions": ["8.5.2", "8.4.12", "8.3.21", "8.2.28", "7.4.33", "7.3.33"],
  "db_versions": ["mariadb10.5.x"],
  "name_servers": ["ns1.xserver.jp", "ns2.xserver.jp", "ns3.xserver.jp", "ns4.xserver.jp", "ns5.xserver.jp"],
  "domain_validation_token": "a1b2c3d4e5f6..."
}
GET /v1/server/{servername}/server-info/usage 読み取り

サーバー利用状況を取得

ディスク使用量・ファイル数・各種設定件数を返します。サーバーパネルのトップページに表示される利用状況に相当します。ディスク容量はサーバーパネルと同じ基準(MB を 1000 で除算した小数2桁)で GB 換算した値を返します。

リクエスト例

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

レスポンスフィールド

名前型説明
disk.quota_gb number ディスク容量の上限(GB、小数2桁)
disk.used_gb number ディスク使用量(GB、小数2桁)
disk.file_limit integer ファイル数の上限(プランにより 0 の場合は無制限)
disk.file_count integer 現在のファイル数
counts.domains integer ドメイン設定数(初期ドメインを除く)
counts.subdomains integer サブドメイン設定数
counts.mail_accounts integer メールアカウント数
counts.ftp_accounts integer FTPアカウント数(メインアカウントを除く追加分)
counts.mysql_databases integer MySQLデータベース数

レスポンス例

200 OK
{
  "disk": {
    "quota_gb": 500,
    "used_gb": 0.67,
    "file_limit": 0,
    "file_count": 12345
  },
  "counts": {
    "domains": 3,
    "subdomains": 2,
    "mail_accounts": 5,
    "ftp_accounts": 2,
    "mysql_databases": 4
  }
}

自動バックアップの取得・復元

GET /v1/server/{servername}/auto-backup/backup-dates 読み取り

選択可能なバックアップ日一覧を取得

取得・復元の申込で指定できる backup_date の候補を返します。通常14日分ですが、サーバーによっては7日分のみの場合があります。backup_dates[].available はその日のバックアップデータが存在するかを示します。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-backup/backup-dates" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
backup_dates[].date string バックアップ日(Y-m-d)
backup_dates[].available boolean その日のバックアップデータが存在するか(日次バックアップ成功日)

レスポンス例

200 OK
{
  "backup_dates": [
    {
      "date": "2026-06-03",
      "available": true
    },
    {
      "date": "2026-06-02",
      "available": false
    }
  ]
}
POST /v1/server/{servername}/auto-backup 書き込み

自動バックアップの取得または復元を申し込む

指定したバックアップ日のデータ取得(operation_type=fetch)または復元(operation_type=restore)を非同期で申し込みます。レスポンスは申込受付のみです。進捗は GET /auto-backup/{request_id} をポーリングし、status が succeeded または failed になるまで確認してください。operation_type=restore はサーバー上のデータを上書きする破壊的操作であり、取り消しできません。operation_type=fetch は userbackup 配下へバックアップデータを配置します。完了後は FTP 等で取得してください。利用できない backup_date や処理中の申込がある場合は 409(OPERATION_ERROR)を返します。scope=selected のときは domain_elements の指定が必須です。

リクエストボディ

名前型必須説明
backup_date string 必須 対象バックアップ日(Y-m-d。GET /auto-backup/backup-dates で available=true の日)
operation_type string 必須 処理種別
  • fetchデータ取得
  • restore復元
scope string 必須 処理方法
  • allサーバー領域全体
  • selected対象ドメイン・種別を指定
domain_elements[].domain string 任意 契約ドメイン。scope=selected のとき domain_elements を1件以上指定(最大10ドメイン)
domain_elements[].elements string[] 任意 対象種別
  • web公開フォルダ
  • settingWeb用設定ファイル
  • mailメール

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-backup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "backup_date": "2026-06-01",
    "operation_type": "fetch",
    "scope": "all"
}'
scope=selected のリクエスト例
{
  "backup_date": "2026-06-01",
  "operation_type": "fetch",
  "scope": "selected",
  "domain_elements": [
    {
      "domain": "example.com",
      "elements": ["web", "setting"]
    },
    {
      "domain": "other.com",
      "elements": ["mail"]
    }
  ]
}

レスポンスフィールド

名前型説明
request_id integer 申込ID(正の整数。履歴詳細・状態確認に使用)
request_date string 申込日時
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "request_id": 12345,
  "request_date": "2026-06-03 10:00:00",
  "message": "自動バックアップの取得を申し込みました"
}
GET /v1/server/{servername}/auto-backup 読み取り

自動バックアップ申込履歴一覧を取得

過去の取得・復元申込の履歴を返します。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-backup" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
requests[].request_id integer 申込ID(正の整数)
requests[].request_date string 申込日時
requests[].backup_date string 対象バックアップ日(Y-m-d)
requests[].operation_type string fetch または restore
requests[].status string pending / running / succeeded / failed

レスポンス例

200 OK
{
  "requests": [
    {
      "request_id": 12345,
      "request_date": "2026-06-03 10:00:00",
      "backup_date": "2026-06-01",
      "operation_type": "fetch",
      "status": "succeeded"
    }
  ]
}
GET /v1/server/{servername}/auto-backup/{request_id} 読み取り

自動バックアップ申込履歴の詳細を取得

指定した申込の詳細を返します。申込後の進捗確認に使用してください。存在しない申込IDは 404(NOT_FOUND)を返します。

パスパラメータ

名前説明
request_id申込ID(正の整数。POST /auto-backup または履歴一覧で得られる request_id)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-backup/{request_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
request_id integer 申込ID(正の整数)
request_date string 申込日時
backup_date string 対象バックアップ日(Y-m-d)
operation_type string fetch または restore
scope string all または selected
status string pending / running / succeeded / failed
ended_at string|null 終了日時(succeeded 時)
output_path string|null 取得先パス(operation_type=fetch 時。未設定時は null)。配置データは24時間経過で自動削除されます
failure_reason string|null 失敗理由(status=failed 時)
  • insufficient_disk_space空き容量不足
  • backup_not_foundバックアップ不存在
  • fetch_failed取得失敗(operation_type=fetch 時)
  • restore_failed復元失敗(operation_type=restore 時)
  • quota_exceededクォータ超過
  • server_copy_failedサーバー側コピー失敗
  • infrastructure_error基盤エラー
  • processing_aborted処理中断
  • processing_failedその他の処理失敗
required_free_gb string|null 必要空き容量GB(failure_reason=insufficient_disk_space 時)
domain_elements[].domain string 契約ドメイン
domain_elements[].elements string[] 対象種別
  • web公開フォルダ
  • settingWeb用設定ファイル
  • mailメール

レスポンス例

200 OK
{
  "request_id": 12345,
  "request_date": "2026-06-03 10:00:00",
  "backup_date": "2026-06-01",
  "operation_type": "fetch",
  "scope": "selected",
  "status": "failed",
  "ended_at": null,
  "output_path": "/home/user/userbackup/",
  "failure_reason": "insufficient_disk_space",
  "required_free_gb": "12.0",
  "domain_elements": [
    {
      "domain": "example.com",
      "elements": ["web", "mail"]
    }
  ]
}

Cron設定

GET /v1/server/{servername}/cron 読み取り

Cron一覧を取得

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

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{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/server/{servername}/cron 書き込み

Cronを新規追加

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

リクエストボディ

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

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{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/server/{servername}/cron/{cron_id} 書き込み

Cronを変更

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

パスパラメータ

名前説明
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/server/{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/server/{servername}/cron/{cron_id} 書き込み

Cronを削除

パスパラメータ

名前説明
cron_idCronのハッシュID

リクエスト例

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

レスポンスフィールド

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

レスポンス例

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

SSH設定

GET /v1/server/{servername}/ssh 読み取り

SSH設定を取得

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

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{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": "xs123456.xsrv.jp",
    "port": 10022,
    "username": "xs123456",
    "auth_method": "publickey"
  },
  "key_count": 3
}
PUT /v1/server/{servername}/ssh 書き込み

SSH設定を変更

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

リクエストボディ

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

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{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接続状態(送信時のみ)
abroad_access_restriction boolean 変更後の国外制限状態(送信時のみ)
message string 処理結果メッセージ

レスポンス例

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

SSH公開鍵一覧を取得

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

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{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/server/{servername}/ssh/key 書き込み

SSH公開鍵を登録

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

リクエストボディ

名前型必須説明
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/server/{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 処理結果メッセージ

レスポンス例

200 OK
{
  "id": 2,
  "label": "デプロイ用",
  "public_key": "ssh-ed25519 AAAA...",
  "status": "on",
  "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
  "message": "SSH鍵ペアを生成しました"
}
PUT /v1/server/{servername}/ssh/key/{key_id} 書き込み

SSH公開鍵を更新

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

パスパラメータ

名前説明
key_id公開鍵ID

リクエストボディ

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

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{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/server/{servername}/ssh/key/{key_id} 書き込み

SSH公開鍵を削除

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

パスパラメータ

名前説明
key_id公開鍵ID

リクエスト例

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

レスポンスフィールド

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

レスポンス例

200 OK
{
  "id": 1,
  "message": "SSH公開鍵を削除しました"
}

リソースモニター

GET /v1/server/{servername}/resource-monitor 読み取り

指定日のCPU・メモリ・転送量時系列を取得

指定日の CPU・メモリ・転送量を5分刻みの時系列で返します。date は当日を含む直近1か月以内のみ指定できます。※ 本機能は XServerビジネス(全プラン)では利用できません。

クエリパラメータ

名前型必須説明
date string 必須 対象日(Y-m-d または Ymd。当日含む直近1か月)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/resource-monitor?date=VALUE" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
available boolean リソースモニターが利用可能かどうか(成功時は常に true。非対応契約は409)
date string 対象日(Y-m-d)
cpu.unit string 単位。cores(使用量)または percent(使用率)
cpu.datas metric_series[] 5分刻み時系列の配列。各要素は [ミリ秒UNIX時刻, 値|null]。起点は対象日 00:00:00(Asia/Tokyo)
memory.unit string 単位。GB(使用量)または percent(使用率)
memory.datas metric_series[] 5分刻み時系列の配列。各要素は [ミリ秒UNIX時刻, 値|null]。起点は対象日 00:00:00(Asia/Tokyo)
traffic.unit string 単位(GB)
traffic.datas metric_series[] 5分刻み累積転送量(GB)の配列。各要素は [ミリ秒UNIX時刻, 累積転送量|null]。起点は対象日 00:00:00(Asia/Tokyo)

レスポンス例

200 OK
{
  "available": true,
  "date": "2026-06-01",
  "cpu": {
    "unit": "cores",
    "datas": [
      [1780239600000, 0.32],
      [1780239900000, 0.45],
      [1780240200000, null]
    ]
  },
  "memory": {
    "unit": "GB",
    "datas": [
      [1780239600000, 2.0],
      [1780239900000, 2.2]
    ]
  },
  "traffic": {
    "unit": "GB",
    "datas": [
      [1780239600000, 11.2],
      [1780239900000, 11.5]
    ]
  }
}

サイト転送設定

GET /v1/server/{servername}/url-redirect 読み取り

サイト転送設定一覧を取得

サイト転送設定の一覧を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/url-redirect" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
url_redirects[].id string サイト転送設定のID(DELETEで使用)
url_redirects[].domain string 契約ドメイン
url_redirects[].from_host string 転送元ホスト(FQDN)
url_redirects[].from_path string 転送元パス
url_redirects[].redirect_to_url string 転送先URL
url_redirects[].status_code integer リダイレクト時のステータスコード
  • 301恒久的
  • 302一時的
url_redirects[].decoded_from_host string 転送元ホストの Unicode 表記(Punycode の場合のみ)

レスポンス例

200 OK
{
  "url_redirects": [
    {
      "id": "a1b2c3d4e5f67890",
      "domain": "example.com",
      "from_host": "example.com",
      "from_path": "/old-path",
      "redirect_to_url": "https://example.com/new-path",
      "status_code": 301
    }
  ]
}
POST /v1/server/{servername}/url-redirect 書き込み

サイト転送設定を追加

サイト転送設定を追加します。

リクエストボディ

名前型必須説明
domain string 必須 契約ドメイン(最大253文字。日本語ドメインの場合はPunycodeで指定)
from_host string 必須 転送元ホスト(FQDN。契約ドメインまたはサブドメイン)
from_path string 任意 転送元パス(英数字・記号のみ)
redirect_to_url string 必須 転送先URL(http または https)
status_code integer 必須 リダイレクト時のステータスコード
  • 301恒久的
  • 302一時的

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/url-redirect" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "from_host": "example.com",
    "from_path": "\/old-path",
    "redirect_to_url": "https:\/\/example.com\/new-path",
    "status_code": 301
}'

レスポンスフィールド

名前型説明
id string 追加されたサイト転送設定のID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "a1b2c3d4e5f67890",
  "message": "サイト転送設定を追加しました"
}
DELETE /v1/server/{servername}/url-redirect/{redirect_id} 書き込み

サイト転送設定を削除

redirect_id で指定したサイト転送設定を削除します。id は GET または POST のレスポンスで得られる ID です。

パスパラメータ

名前説明
redirect_idサイト転送設定のID(一覧取得または追加で得られる id)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/url-redirect/{redirect_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "サイト転送設定を削除しました"
}

アクセス拒否設定

GET /v1/server/{servername}/access-deny 読み取り

アクセス拒否設定一覧を取得

アクセス拒否設定の一覧を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。サーバーキャッシュが有効なドメインでは、拒否設定が反映されない場合があります。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/access-deny" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
access_denies[].id string アクセス拒否設定のID(PUT / DELETEで使用)
access_denies[].domain string 契約ドメイン
access_denies[].ip_address string 拒否IPアドレス・ホスト(IPv4 / CIDR / 部分IP / ホスト名)
access_denies[].memo string メモ

レスポンス例

200 OK
{
  "access_denies": [
    {
      "id": "a1b2c3d4e5f67890",
      "domain": "example.com",
      "ip_address": "192.168.1.1",
      "memo": "社内テスト用"
    }
  ]
}
POST /v1/server/{servername}/access-deny 書き込み

アクセス拒否設定を追加

指定ドメインにアクセス拒否設定を追加します。同一 IP/ホストの重複追加は 409 です。

リクエストボディ

名前型必須説明
domain string 必須 契約ドメイン(最大253文字。日本語ドメインの場合はPunycodeで指定)
ip_address string 必須 拒否IPアドレス・ホスト(IPv4 / CIDR / 部分IP / ホスト名)
memo string 任意 メモ(最大500文字)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/access-deny" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "ip_address": "192.168.1.1",
    "memo": "社内テスト用"
}'

レスポンスフィールド

名前型説明
id string 追加されたアクセス拒否設定のID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "a1b2c3d4e5f67890",
  "message": "アクセス拒否設定を追加しました"
}
PUT /v1/server/{servername}/access-deny/{deny_id} 書き込み

アクセス拒否設定のメモを更新

指定したアクセス拒否設定のメモのみを更新します。

パスパラメータ

名前説明
deny_idアクセス拒否設定のID(一覧取得または追加で得られる id)

リクエストボディ

名前型必須説明
memo string 任意 メモ(最大500文字。省略または空文字でクリア)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/access-deny/{deny_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "更新メモ"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "アクセス拒否設定のメモを更新しました"
}
DELETE /v1/server/{servername}/access-deny/{deny_id} 書き込み

アクセス拒否設定を削除

指定したアクセス拒否設定を削除します。

パスパラメータ

名前説明
deny_idアクセス拒否設定のID(一覧取得または追加で得られる id)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/access-deny/{deny_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "アクセス拒否設定を削除しました"
}

XPageSpeed設定

GET /v1/server/{servername}/xpagespeed 読み取り

XPageSpeed設定一覧を取得

契約ドメインごとの XPageSpeed 設定を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。※ 本機能は XServerビジネス(全プラン)、エックスサーバー(旧X2スタンダードプラン / 旧X2アドバンスドプラン)では利用できません。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
xpagespeed_settings[].domain string ドメイン名
xpagespeed_settings[].settings.xoptimize_images boolean 画像最適化の有効/無効
xpagespeed_settings[].settings.lazyload_images boolean 画像遅延読み込みの有効/無効
xpagespeed_settings[].settings.xoptimize_css boolean CSS最適化の有効/無効
xpagespeed_settings[].settings.lazyload_css boolean CSS遅延読み込みの有効/無効
xpagespeed_settings[].settings.xoptimize_javascript boolean JavaScript最適化の有効/無効
xpagespeed_settings[].settings.lazyload_javascript boolean JavaScript遅延読み込みの有効/無効

レスポンス例

200 OK
{
  "xpagespeed_settings": [
    {
      "domain": "example.com",
      "settings": {
        "xoptimize_images": true,
        "lazyload_images": false,
        "xoptimize_css": false,
        "lazyload_css": false,
        "xoptimize_javascript": false,
        "lazyload_javascript": false
      }
    }
  ]
}
PUT /v1/server/{servername}/xpagespeed/{domain} 書き込み

XPageSpeedの最適化機能を変更

指定ドメインの XPageSpeed 最適化機能を1件ずつ変更します。body には変更する機能のキーを1つだけ指定してください。※ 本機能は XServerビジネス(全プラン)、エックスサーバー(旧X2スタンダードプラン / 旧X2アドバンスドプラン)では利用できません。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
xoptimize_images boolean 任意 画像最適化の有効/無効
lazyload_images boolean 任意 画像遅延読み込みの有効/無効
xoptimize_css boolean 任意 CSS最適化の有効/無効
lazyload_css boolean 任意 CSS遅延読み込みの有効/無効
xoptimize_javascript boolean 任意 JavaScript最適化の有効/無効
lazyload_javascript boolean 任意 JavaScript遅延読み込みの有効/無効

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/xpagespeed/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "xoptimize_images": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "XPageSpeed設定を変更しました"
}

WordPress簡単インストール

GET /v1/server/{servername}/wp 読み取り

WordPress一覧を取得

簡単インストールでインストール済みのWordPress一覧を返します。domain を指定すると、そのドメインのインストールのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
wordpress[].id string WordPressのハッシュID(PUT/DELETEで使用)
wordpress[].domain string 親ドメイン
wordpress[].url string インストール先URL
wordpress[].title string サイトのタイトル
wordpress[].version string WordPressバージョン
wordpress[].db_name string 使用しているデータベース名
wordpress[].db_user string 使用しているデータベースユーザー名
wordpress[].memo string メモ

レスポンス例

200 OK
{
  "wordpress": [
    {
      "id": "a1b2c3d4e5f6g7h8",
      "domain": "example.com",
      "url": "http://example.com/blog",
      "title": "My Blog",
      "version": "6.4.2",
      "db_name": "xs123456_db01",
      "db_user": "xs123456_user01",
      "memo": "ブログ用"
    }
  ]
}
POST /v1/server/{servername}/wp 書き込み

WordPressを新規インストール

指定URLにWordPressを簡単インストールします。URLにはドメインまたはサブドメインを指定でき、パス付きも可能です。スキーム(https:// 等)は省略できます。

リクエストボディ

名前型必須説明
url string 必須 インストール先URL(最大512文字)。スキーム省略可。例: example.com/blog, https://sub.example.com/wp
title string 必須 サイトタイトル(最大255文字)
admin_username string 必須 管理者ユーザー名(最大255文字)
admin_password string 必須 管理者パスワード(7文字以上)
admin_email string 必須 管理者メールアドレス(最大255文字)
memo string 任意 メモ(最大500文字)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/wp" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https:\/\/example.com\/blog",
    "title": "My Blog",
    "admin_username": "admin",
    "admin_password": "SecurePass123",
    "admin_email": "admin@example.com",
    "memo": "ブログ用WP"
}'

レスポンスフィールド

名前型説明
id string 作成されたWordPressのハッシュID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "a1b2c3d4e5f6g7h8",
  "message": "WordPressをインストールしました"
}
PUT /v1/server/{servername}/wp/{wp_id} 書き込み

WordPress設定を変更

現在変更可能な項目はメモのみです。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
wp_idWordPressのID(一覧取得で得られる id)

リクエストボディ

名前型必須説明
memo string 任意 メモ(省略時は空文字に更新)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/wp/{wp_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "ブログ用WP"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "WordPress設定を変更しました"
}
DELETE /v1/server/{servername}/wp/{wp_id} 書き込み

WordPressを削除

WordPressをアンインストールします。関連するデータベース・ユーザー・Cronの削除はオプションで制御できます。デフォルトでは delete_db / delete_cron は true ですが、delete_db_user は false(DBユーザーは残す)である点に注意してください。完全に削除したい場合は delete_db_user: true を明示的に指定してください。

パスパラメータ

名前説明
wp_idWordPressのID

リクエストボディ

名前型必須説明
delete_db boolean 任意 関連するMySQLデータベースも削除するか(デフォルト: true)
delete_db_user boolean 任意 関連するMySQLユーザーも削除するか(デフォルト: false。完全削除したい場合は明示的に true を指定)
delete_cron boolean 任意 キャッシュ自動削除Cronも削除するか(デフォルト: true)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/wp/{wp_id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "delete_db": true,
    "delete_db_user": false,
    "delete_cron": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "WordPressを削除しました"
}

WordPressセキュリティ設定

GET /v1/server/{servername}/wordpress-security 読み取り

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

契約ドメインごとの WordPress セキュリティ設定(コメント制限・ログイン試行回数制限・国外アクセス制限・IPアドレス制限)を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
domains[].domain string 対象ドメイン
domains[].ip_restriction.enabled boolean IPアドレス制限(ダッシュボード)の有効/無効
domains[].ip_restriction.allowed_ip_addresses string[] IPアドレス制限のホワイトリスト(IPアドレス)
domains[].foreign_ip_restriction.dashboard.enabled boolean ダッシュボード アクセス制限の有効/無効 ※IPアドレス制限設定が有効な場合、本設定にかかわらずIPアドレス制限設定が優先されます。 ※REST API アクセス制限が有効な場合、本制限も必ず有効になります。
domains[].foreign_ip_restriction.dashboard.allowed_ip_addresses string[] ダッシュボード アクセス制限のホワイトリスト(IPアドレス)
domains[].foreign_ip_restriction.xml_rpc_api.enabled boolean XML-RPC API アクセス制限の有効/無効
domains[].foreign_ip_restriction.xml_rpc_api.allowed_ip_addresses string[] XML-RPC API アクセス制限のホワイトリスト(IPアドレス)
domains[].foreign_ip_restriction.rest_api.enabled boolean REST API アクセス制限の有効/無効 ※国外アクセス制限が無効な場合、本設定も必ず無効になります。
domains[].foreign_ip_restriction.rest_api.allowed_ip_addresses string[] REST API アクセス制限のホワイトリスト(IPアドレス)
domains[].foreign_ip_restriction.wlwmanifest.enabled boolean wlwmanifest.xml アクセス制限の有効/無効
domains[].foreign_ip_restriction.wlwmanifest.allowed_ip_addresses string[] wlwmanifest.xml アクセス制限のホワイトリスト(IPアドレス)
domains[].login_attempt_limit.enabled boolean ログイン試行回数制限の有効/無効
domains[].comment_restriction.bulk_post.enabled boolean 単一ユーザーからの大量投稿の有効/無効
domains[].comment_restriction.foreign_post.enabled boolean 国外からの投稿の有効/無効

レスポンス例

200 OK
{
  "domains": [
    {
      "domain": "example.com",
      "ip_restriction": { "enabled": false, "allowed_ip_addresses": ["192.168.1.0/24"] },
      "foreign_ip_restriction": {
        "dashboard": { "enabled": true, "allowed_ip_addresses": ["203.0.113.10"] },
        "xml_rpc_api": { "enabled": false, "allowed_ip_addresses": [] },
        "rest_api": { "enabled": true, "allowed_ip_addresses": [] },
        "wlwmanifest": { "enabled": false, "allowed_ip_addresses": [] }
      },
      "login_attempt_limit": { "enabled": true },
      "comment_restriction": { "bulk_post": { "enabled": true }, "foreign_post": { "enabled": false } }
    }
  ]
}
POST /v1/server/{servername}/wordpress-security 書き込み

WordPressセキュリティ設定を更新

指定ドメインの WordPress セキュリティ設定を更新します。送信したブロック・フィールドのみ更新され、省略した項目は現状維持です。

リクエストボディ

名前型必須説明
domain string 必須 対象ドメイン(例: example.com。日本語ドメインの場合はPunycodeで指定)
comment_restriction.bulk_post.enabled boolean 任意 単一ユーザーからの大量投稿の有効/無効
comment_restriction.foreign_post.enabled boolean 任意 国外からの投稿の有効/無効
login_attempt_limit.enabled boolean 任意 ログイン試行回数制限の有効/無効(login_attempt_limit ブロック指定時は必須)
foreign_ip_restriction.dashboard.enabled boolean 任意 ダッシュボード アクセス制限の有効/無効
foreign_ip_restriction.dashboard.allowed_ip_addresses array 任意 ダッシュボード アクセス制限のホワイトリスト(IPv4形式またはワイルドカード。空配列でクリア)
foreign_ip_restriction.xml_rpc_api.enabled boolean 任意 XML-RPC API アクセス制限の有効/無効
foreign_ip_restriction.xml_rpc_api.allowed_ip_addresses array 任意 XML-RPC API アクセス制限のホワイトリスト
foreign_ip_restriction.rest_api.enabled boolean 任意 REST API アクセス制限の有効/無効
foreign_ip_restriction.rest_api.allowed_ip_addresses array 任意 REST API アクセス制限のホワイトリスト
foreign_ip_restriction.wlwmanifest.enabled boolean 任意 wlwmanifest.xml アクセス制限の有効/無効
foreign_ip_restriction.wlwmanifest.allowed_ip_addresses array 任意 wlwmanifest.xml アクセス制限のホワイトリスト
ip_restriction.enabled boolean 任意 IPアドレス制限(ダッシュボード)の有効/無効 ※本設定が有効な場合、国外アクセス制限のダッシュボード アクセス制限の設定にかかわらず本設定が優先されます。有効化するには許可IPアドレスを1件以上登録してください。
ip_restriction.allowed_ip_addresses array 任意 IPアドレス制限のホワイトリスト(IPv4 または CIDR。空配列でクリア)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/wordpress-security" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "comment_restriction": {
        "bulk_post": {
            "enabled": true
        },
        "foreign_post": {
            "enabled": false
        }
    },
    "login_attempt_limit": {
        "enabled": true
    },
    "foreign_ip_restriction": {
        "dashboard": {
            "enabled": true,
            "allowed_ip_addresses": [
                "203.0.113.10"
            ]
        },
        "xml_rpc_api": {
            "enabled": true,
            "allowed_ip_addresses": [

            ]
        },
        "rest_api": {
            "enabled": true,
            "allowed_ip_addresses": [

            ]
        },
        "wlwmanifest": {
            "enabled": true,
            "allowed_ip_addresses": [

            ]
        }
    },
    "ip_restriction": {
        "enabled": true,
        "allowed_ip_addresses": [
            "203.0.113.10",
            "192.168.1.0\/24"
        ]
    }
}'

レスポンスフィールド

名前型説明
message string 処理結果メッセージ(連動・優先関係がある場合は括弧付きで追記)。例: REST API 有効化時「(REST API アクセス制限を有効にした場合、ダッシュボード アクセス制限も有効になります)」、ダッシュボード有効化時「(IPアドレス制限が有効な場合、国外アクセス制限(ダッシュボード)より IPアドレス制限が優先されます)」、ダッシュボード無効化で REST API も連動 OFF したとき「(ダッシュボード アクセス制限を無効にしたため、REST API アクセス制限も無効にしました)」、IP制限有効化時「(ダッシュボードのアクセス制御は IPアドレス制限が優先されます)」

レスポンス例

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

メールアカウント設定

GET /v1/server/{servername}/mail 読み取り

メールアカウント一覧を取得

サーバーに登録済みのメールアカウントを一覧で返します。domain を指定すると、そのドメインのアカウントのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
accounts[].mail_address string メールアドレス
accounts[].quota_mb integer メールボックス容量(MB)
accounts[].memo string メモ

レスポンス例

200 OK
{
  "accounts": [
    {
      "mail_address": "info@example.com",
      "quota_mb": 2000,
      "memo": "問い合わせ用"
    }
  ]
}
GET /v1/server/{servername}/mail/{mail_account} 読み取り

メールアカウント詳細を取得

指定したメールアカウントの詳細情報(容量・使用量を含む)を返します。

パスパラメータ

名前説明
mail_accountメールアカウント(例: user@example.com)。URLエンコードすること

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail/{mail_account}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
mail_address string メールアドレス
quota_mb integer メールボックス容量上限(MB)
used_mb number メールボックス使用量(MB)
memo string メモ

レスポンス例

200 OK
{
  "mail_address": "info@example.com",
  "quota_mb": 2000,
  "used_mb": 12.5,
  "memo": "問い合わせ用"
}
POST /v1/server/{servername}/mail 書き込み

メールアカウントを作成

メールアカウントを作成します。作成時にドメイン所有権の確認(TXTレコード検証)が自動で実施されます。詳細は「ドメイン所有権確認」を参照してください。

リクエストボディ

名前型必須説明
mail_address string 必須 メールアドレス
password string 必須 パスワード(8文字以上)
quota_mb integer 任意 容量(MB) 1-20000
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mail_address": "info@example.com",
    "password": "SecurePass123",
    "quota_mb": 2000,
    "memo": "問い合わせ用"
}'

レスポンスフィールド

名前型説明
mail_address string 作成されたメールアドレス
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "mail_address": "info@example.com",
  "message": "メールアカウントを作成しました"
}
PUT /v1/server/{servername}/mail/{mail_account} 書き込み

メールアカウントを変更

指定したメールアカウントを変更します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
mail_accountメールアカウント(例: user@example.com)。URLエンコードすること

リクエストボディ

名前型必須説明
password string 任意 パスワード(8文字以上)
quota_mb integer 任意 容量(MB)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail/{mail_account}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "NewPass456",
    "quota_mb": 3000,
    "memo": "営業部用"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "メールアカウント設定を変更しました"
}
DELETE /v1/server/{servername}/mail/{mail_account} 書き込み

メールアカウントを削除

パスパラメータ

名前説明
mail_accountメールアカウント(例: user@example.com)。URLエンコードすること

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail/{mail_account}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "メールアカウントを削除しました"
}
GET /v1/server/{servername}/mail/{mail_account}/forwarding 読み取り

メール転送設定を取得

パスパラメータ

名前説明
mail_accountメールアカウント(例: user@example.com)。URLエンコードすること

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail/{mail_account}/forwarding" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
forwarding_addresses string[] 転送先メールアドレスの配列
keep_in_mailbox boolean 転送後もメールボックスに残すか

レスポンス例

200 OK
{
  "forwarding_addresses": [
    "forward1@example.com",
    "forward2@example.com"
  ],
  "keep_in_mailbox": true
}
PUT /v1/server/{servername}/mail/{mail_account}/forwarding 書き込み

メール転送設定を更新

指定したメールアカウントのメール転送設定を更新します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
mail_accountメールアカウント(例: user@example.com)。URLエンコードすること

リクエストボディ

名前型必須説明
forwarding_addresses array 任意 転送先メールアドレスの配列(上書きで設定。空配列でクリア)
keep_in_mailbox boolean 任意 転送後もメールボックスに残すか

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail/{mail_account}/forwarding" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "forwarding_addresses": [
        "forward@example.com"
    ],
    "keep_in_mailbox": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "メール転送設定を変更しました"
}

迷惑メールフィルタ

GET /v1/server/{servername}/spam-filter 読み取り

迷惑メールフィルタ設定を取得

指定したドメインの迷惑メールフィルタ設定を返します。domain を指定すると、そのドメインの設定のみを取得できます。迷惑メールフィルタが標準スパムフィルタ(standard)のときは、標準スパムフィルタ判定基準・日本語を含まない件名に対して判定を厳しくする・HTMLメールに対して判定を厳しくするをレスポンスに含めます。それ以外(off / cloudmark_authority)のときは含まれません。※ filter_type の 高性能スパムフィルタ「Cloudmark Authority」は、エックスサーバー・XServerビジネスでのみ指定・利用できます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/spam-filter" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
spam_filters[].domain string 対象ドメイン
spam_filters[].settings.filter_type string 迷惑メールフィルタ
  • offOFF
  • standard標準スパムフィルタ
  • cloudmark_authority高性能スパムフィルタ「Cloudmark Authority」
spam_filters[].settings.detection_action string 検知時の処理
  • inbox受信箱へ配信する
  • spam迷惑メールフォルダへ移動する
  • trashゴミ箱へ移動する
  • delete削除する
spam_filters[].settings.spam_level string 標準スパムフィルタ判定基準(filter_type が standard のときのみ、それ以外の場合は無視される)
  • very_lenient非常にゆるい
  • lenientゆるい
  • normal普通
  • strict厳しい
  • very_strict非常に厳しい
  • strictest最も厳しい
spam_filters[].settings.strict_non_japanese_subject boolean 日本語を含まない件名に対して判定を厳しくする(filter_type が standard のときのみ、それ以外の場合は無視される)
spam_filters[].settings.strict_html_mail boolean HTMLメールに対して判定を厳しくする(filter_type が standard のときのみ、それ以外の場合は無視される)
spam_filters[].settings.white_list string[] ホワイトリスト
spam_filters[].settings.black_list string[] ブラックリスト
spam_filters[].settings.dmarc_receiver boolean 受信側DMARC設定

レスポンス例

200 OK
{
  "spam_filters": [
    {
      "domain": "example.com",
      "settings": {
        "filter_type": "standard",
        "detection_action": "spam",
        "spam_level": "normal",
        "strict_non_japanese_subject": true,
        "strict_html_mail": true,
        "white_list": [
          "allow@example.net",
          "trusted@example.org"
        ],
        "black_list": [
          "block@example.net"
        ],
        "dmarc_receiver": true
      }
    }
  ]
}
PUT /v1/server/{servername}/spam-filter/{domain} 書き込み

迷惑メールフィルタ設定を更新

指定したドメインの迷惑メールフィルタ設定を更新します。迷惑メールフィルタを標準スパムフィルタ(standard)に指定するときは、標準スパムフィルタ判定基準・日本語を含まない件名に対して判定を厳しくする・HTMLメールに対して判定を厳しくするを指定してください。更新するフィールドが1つも指定されなかった場合は422を返します。※ filter_type の 高性能スパムフィルタ「Cloudmark Authority」は、エックスサーバー・XServerビジネスでのみ指定・利用できます。

パスパラメータ

名前説明
domain対象ドメイン(例: example.com。日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
filter_type string 任意 迷惑メールフィルタ(空文字不可)
  • offOFF
  • standard標準スパムフィルタ
  • cloudmark_authority高性能スパムフィルタ「Cloudmark Authority」
detection_action string 任意 検知時の処理(空文字不可)
  • inbox受信箱へ配信する
  • spam迷惑メールフォルダへ移動する
  • trashゴミ箱へ移動する
  • delete削除する
spam_level string 任意 標準スパムフィルタ判定基準(空文字不可、filter_typeが standard のとき必須、それ以外の場合は無視される)
  • very_lenient非常にゆるい
  • lenientゆるい
  • normal普通
  • strict厳しい
  • very_strict非常に厳しい
  • strictest最も厳しい
strict_non_japanese_subject boolean 任意 日本語を含まない件名に対して判定を厳しくする(filter_typeが standard のとき必須、それ以外の場合は無視される)
strict_html_mail boolean 任意 HTMLメールに対して判定を厳しくする(filter_typeが standard のとき必須、それ以外の場合は無視される)
white_list array 任意 ホワイトリスト(メールアドレスの配列。空配列の明示送信でクリア)
black_list array 任意 ブラックリスト(メールアドレスの配列。空配列の明示送信でクリア)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/spam-filter/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filter_type": "standard",
    "detection_action": "spam",
    "spam_level": "normal",
    "strict_non_japanese_subject": false,
    "strict_html_mail": false,
    "white_list": [
        "allow@example.net"
    ],
    "black_list": [
        "block@example.org"
    ]
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "迷惑メールフィルタ設定を変更しました"
}
PUT /v1/server/{servername}/spam-filter/{domain}/dmarc-receiver 書き込み

受信側DMARC設定を更新

指定したドメインの受信側DMARC設定を更新します。

パスパラメータ

名前説明
domain対象ドメイン(例: example.com)。URLエンコードすること

リクエストボディ

名前型必須説明
dmarc_receiver boolean 必須 受信側DMARC設定

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/spam-filter/{domain}/dmarc-receiver" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dmarc_receiver": true
}'

レスポンスフィールド

名前型説明
dmarc_receiver boolean 更新後の受信側DMARC設定
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "dmarc_receiver": true,
  "message": "受信側DMARC設定を変更しました"
}

自動応答設定

GET /v1/server/{servername}/auto-reply 読み取り

自動応答設定一覧を取得

設定済みの自動応答の一覧を返します。domain を指定すると、そのドメインのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-reply" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
auto_replies[].domain string ドメイン
auto_replies[].mail_address string メールアドレス
auto_replies[].subject string 件名
auto_replies[].from_name string 送信者名
auto_replies[].quote_incoming boolean 受信メールの引用を含めるか

レスポンス例

200 OK
{
  "auto_replies": [
    {
      "domain": "example.com",
      "mail_address": "info@example.com",
      "subject": "自動応答の件名",
      "from_name": "Example Inc.",
      "quote_incoming": true
    }
  ]
}
GET /v1/server/{servername}/auto-reply/{mail_address} 読み取り

自動応答設定の詳細を取得

指定したメールアドレスの自動応答設定(本文を含む)を返します。

パスパラメータ

名前説明
mail_addressメールアドレス(user@domain 形式)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-reply/{mail_address}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
domain string ドメイン
mail_address string メールアドレス
subject string 件名
from_name string 送信者名
body string 本文
quote_incoming boolean 受信メールの引用を含めるか

レスポンス例

200 OK
{
  "domain": "example.com",
  "mail_address": "info@example.com",
  "subject": "自動応答の件名",
  "from_name": "Example Inc.",
  "body": "お問い合わせありがとうございます。",
  "quote_incoming": true
}
POST /v1/server/{servername}/auto-reply 書き込み

自動応答設定を追加

未設定のメールアドレスに自動応答を新規追加します。

リクエストボディ

名前型必須説明
domain string 必須 ドメイン
mail_address string 必須 メールアドレス
from_name string 必須 送信者名(空文字不可)
subject string 必須 件名(空文字不可)
body string 必須 本文(空文字不可)
quote_incoming boolean 必須 受信メールの引用を含めるか

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-reply" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "mail_address": "info@example.com",
    "from_name": "Example Inc.",
    "subject": "お問い合わせありがとうございます",
    "body": "担当者より折り返しご連絡いたします。",
    "quote_incoming": true
}'

レスポンスフィールド

名前型説明
mail_address string 追加したメールアドレス
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "mail_address": "info@example.com",
  "message": "自動応答設定を追加しました"
}
PUT /v1/server/{servername}/auto-reply/{mail_address} 書き込み

自動応答設定を更新

既存の自動応答設定を更新します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
mail_addressメールアドレス(user@domain 形式)

リクエストボディ

名前型必須説明
from_name string 任意 送信者名(空文字不可)
subject string 任意 件名(空文字不可)
body string 任意 本文(空文字不可)
quote_incoming boolean 任意 受信メールの引用を含めるか

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-reply/{mail_address}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_name": "Example Inc.",
    "subject": "【自動応答】お問い合わせ受付",
    "body": "担当者より折り返しご連絡いたします。",
    "quote_incoming": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "自動応答設定を変更しました"
}
DELETE /v1/server/{servername}/auto-reply/{mail_address} 書き込み

自動応答設定を削除

指定したメールアドレスの自動応答設定を削除します。

パスパラメータ

名前説明
mail_addressメールアドレス(user@domain 形式)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/auto-reply/{mail_address}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "自動応答設定を削除しました"
}

SMTP認証の国外アクセス制限

GET /v1/server/{servername}/smtp-abroad-restriction 読み取り

SMTP認証の国外アクセス制限設定を取得

ドメインごとのSMTP認証の国外アクセス制限の有効/無効を返します。domain を指定すると、そのドメインのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/smtp-abroad-restriction" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
smtp_abroad_restrictions[].domain string ドメイン
smtp_abroad_restrictions[].abroad_access_restriction boolean 国外アクセス制限の有効/無効

レスポンス例

200 OK
{
  "smtp_abroad_restrictions": [
    {
      "domain": "example.com",
      "abroad_access_restriction": true
    }
  ]
}
PUT /v1/server/{servername}/smtp-abroad-restriction/{domain} 書き込み

SMTP認証の国外アクセス制限設定を更新

指定ドメインのSMTP認証の国外アクセス制限を有効または無効にします。

パスパラメータ

名前説明
domainドメイン

リクエストボディ

名前型必須説明
abroad_access_restriction boolean 必須 国外アクセス制限の有効/無効

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/smtp-abroad-restriction/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "abroad_access_restriction": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "SMTP認証の国外アクセス制限を変更しました"
}

メール振り分け設定

GET /v1/server/{servername}/mail-filter 読み取り

メール振り分け設定一覧を取得

条件とアクションで定義された振り分けルールの一覧を返します。domain を指定すると、そのドメインのルールのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail-filter" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
filters[].id string 振り分けルールのID(DELETEで使用)
filters[].domain string 対象ドメイン
filters[].priority integer ドメイン内での優先度(1から連番。番号が小さいほど先に評価される)
filters[].conditions object[] 条件の配列。複数条件はすべてANDで評価される
filters[].conditions[].keyword string マッチさせるキーワード
filters[].conditions[].field string 対象フィールド
  • subject件名
  • from差出人
  • toあて先
  • body本文
  • headerヘッダー全体
filters[].conditions[].match_type string 一致条件
  • containキーワードを含む
  • matchキーワードと完全一致
  • start_fromキーワードから始まる
filters[].action object 振り分けアクション
filters[].action.type string 転送先種別
  • spam_folder迷惑メールフォルダに振り分け
  • trashゴミ箱に振り分け
  • delete削除する
  • mail_addressその他の宛先
filters[].action.target string 転送先メールアドレスまたはコマンドパス。type が mail_address の場合に値が入り、それ以外では空文字
filters[].action.method string 処理方法
  • move転送(元のメールボックスには残さない)
  • copyコピー転送(元のメールボックスにも残す)

レスポンス例

200 OK
{
  "filters": [
    {
      "id": "f1a2b3c4",
      "domain": "example.com",
      "priority": 1,
      "conditions": [
        {
          "keyword": "aaa",
          "field": "from",
          "match_type": "match"
        }
      ],
      "action": {
        "type": "spam_folder",
        "target": "",
        "method": "copy"
      }
    },
    {
      "id": "e5f67890",
      "domain": "example.com",
      "priority": 2,
      "conditions": [
        {
          "keyword": "test",
          "field": "from",
          "match_type": "match"
        },
        {
          "keyword": "info",
          "field": "to",
          "match_type": "match"
        }
      ],
      "action": {
        "type": "spam_folder",
        "target": "",
        "method": "copy"
      }
    }
  ]
}
POST /v1/server/{servername}/mail-filter 書き込み

メール振り分け設定を追加

条件を1つ以上、アクションを必須で指定します。1ルールあたりの条件は最大3つまで指定できます。複数条件はすべてANDで評価されます。

リクエストボディ

名前型必須説明
domain string 必須 ドメイン(最大253文字。日本語ドメインの場合はPunycodeで指定)
conditions[].keyword string 必須 マッチさせるキーワード
conditions[].field string 必須 対象フィールド
  • subject件名
  • from差出人
  • toあて先
  • body本文
  • headerヘッダー全体
conditions[].match_type string 必須 一致条件
  • containキーワードを含む
  • matchキーワードと完全一致
  • start_fromキーワードから始まる
action.type string 必須 転送先種別
  • spam_folder迷惑メールフォルダに振り分け
  • trashゴミ箱に振り分け
  • delete削除する
  • mail_addressその他の宛先
action.target string 任意 転送先メールアドレスまたはコマンドパス。type が mail_address の場合に指定(それ以外では省略可)
action.method string 必須 処理方法
  • move転送(元のメールボックスには残さない)
  • copyコピー転送(元のメールボックスにも残す)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail-filter" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "conditions": [
        {
            "keyword": "spam@example.net",
            "field": "from",
            "match_type": "match"
        }
    ],
    "action": {
        "type": "spam_folder",
        "target": "",
        "method": "copy"
    }
}'

レスポンスフィールド

名前型説明
id string 追加された振り分けルールのID
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "id": "f1a2b3c4",
  "message": "メール振り分けルールを追加しました"
}
DELETE /v1/server/{servername}/mail-filter/{filter_id} 書き込み

メール振り分け設定を削除

パスパラメータ

名前説明
filter_id振り分けルールのID(一覧取得で得られる id)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/mail-filter/{filter_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "メール振り分けルールを削除しました"
}

DKIM設定

GET /v1/server/{servername}/dkim 読み取り

DKIM設定一覧を取得

ドメイン配下のサブドメインごとのDKIM有効/無効を返します。domain を指定すると、そのドメインのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
dkim_settings[].domain string ドメイン
dkim_settings[].fqdn string FQDN(example.com または sub.example.com)
dkim_settings[].enabled boolean DKIMの有効/無効

レスポンス例

200 OK
{
  "dkim_settings": [
    {
      "domain": "example.com",
      "fqdn": "example.com",
      "enabled": true
    }
  ]
}
GET /v1/server/{servername}/dkim/{fqdn} 読み取り

DKIM設定の詳細を取得

指定したFQDNのDKIM設定(DNSレコード情報を含む)を返します。

パスパラメータ

名前説明
fqdnFQDN(example.com または sub.example.com)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/dkim/{fqdn}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
fqdn string FQDN
enabled boolean DKIMの有効/無効
dkim_record.hostname string DKIMレコードのホスト名
dkim_record.type string レコード種別
dkim_record.content string レコード内容

レスポンス例

200 OK
{
  "fqdn": "example.com",
  "enabled": true,
  "dkim_record": {
    "hostname": "default._domainkey.example.com",
    "type": "TXT",
    "content": "v=DKIM1; ..."
  }
}
PUT /v1/server/{servername}/dkim/{fqdn} 書き込み

DKIM設定を更新

指定したFQDNのDKIMを有効または無効にします。

パスパラメータ

名前説明
fqdnFQDN(example.com または sub.example.com)

リクエストボディ

名前型必須説明
enabled boolean 必須 DKIMの有効/無効

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/dkim/{fqdn}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true
}'

レスポンスフィールド

名前型説明
fqdn string FQDN
enabled boolean DKIMの有効/無効
dkim_record.hostname string DKIMレコードのホスト名
dkim_record.type string レコード種別
dkim_record.content string レコード内容
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "fqdn": "example.com",
  "enabled": true,
  "dkim_record": {
    "hostname": "default._domainkey.example.com",
    "type": "TXT",
    "content": "v=DKIM1; ..."
  },
  "message": "DKIM設定を有効化しました"
}

SPF設定

GET /v1/server/{servername}/spf 読み取り

SPF設定一覧を取得

ドメイン配下のサブドメインごとのSPF設定を返します。domain を指定すると、そのドメインのみに絞り込めます。初期ドメイン(契約のメインドメイン/servername)およびそのホスト名へのSPF設定は一覧に含めません。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
spf_records[].domain string ドメイン
spf_records[].fqdn string FQDN(example.com または sub.example.com)
spf_records[].spf_record string 現在のSPFレコード
spf_records[].gmail_enabled boolean Gmail設定が含まれるか
spf_records[].custom boolean カスタム設定かどうか
spf_records[].duplicate boolean SPFレコードが重複しているか

レスポンス例

200 OK
{
  "spf_records": [
    {
      "domain": "example.com",
      "fqdn": "sub.example.com",
      "spf_record": "v=spf1 +a:... ~all",
      "gmail_enabled": false,
      "custom": false,
      "duplicate": false
    }
  ]
}
POST /v1/server/{servername}/spf 書き込み

SPF設定を追加

指定したサブドメインに標準SPFレコードを追加します。初期ドメイン(契約のメインドメイン)には設定できません。

リクエストボディ

名前型必須説明
fqdn string 必須 FQDN(example.com または sub.example.com)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/spf" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fqdn": "sub.example.com"
}'

レスポンスフィールド

名前型説明
fqdn string FQDN
spf_record string 追加したSPFレコード
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "fqdn": "sub.example.com",
  "spf_record": "v=spf1 +a:... ~all",
  "message": "SPF設定を追加しました"
}
PUT /v1/server/{servername}/spf/{fqdn} 書き込み

SPF設定を更新

指定したFQDNのSPF設定を更新します。enable_gmail 指定時にカスタム設定の場合は409(OPERATION_ERROR)を返します。指定したFQDNのSPF設定が存在しない場合は404(NOT_FOUND)を返します。SPFレコードが重複している場合は409(OPERATION_ERROR)を返します。

パスパラメータ

名前説明
fqdnFQDN(example.com または sub.example.com)

リクエストボディ

名前型必須説明
action string 必須 操作種別
  • reset標準SPFへ初期化
  • enable_gmail標準+Gmail許可のSPFを設定
  • customカスタムSPFを設定
spf_record string 任意 カスタムSPFレコード(action=custom のとき必須。v=spf1 で始まり、ダブルクォートを含まない)

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/spf/{fqdn}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "reset",
    "spf_record": "v=spf1 +a:sv1234.xserver.jp +a:sub.example.com +mx include:spf.sender.xserver.jp ~all"
}'

レスポンスフィールド

名前型説明
fqdn string FQDN
spf_record string 更新後のSPFレコード
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "fqdn": "sub.example.com",
  "spf_record": "v=spf1 +a:... ~all",
  "message": "SPF設定を変更しました"
}
DELETE /v1/server/{servername}/spf/{fqdn} 書き込み

SPF設定を削除

指定したFQDNのSPF設定を削除します。SPF設定が存在しない場合は404(NOT_FOUND)を返します。SPFレコードが重複している場合は409(OPERATION_ERROR)を返します。

パスパラメータ

名前説明
fqdnFQDN(example.com または sub.example.com)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/spf/{fqdn}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

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

送信側DMARC設定

GET /v1/server/{servername}/dmarc 読み取り

送信側DMARC設定を取得

ドメインごとの送信側DMARC設定を返します。domain を指定すると、そのドメインのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
dmarc_settings[].domain string ドメイン
dmarc_settings[].policy string DMARCポリシー(未設定時は空文字)
  • none何もしない
  • quarantine迷惑メールとして配送する
  • rejectメールを配送しない
dmarc_settings[].report_enabled boolean レポート通知が有効か(レポート通知先メールアドレスが1件以上ある場合 true)
dmarc_settings[].notification_mail_addresses array レポート通知先メールアドレス

レスポンス例

200 OK
{
  "dmarc_settings": [
    {
      "domain": "example.com",
      "policy": "quarantine",
      "report_enabled": true,
      "notification_mail_addresses": ["report@example.com"]
    }
  ]
}
PUT /v1/server/{servername}/dmarc/{domain} 書き込み

送信側DMARC設定を更新

指定したドメインの送信側DMARC設定を更新します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
domainドメイン

リクエストボディ

名前型必須説明
policy string 任意 DMARCポリシー(空文字不可)
  • none何もしない
  • quarantine迷惑メールとして配送する
  • rejectメールを配送しない
report_enabled boolean 任意 レポート通知の有効/無効。false のときレポート通知先メールアドレスは自動的に空になる
notification_mail_addresses string 任意 レポート通知先メールアドレス(改行区切り、または配列)。report_enabled が true のときは1件以上必須

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/dmarc/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "policy": "reject",
    "report_enabled": true,
    "notification_mail_addresses": "report@example.com"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "DMARC設定を変更しました"
}

FTPアカウント設定

GET /v1/server/{servername}/ftp 読み取り

FTPアカウント一覧を取得

登録済みFTPアカウントを一覧で返します。メインアカウントは含まれません。domain を指定すると、そのドメインのアカウントのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
accounts[].ftp_account string FTPアカウント(user@domain 形式)
accounts[].directory string アクセス先ディレクトリ
accounts[].quota_mb integer 容量制限(MB。0 は無制限)
accounts[].memo string メモ

レスポンス例

200 OK
{
  "accounts": [
    {
      "ftp_account": "ftpuser@example.com",
      "directory": "example.com/public_html",
      "quota_mb": 5000,
      "memo": "開発用"
    }
  ]
}
POST /v1/server/{servername}/ftp 書き込み

FTPアカウントを追加

リクエストボディ

名前型必須説明
ftp_account string 必須 FTPアカウント(user@domain 形式。例: ftpuser@example.com)
password string 必須 パスワード(8文字以上)
directory string 任意 ディレクトリ(デフォルト: /)
quota_mb integer 任意 容量(MB)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/ftp" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ftp_account": "ftpuser@example.com",
    "password": "FtpPass123!",
    "directory": "\/public_html",
    "quota_mb": 5000,
    "memo": "開発用"
}'

レスポンスフィールド

名前型説明
ftp_account string 作成されたFTPアカウント(user@domain 形式)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "ftp_account": "ftpuser@example.com",
  "message": "FTPアカウントを作成しました"
}
PUT /v1/server/{servername}/ftp/{ftp_account} 書き込み

FTPアカウントを変更

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
ftp_accountFTPアカウント(user@domain 形式)

リクエストボディ

名前型必須説明
password string 任意 パスワード(8文字以上)
directory string 任意 ディレクトリ
quota_mb integer 任意 容量(MB)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/ftp/{ftp_account}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "NewFtpPass456!",
    "directory": "\/public_html",
    "quota_mb": 1000,
    "memo": "本番用"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "FTPアカウント設定を変更しました"
}
DELETE /v1/server/{servername}/ftp/{ftp_account} 書き込み

FTPアカウントを削除

パスパラメータ

名前説明
ftp_accountFTPアカウント

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/ftp/{ftp_account}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "FTPアカウントを削除しました"
}

MySQL設定

GET /v1/server/{servername}/db 読み取り

データベース一覧を取得

MySQLデータベースの一覧を返します。

リクエスト例

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

レスポンスフィールド

名前型説明
databases[].db_name string データベース名
databases[].version_name string バージョン表示名(例: MariaDB10.5)
databases[].size_mb number データベースサイズ(MB)
databases[].granted_users array アクセス権限を持つMySQLユーザー名の配列
databases[].memo string メモ

レスポンス例

200 OK
{
  "databases": [
    {
      "db_name": "xs123456_db01",
      "version_name": "MariaDB10.5",
      "size_mb": 128.5,
      "granted_users": ["xs123456_user01"],
      "memo": "本番用DB"
    }
  ]
}
POST /v1/server/{servername}/db 書き込み

データベースを作成

リクエストボディ

名前型必須説明
name_suffix string 必須 データベース名のサフィックス(サーバーID_に続く部分、例: db01 → xs123456_db01)
character_set string 任意 文字コード(省略時 utf8mb4)utf8mb4UTF-8EUC-JPSHIFT-JISBinary
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/db" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name_suffix": "db01",
    "character_set": "utf8mb4",
    "memo": "本番用DB"
}'

レスポンスフィールド

名前型説明
db_name string 作成されたデータベース名(サーバーID_サフィックス)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "db_name": "xs123456_db01",
  "message": "データベースを作成しました"
}
PUT /v1/server/{servername}/db/{db_name} 書き込み

データベースのメモを更新

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
db_nameデータベース名

リクエストボディ

名前型必須説明
memo string 必須 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/{db_name}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "本番用DB"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "データベース設定を変更しました"
}
DELETE /v1/server/{servername}/db/{db_name} 書き込み

データベースを削除

パスパラメータ

名前説明
db_nameデータベース名

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/{db_name}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "データベースを削除しました"
}
GET /v1/server/{servername}/db/user 読み取り

MySQLユーザー一覧を取得

MySQLユーザーの一覧を返します。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
users[].db_user string MySQLユーザー名
users[].version_name string バージョン表示名
users[].memo string メモ

レスポンス例

200 OK
{
  "users": [
    {
      "db_user": "xs123456_user01",
      "version_name": "MariaDB10.5",
      "memo": "WP用ユーザー"
    }
  ]
}
POST /v1/server/{servername}/db/user 書き込み

MySQLユーザーを作成

リクエストボディ

名前型必須説明
name_suffix string 必須 ユーザー名のサフィックス(サーバーID_に続く部分、例: user01 → xs123456_user01)
password string 必須 パスワード(8文字以上)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name_suffix": "user01",
    "password": "DbPass123!",
    "memo": "アプリ用ユーザー"
}'

レスポンスフィールド

名前型説明
db_user string 作成されたMySQLユーザー名(サーバーID_サフィックス)
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "db_user": "xs123456_user01",
  "message": "MySQLユーザーを作成しました"
}
PUT /v1/server/{servername}/db/user/{db_user} 書き込み

MySQLユーザーを変更

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
db_userMySQLユーザー名

リクエストボディ

名前型必須説明
password string 任意 パスワード(8文字以上)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user/{db_user}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "NewDbPass456!",
    "memo": "WP用ユーザー"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "MySQLユーザー設定を変更しました"
}
DELETE /v1/server/{servername}/db/user/{db_user} 書き込み

MySQLユーザーを削除

パスパラメータ

名前説明
db_userMySQLユーザー名

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user/{db_user}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "MySQLユーザーを削除しました"
}
GET /v1/server/{servername}/db/user/{db_user}/grant 読み取り

データベース権限を取得

指定したMySQLユーザーがアクセス権限を持つデータベースの一覧を返します。

パスパラメータ

名前説明
db_userMySQLユーザー名

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user/{db_user}/grant" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
databases[] string アクセス権限を持つデータベース名の配列

レスポンス例

200 OK
{
  "databases": [
    "xs123456_db01",
    "xs123456_db02"
  ]
}
POST /v1/server/{servername}/db/user/{db_user}/grant 書き込み

データベース権限を付与

指定したMySQLユーザーにデータベースへのアクセス権限を付与します。

パスパラメータ

名前説明
db_userMySQLユーザー名

リクエストボディ

名前型必須説明
db_name string 必須 データベース名

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user/{db_user}/grant" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "db_name": "xs123456_db01"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "権限を付与しました"
}
DELETE /v1/server/{servername}/db/user/{db_user}/grant 書き込み

データベース権限を削除

指定したMySQLユーザーからデータベースへのアクセス権限を削除します。

パスパラメータ

名前説明
db_userMySQLユーザー名

リクエストボディ

名前型必須説明
db_name string 必須 データベース名

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/db/user/{db_user}/grant" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "db_name": "xs123456_db01"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "権限を削除しました"
}

MySQLバックアップの取得・復元

GET /v1/server/{servername}/mysql-backup/databases 読み取り

MySQLバックアップの状態を取得

各データベースで取得・復元申込に指定できるバックアップ日を返します。backup_dates[].fetch_available / restore_available はその日のバックアップデータが存在するかを示します。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mysql-backup/databases" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
databases[].db_name string データベース名
databases[].version_name string MySQLバージョン表示名(例: MariaDB10.5)
databases[].backup_dates[].date string バックアップ日(Y-m-d)
databases[].backup_dates[].fetch_available boolean その日の自動バックアップデータが存在するか(日次バックアップ成功日)
databases[].backup_dates[].restore_available boolean その日の自動バックアップデータが存在するか(復元申込の backup_date 候補)

レスポンス例

200 OK
{
  "databases": [
    {
      "db_name": "xs123456_db01",
      "version_name": "MariaDB10.5",
      "backup_dates": [
        {
          "date": "2026-06-03",
          "fetch_available": true,
          "restore_available": true
        },
        {
          "date": "2026-06-02",
          "fetch_available": false,
          "restore_available": false
        }
      ]
    }
  ]
}
POST /v1/server/{servername}/mysql-backup 書き込み

MySQLバックアップの取得または復元を申し込む

指定したバックアップ日のデータ取得(operation_type=fetch)または復元(operation_type=restore)を非同期で申し込みます。fetch 完了後は FTP 等で取得してください。restore は対象 DB を上書きする破壊的操作であり、取り消しできません。同名のデータベースが複数存在する場合は 422(VALIDATION_ERROR)を返します。処理中または利用できない backup_date の場合は 409(OPERATION_ERROR)を返します。進捗は GET /mysql-backup/{request_id} をポーリングしてください。

リクエストボディ

名前型必須説明
db_name string 必須 データベース名
backup_date string 必須 対象バックアップ日(Y-m-d)
operation_type string 必須 処理種別
  • fetch自動バックアップデータの取得
  • restore自動バックアップデータの復元

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/mysql-backup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "db_name": "xs123456_db01",
    "backup_date": "2026-06-01",
    "operation_type": "fetch"
}'

レスポンスフィールド

名前型説明
request_id string ポーリング用の申込識別子(32文字の小文字16進数。GET /mysql-backup/{request_id} で使用。履歴の見分けには requested_at 等を利用してください)
requested_at string 申込日時
message string 処理結果メッセージ

レスポンス例

200 OK
{
  "request_id": "a3f29c1e8b0d4f2a9c1e5b7d3f8a2c1e",
  "requested_at": "2026-06-03 10:00:00",
  "message": "MySQLバックアップの取得を申し込みました"
}
GET /v1/server/{servername}/mysql-backup 読み取り

MySQLバックアップ申込履歴一覧を取得

過去の取得・復元申込の履歴を返します。

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mysql-backup" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
requests[].request_id string ポーリング用の申込識別子(32文字の小文字16進数)
requests[].requested_at string 申込日時
requests[].db_name string データベース名
requests[].backup_date string 対象バックアップ日(Y-m-d)
requests[].operation_type string 「MySQLバックアップの取得または復元を申し込む」の operation_type を参考
requests[].status string 以下凡例
  • pending準備中
  • running実行中
  • succeeded正常終了
  • failed失敗

レスポンス例

200 OK
{
  "requests": [
    {
      "request_id": "a3f29c1e8b0d4f2a9c1e5b7d3f8a2c1e",
      "requested_at": "2026-06-03 10:00:00",
      "db_name": "xs123456_db01",
      "backup_date": "2026-06-01",
      "operation_type": "fetch",
      "status": "succeeded"
    }
  ]
}
GET /v1/server/{servername}/mysql-backup/{request_id} 読み取り

MySQLバックアップ申込履歴詳細を取得

指定した申込の詳細を返します。申込後の進捗確認に使用してください。

パスパラメータ

名前説明
request_id申込識別子(32文字の小文字16進数。POST /mysql-backup または履歴一覧で得られる request_id)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/mysql-backup/{request_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
request_id string 申込識別子(32文字の小文字16進数)
db_name string データベース名
version_name string バージョン表示名
operation_type string fetch または restore
backup_date string 対象バックアップ日(Y-m-d)
backup_size_mib integer バックアップサイズ(MiB)
status string pending / running / succeeded / failed
requested_at string 申込日時
finished_at string 終了日時(succeeded 時)
failure_reason string 失敗理由(failed 時)
  • insufficient_disk_space空き容量不足(fetch)
  • backup_not_foundバックアップ不存在(fetch)
  • fetch_failed取得失敗(fetch)
  • restore_failed復元失敗(restore)。処理中・保存先競合等は POST 時に 409(OPERATION_ERROR)となるため failure_reason には含まれません。
backup_path string サーバー内保存パス(fetch 成功時のみ、任意)

レスポンス例

200 OK
{
  "request_id": "a3f29c1e8b0d4f2a9c1e5b7d3f8a2c1e",
  "db_name": "xs123456_db01",
  "version_name": "MariaDB10.5",
  "operation_type": "fetch",
  "backup_date": "2026-06-01",
  "backup_size_mib": 128,
  "status": "succeeded",
  "requested_at": "2026-06-03 10:00:00",
  "finished_at": "2026-06-03 10:15:00",
  "backup_path": "/backup/example_folder"
}

PHPバージョン

GET /v1/server/{servername}/php-version 読み取り

PHPバージョン設定を取得

選択可能なPHPバージョン一覧と、ドメインごとの現在のバージョンを返します。domain を指定すると、そのドメインの情報のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
available_versions object 選択可能なPHPバージョン。キーがバージョン番号、値が表示名称(例: {"8.3": "PHP8.3.21", "8.2": "PHP8.2.28"})
domains[].domain string ドメイン名
domains[].current_version string 現在設定されているPHPバージョン

レスポンス例

200 OK
{
  "available_versions": {
    "8.3": "PHP8.3.21(推奨)",
    "8.2": "PHP8.2.28(非推奨)",
    "8.1": "PHP8.1.32(非推奨)",
    "8.0": "PHP8.0.30(非推奨)"
  },
  "domains": [
    {
      "domain": "example.com",
      "current_version": "8.2"
    }
  ]
}
PUT /v1/server/{servername}/php-version/{domain} 書き込み

PHPバージョンを変更

指定ドメインのPHPバージョンを変更します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
version string 必須 PHPバージョン(例: 8.2)

リクエスト例

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

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "PHPバージョンを変更しました"
}

php.ini設定

GET /v1/server/{servername}/php-ini 読み取り

php.ini設定を取得

ドメインごとの php.ini 設定(settings)と、.user.ini による php.ini 相当設定の有効状態(user_ini_active)を返します。domain を指定すると、そのドメインの情報のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/php-ini" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
domains[].domain string ドメイン名
domains[].user_ini_active boolean .user.ini による php.ini 相当設定の有効/無効
domains[].settings.display_errors string PHPプログラム実行時のエラー内容を画面に出力するかどうかを設定します
  • Onブラウザ上にエラーを表示
  • Offブラウザ上にエラーを表示しない
domains[].settings.error_reporting string PHPプログラム実行時のエラー出力レベルを設定します
domains[].settings.display_startup_errors string PHP の起動シーケンスで発生するエラーを表示するかどうかを設定します
  • On表示する
  • Off表示しない
domains[].settings.session.auto_start string リクエスト開始時にセッションを自動的に開始するかどうかを指定します
  • 0自動開始しない
  • 1自動開始する
domains[].settings.session.name string クッキーに設定されるセッション名を指定します
domains[].settings.session.use_cookies string クライアント側へのセッションIDの保存に、クッキーを使用するかどうかを指定します
  • 0使用しない
  • 1使用する
domains[].settings.session.use_only_cookies string クライアント側へのセッションIDの保存に、クッキーのみを使用可能とする指定を行います
  • 0クッキーのみに限定しない
  • 1クッキーのみを使用
domains[].settings.session.use_trans_sid string URLへのセッションIDの設定を自動で行うかを設定します
  • 0自動設定しない
  • 1自動設定する
domains[].settings.session.cookie_lifetime string クッキーの有効期間を(秒単位で)指定します。0を設定するとブラウザをクローズするまでセッションが有効となります
domains[].settings.session.cookie_path string クッキーを有効とするパスを指定します。ここで指定したパス以下へのアクセスのみクッキーが有効となります
domains[].settings.session.cookie_domain string クッキーを有効とするドメインを指定します
domains[].settings.mbstring.language string デフォルトの言語を設定します
domains[].settings.mbstring.internal_encoding string 内部文字エンコーディングを設定します
domains[].settings.mbstring.http_input string HTTP入力文字エンコーディング変換を設定します
domains[].settings.mbstring.http_output string HTTP出力文字エンコーディング変換を設定します
domains[].settings.mbstring.encoding_translation string 内部文字エンコーディングへの変換を有効にするかどうかを設定します
  • On有効
  • Off無効
domains[].settings.mbstring.detect_order string 文字コード検出を設定します
domains[].settings.mbstring.substitute_character string 無効な文字を代替する文字を設定します
domains[].settings.max_execution_time string 無限ループなどにより永続的に実行されているスクリプトが、強制終了されるまでの時間を秒単位で指定します
domains[].settings.max_input_time string スクリプトが POST、GET、そしてファイルアップロードなどの入力をパースする最大の時間を秒単位で指定します
domains[].settings.memory_limit string プログラムが使用できる最大メモリ数を指定します
domains[].settings.post_max_size string POSTデータの許容最大サイズを設定します
domains[].settings.upload_max_filesize string アップロードファイルの許容サイズを設定します
domains[].settings.register_globals string 環境変数やGET値、POST値などの、PHPの外部からくる値を全て $変数名 という書式で使用可能とする設定を行います(PHP 5.3.0 で非推奨、Off推奨)
  • On有効
  • Off無効
domains[].settings.magic_quotes_gpc string PHPのフォームより文字列データを取得する際、エスケープ処理(「'」や「"」や「\」の前に「\」を追加)を自動で行うかどうかを設定します
  • On有効
  • Off無効
domains[].settings.safe_mode string プログラムファイルの所有者が、プログラム内の関数によって処理されているファイル及びディレクトリの所有者と同一かの確認を行う設定をします(※user_ini_active が true のときは固定値を返します)
  • On有効
  • Off無効
domains[].settings.file_uploads string HTTP ファイルアップロードを可能とするかどうかを設定します(※user_ini_active が true のときは固定値を返します)
  • On有効
  • Off無効
domains[].settings.allow_url_fopen string URLオブジェクトに対してファイル同様の操作を可能とする設定をします(※user_ini_active が true のときは固定値を返します) (PHP 5.2以降)
  • On有効
  • Off無効
domains[].settings.allow_url_include string include関数、include_once関数、require関数、require_once関数で、URL対応のfopenラッパーが使用できるようになります(※user_ini_active が true のときは固定値を返します)
  • On有効
  • Off無効

レスポンス例

200 OK
{
  "domains": [
    {
      "domain": "example.com",
      "user_ini_active": true,
      "settings": {
        "display_errors": "On",
        "error_reporting": "E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED",
        "display_startup_errors": "Off",
        "session.auto_start": "0",
        "memory_limit": "1G",
        "allow_url_fopen": "On",
        "file_uploads": "On"
      }
    }
  ]
}
PUT /v1/server/{servername}/php-ini/{domain} 書き込み

php.ini設定を更新

指定ドメインの php.ini 設定を更新します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。設定の反映には最大5分程度かかることがあります。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
display_errors string 任意 PHPプログラム実行時のエラー内容を画面に出力するかどうかを設定します
  • Onブラウザ上にエラーを表示
  • Offブラウザ上にエラーを表示しない
error_reporting string 任意 PHPプログラム実行時のエラー出力レベルを設定します
display_startup_errors string 任意 PHP の起動シーケンスで発生するエラーを表示するかどうかを設定します
  • On表示する
  • Off表示しない
session.auto_start string 任意 リクエスト開始時にセッションを自動的に開始するかどうかを指定します
  • 0自動開始しない
  • 1自動開始する
session.name string 任意 クッキーに設定されるセッション名を指定します
session.use_cookies string 任意 クライアント側へのセッションIDの保存に、クッキーを使用するかどうかを指定します
  • 0使用しない
  • 1使用する
session.use_only_cookies string 任意 クライアント側へのセッションIDの保存に、クッキーのみを使用可能とする指定を行います
  • 0クッキーのみに限定しない
  • 1クッキーのみを使用
session.use_trans_sid string 任意 URLへのセッションIDの設定を自動で行うかを設定します
  • 0自動設定しない
  • 1自動設定する
session.cookie_lifetime string 任意 クッキーの有効期間を(秒単位で)指定します。0を設定するとブラウザをクローズするまでセッションが有効となります
session.cookie_path string 任意 クッキーを有効とするパスを指定します。ここで指定したパス以下へのアクセスのみクッキーが有効となります
session.cookie_domain string 任意 クッキーを有効とするドメインを指定します
mbstring.language string 任意 デフォルトの言語を設定します
mbstring.internal_encoding string 任意 内部文字エンコーディングを設定します
mbstring.http_input string 任意 HTTP入力文字エンコーディング変換を設定します
mbstring.http_output string 任意 HTTP出力文字エンコーディング変換を設定します
mbstring.encoding_translation string 任意 内部文字エンコーディングへの変換を有効にするかどうかを設定します
  • On有効
  • Off無効
mbstring.detect_order string 任意 文字コード検出を設定します
mbstring.substitute_character string 任意 無効な文字を代替する文字を設定します
max_execution_time string 任意 無限ループなどにより永続的に実行されているスクリプトが、強制終了されるまでの時間を秒単位で指定します
max_input_time string 任意 スクリプトが POST、GET、そしてファイルアップロードなどの入力をパースする最大の時間を秒単位で指定します
memory_limit string 任意 プログラムが使用できる最大メモリ数を指定します
post_max_size string 任意 POSTデータの許容最大サイズを設定します
upload_max_filesize string 任意 アップロードファイルの許容サイズを設定します
register_globals string 任意 環境変数やGET値、POST値などの、PHPの外部からくる値を全て $変数名 という書式で使用可能とする設定を行います(PHP 5.3.0 で非推奨、Off推奨)
  • On有効
  • Off無効
magic_quotes_gpc string 任意 PHPのフォームより文字列データを取得する際、エスケープ処理(「'」や「"」や「\」の前に「\」を追加)を自動で行うかどうかを設定します
  • On有効
  • Off無効
safe_mode string 任意 プログラムファイルの所有者が、プログラム内の関数によって処理されているファイル及びディレクトリの所有者と同一かの確認を行う設定をします(※user_ini_active が true のときは変更できません)
  • On有効
  • Off無効
file_uploads string 任意 HTTP ファイルアップロードを可能とするかどうかを設定します(※user_ini_active が true のときは変更できません)
  • On有効
  • Off無効
allow_url_fopen string 任意 URLオブジェクトに対してファイル同様の操作を可能とする設定をします(※user_ini_active が true のときは変更できません)
  • On有効
  • Off無効
allow_url_include string 任意 include関数、include_once関数、require関数、require_once関数で、URL対応のfopenラッパーが使用できるようになります(※user_ini_active が true のときは変更できません)
  • On有効
  • Off無効

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/php-ini/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "display_errors": "Off",
    "error_reporting": "E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED",
    "display_startup_errors": "Off",
    "session.auto_start": "0",
    "session.name": "PHPSESSID",
    "session.use_cookies": "1",
    "session.use_only_cookies": "1",
    "session.use_trans_sid": "0",
    "session.cookie_lifetime": "0",
    "session.cookie_path": "\/",
    "session.cookie_domain": "",
    "mbstring.language": "Japanese",
    "mbstring.internal_encoding": "UTF-8",
    "mbstring.http_input": "pass",
    "mbstring.http_output": "pass",
    "mbstring.encoding_translation": "Off",
    "mbstring.detect_order": "auto",
    "mbstring.substitute_character": "none",
    "max_execution_time": "180",
    "max_input_time": "-1",
    "memory_limit": "1G",
    "post_max_size": "1G",
    "upload_max_filesize": "1G",
    "register_globals": "Off",
    "magic_quotes_gpc": "Off",
    "safe_mode": "Off",
    "file_uploads": "On",
    "allow_url_fopen": "On",
    "allow_url_include": "Off"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "php.ini設定を変更しました"
}
POST /v1/server/{servername}/php-ini/{domain}/reset 書き込み

php.ini設定を初期値に戻す

指定ドメインの php.ini をサーバー初期値で上書きします。取り消しできません。設定の反映には最大5分程度かかることがあります。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/php-ini/{domain}/reset" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "php.iniを初期値に戻しました"
}

ドメイン設定

GET /v1/server/{servername}/domain 読み取り

ドメイン一覧を取得

サーバーに追加済みのドメインの一覧を返します。

リクエスト例

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

レスポンスフィールド

名前型説明
domains[].domain string ドメイン名
domains[].type string ドメイン種別(例: addon = 追加ドメイン)
domains[].ssl boolean SSL設定の有無
domains[].memo string メモ
domains[].is_awaiting boolean ドメイン設定反映待ちかどうか

レスポンス例

200 OK
{
  "domains": [
    {
      "domain": "example.com",
      "type": "addon",
      "ssl": true,
      "memo": "",
      "is_awaiting": false
    }
  ]
}
GET /v1/server/{servername}/domain/{domain} 読み取り

ドメイン詳細を取得

ドキュメントルート、PHPバージョン、SSL設定状況を含む詳細情報を返します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定。URLエンコードすること)

リクエスト例

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

レスポンスフィールド

名前型説明
domain string ドメイン名
type string ドメイン種別(例: addon = 追加ドメイン)
document_root string ドキュメントルートの絶対パス
url string サイトURL(SSL設定時は https)
php_version string 現在のPHPバージョン(例: 8.3)
ssl boolean SSL証明書が設定されているかどうか
memo string メモ
is_awaiting boolean ドメイン設定反映待ちかどうか
created_at string 追加日

レスポンス例

200 OK
{
  "domain": "example.com",
  "type": "addon",
  "document_root": "/home/xs123456/example.com/public_html",
  "url": "https://example.com/",
  "php_version": "8.3",
  "ssl": true,
  "memo": "",
  "is_awaiting": false,
  "created_at": "2024-01-15"
}
POST /v1/server/{servername}/domain 書き込み

ドメインを追加

追加型ドメインをサーバーに追加します。追加時にドメイン所有権の確認(TXTレコード検証)が自動で実施されます。詳細は「ドメイン所有権確認」を参照してください。ssl を true にすると無料SSLも設定されます。

リクエストボディ

名前型必須説明
domain string 必須 ドメイン名
ssl boolean 任意 SSL設定(デフォルト: true)
redirect_https boolean 任意 HTTPS転送設定(デフォルト: ssl と同じ値)
ai_crawler_block_enabled boolean 任意 AIクローラー遮断設定(デフォルト: true)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/domain" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "ssl": true,
    "redirect_https": true,
    "ai_crawler_block_enabled": true,
    "memo": ""
}'

レスポンスフィールド

名前型説明
domain string 追加されたドメイン名
message string 処理結果メッセージ
ssl_status string SSL設定結果(ssl=true 指定時のみ)
  • success成功
  • failed失敗
  • failed_nameserverネームサーバー未設定のため失敗

レスポンス例

200 OK
{
  "domain": "example.com",
  "message": "ドメインを追加しました",
  "ssl_status": "success"
}
PUT /v1/server/{servername}/domain/{domain} 書き込み

ドメインのメモを更新

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
memo string 必須 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/domain/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "メインサイト"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "ドメイン設定を変更しました"
}
DELETE /v1/server/{servername}/domain/{domain} 書き込み

ドメインを削除

ドメインを削除します。delete_files を true にすると、ユーザー公開領域のドメインディレクトリも合わせて削除します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
delete_files boolean 任意 ユーザー公開領域のドメインディレクトリも削除するか(デフォルト: false)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/domain/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "delete_files": false
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "ドメインを削除しました"
}
POST /v1/server/{servername}/domain/{domain}/reset 書き込み

ドメイン設定を初期化

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
type string 必須 リセット種別
  • all全初期化
  • webWeb領域のみ初期化
  • otherWeb以外の設定を初期化

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/domain/{domain}/reset" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "all"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "ドメイン設定をリセットしました"
}

サブドメイン設定

GET /v1/server/{servername}/subdomain 読み取り

サブドメイン一覧を取得

登録済みサブドメインの一覧を返します。domain を指定すると、その親ドメインのサブドメインのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象の親ドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定)

リクエスト例

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

レスポンスフィールド

名前型説明
subdomains[].subdomain string サブドメイン名(FQDN 形式。例: blog.example.com)
subdomains[].domain string 親ドメイン名
subdomains[].document_root string ドキュメントルートのパス
subdomains[].ssl boolean SSL設定の有無
subdomains[].memo string メモ

レスポンス例

200 OK
{
  "subdomains": [
    {
      "subdomain": "blog.example.com",
      "domain": "example.com",
      "document_root": "/home/xs123456/blog.example.com/public_html",
      "ssl": true,
      "memo": "ブログ用"
    }
  ]
}
POST /v1/server/{servername}/subdomain 書き込み

サブドメインを追加

短時間に連続して作成すると、一時的にエラーが返る場合があります。間隔をあけて再試行してください。

リクエストボディ

名前型必須説明
subdomain string 必須 サブドメイン(例: blog.example.com)。日本語ドメインの場合はドメイン部分をPunycodeで指定
document_root_type string 任意 ドキュメントルート種別
  • subdomain_only(デフォルト)/public_html/sub 形式
  • full_subdomain/public_html/sub.example.com 形式
ssl boolean 任意 SSL設定(デフォルト: true)
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/subdomain" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subdomain": "blog.example.com",
    "document_root_type": "subdomain_only",
    "ssl": true,
    "memo": "ブログ用"
}'

レスポンスフィールド

名前型説明
subdomain string 追加されたサブドメイン(FQDN 形式)
message string 処理結果メッセージ
ssl_status string SSL設定結果(ssl=true 指定時のみ)
  • success成功
  • failed失敗
  • failed_nameserverネームサーバー未設定のため失敗

レスポンス例

200 OK
{
  "subdomain": "blog.example.com",
  "message": "サブドメインを追加しました",
  "ssl_status": "success"
}
PUT /v1/server/{servername}/subdomain/{subdomain} 書き込み

サブドメインのメモを更新

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。更新するフィールドが1つも指定されなかった場合は422を返します。

パスパラメータ

名前説明
subdomainサブドメイン(日本語ドメインの場合はドメイン部分をPunycodeで指定)

リクエストボディ

名前型必須説明
memo string 任意 メモ

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/subdomain/{subdomain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "memo": "ブログ用"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "サブドメイン設定を変更しました"
}
DELETE /v1/server/{servername}/subdomain/{subdomain} 書き込み

サブドメインを削除

サブドメインを削除します。delete_files を true にすると、ユーザー公開領域のサブドメインディレクトリも合わせて削除します。

パスパラメータ

名前説明
subdomainサブドメイン(日本語ドメインの場合はドメイン部分をPunycodeで指定)

リクエストボディ

名前型必須説明
delete_files boolean 任意 ユーザー公開領域のサブドメインディレクトリも削除するか(デフォルト: false)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/subdomain/{subdomain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "delete_files": false
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "サブドメインを削除しました"
}

SSL設定

GET /v1/server/{servername}/ssl 読み取り

SSL設定一覧を取得

無料SSL(Let's Encrypt)およびオプションSSLの一覧を返します。domain を指定すると、そのドメインの証明書のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
ssl_list[].id integer SSL設定のID
ssl_list[].common_name string コモンネーム(ドメイン名)
ssl_list[].type string 証明書種別
  • letsencrypt無料SSL(Let's Encrypt)
  • optionオプション独自SSL
ssl_list[].expires_at string 有効期限(例: 2025-12-31)
ssl_list[].status string 状態
  • active有効
  • expired期限切れ

レスポンス例

200 OK
{
  "ssl_list": [
    {
      "id": 1,
      "common_name": "example.com",
      "type": "letsencrypt",
      "expires_at": "2025-12-31",
      "status": "active"
    }
  ]
}
POST /v1/server/{servername}/ssl 書き込み

無料SSLをインストール

指定ドメインに対して無料SSL証明書(Let's Encrypt)を発行・インストールします。対象ドメインのネームサーバーが当社ネームサーバーの場合のみ利用可能です。外部ネームサーバーを利用中の場合はサーバーパネルから操作してください。

リクエストボディ

名前型必須説明
common_name string 必須 コモンネーム(ドメイン名。日本語ドメインの場合はPunycodeで指定)

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/ssl" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "common_name": "example.com"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "無料SSLを設定しました"
}
DELETE /v1/server/{servername}/ssl/{common_name} 書き込み

無料SSLをアンインストール

パスパラメータ

名前説明
common_nameCommon Name(日本語ドメインの場合はPunycodeで指定)

リクエスト例

cURL
curl \
  -X DELETE \
  "https://api.xserver.ne.jp/v1/server/{servername}/ssl/{common_name}" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "無料SSLを削除しました"
}

DNSレコード設定

GET /v1/server/{servername}/dns 読み取り

DNSレコード一覧を取得

ドメインに登録されたDNSレコードを一覧で返します。domain を指定すると、そのドメインのレコードのみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
records[].id integer DNSレコードID(PUT/DELETEで使用)
records[].domain string 対象ドメイン
records[].host string ホスト名(@ は apex)
records[].type string レコードタイプAAAAACNAMEMXTXTSRVNS
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": null
    }
  ]
}
POST /v1/server/{servername}/dns 書き込み

DNSレコードを追加

A, AAAA, CNAME, MX, TXT 等のレコードを追加します。MX の場合は priority を指定できます。

リクエストボディ

名前型必須説明
domain string 必須 ドメイン(最大253文字。日本語ドメインの場合はPunycodeで指定)
host string 必須 ホスト名(@ で apex、最大255文字)
type string 必須 レコードタイプAAAAACNAMEMXTXTSRVNS
content string 必須 内容
ttl integer 任意 TTL(60-86400。省略時 3600)
priority integer 任意 MX レコードの優先度

リクエスト例

cURL
curl \
  -X POST \
  "https://api.xserver.ne.jp/v1/server/{servername}/dns" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "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/server/{servername}/dns/{dns_id} 書き込み

DNSレコードを更新

送信した項目のみ更新され、省略した項目は現在の設定が維持されます。空文字を明示送信した場合は空で上書きされます。レコードを自動解決できない場合は domain, host, type, content の指定が必要です。

パスパラメータ

名前説明
dns_idDNSレコードID

リクエストボディ

名前型必須説明
domain string 任意 ドメイン(日本語ドメインの場合はPunycodeで指定)
host string 任意 ホスト名
type string 任意 レコードタイプ
content string 任意 内容
ttl integer 任意 TTL(60-86400)
priority integer 任意 MXレコードの優先度(省略時は現在の設定を維持)

リクエスト例

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

レスポンスフィールド

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

レスポンス例

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

DNSレコードを削除

パスパラメータ

名前説明
dns_idDNSレコードID

リクエスト例

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

レスポンスフィールド

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

レスポンス例

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

アクセスログ

GET /v1/server/{servername}/access-log 読み取り

アクセスログを取得

指定ドメインのアクセスログを取得します。lines で末尾からの取得行数、keyword で絞り込みが可能です。

クエリパラメータ

名前型必須説明
domain string 必須 ドメイン(日本語ドメインの場合はPunycodeで指定)
lines integer 任意 取得行数(末尾から。省略時は全件)
keyword string 任意 絞り込みキーワード

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/access-log?domain=VALUE" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
domain string 対象ドメイン
log string アクセスログ本文(改行区切り)

レスポンス例

200 OK
{
  "domain": "example.com",
  "log": "123.45.67.89 - - [15/Jan/2024:10:30:00 +0900] \"GET / HTTP/1.1\" 200 1234\n..."
}

エラーログ

GET /v1/server/{servername}/error-log 読み取り

エラーログを取得

指定ドメインのエラーログを取得します。lines で末尾からの取得行数、keyword で絞り込みが可能です。

クエリパラメータ

名前型必須説明
domain string 必須 ドメイン(日本語ドメインの場合はPunycodeで指定)
lines integer 任意 取得行数(末尾から)
keyword string 任意 絞り込みキーワード

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/error-log?domain=VALUE" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
domain string 対象ドメイン
log string エラーログ本文(改行区切り)

レスポンス例

200 OK
{
  "domain": "example.com",
  "log": "[Mon Jan 15 10:30:00.123456 2024] [php:error] ...\n..."
}

Xアクセラレータ設定

GET /v1/server/{servername}/x-accelerator 読み取り

Xアクセラレータ設定一覧を取得

契約ドメインごとの Xアクセラレータ設定を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/x-accelerator" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
x_accelerator_settings[].domain string ドメイン名
x_accelerator_settings[].xaccelerator_status string Xアクセラレータ設定
  • offOFF
  • v1Xアクセラレータ Ver.1
  • v2Xアクセラレータ Ver.2

レスポンス例

200 OK
{
  "x_accelerator_settings": [
    {
      "domain": "example.com",
      "xaccelerator_status": "v1"
    }
  ]
}
PUT /v1/server/{servername}/x-accelerator/{domain} 書き込み

Xアクセラレータ設定を変更

指定ドメインの Xアクセラレータ設定を変更します。サーバーキャッシュ ON 中の off 変更、PHP 7.2 未満での v2 変更は 409 を返します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
xaccelerator_status string 必須 Xアクセラレータ設定
  • offOFF
  • v1Xアクセラレータ Ver.1
  • v2Xアクセラレータ Ver.2

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/x-accelerator/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "xaccelerator_status": "v1"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "Xアクセラレータ設定を変更しました"
}

サーバーキャッシュ設定

GET /v1/server/{servername}/server-cache 読み取り

サーバーキャッシュ設定一覧を取得

契約ドメインごとのサーバーキャッシュ設定を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
server_cache_settings[].domain string ドメイン名
server_cache_settings[].server_cache_status string サーバーキャッシュ設定
  • onON
  • offOFF

レスポンス例

200 OK
{
  "server_cache_settings": [
    {
      "domain": "example.com",
      "server_cache_status": "on"
    }
  ]
}
PUT /v1/server/{servername}/server-cache/{domain} 書き込み

サーバーキャッシュ設定を変更

指定ドメインのサーバーキャッシュ設定を変更します。ECサイトやログインが必要なサイトでは、キャッシュによる意図しない公開にご注意ください。サーバーキャッシュ ON 中は Xアクセラレータを off にできません(409)。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
server_cache_status string 必須 サーバーキャッシュ設定
  • onON
  • offOFF

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/server-cache/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "server_cache_status": "on"
}'

レスポンスフィールド

名前型説明
message string 処理結果メッセージ。server_cache_status を on にし、更新後に Xアクセラレータが有効な場合は末尾に「(Xアクセラレータは現在有効です)」が付与されます

レスポンス例

200 OK
{
  "message": "サーバーキャッシュ設定を変更しました(Xアクセラレータは現在有効です)"
}
DELETE /v1/server/{servername}/server-cache/{domain}/cache 書き込み

サーバーキャッシュの内容を削除

指定ドメインのキャッシュ内容を削除します。設定(ON/OFF)は変更しません。server_cache_status が off の場合は 409 を返します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエスト例

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

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "サーバーキャッシュを削除しました"
}

ブラウザキャッシュ設定

GET /v1/server/{servername}/browser-cache 読み取り

ブラウザキャッシュ設定一覧を取得

契約ドメインごとのブラウザキャッシュ設定と反映状態(is_applied)を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

cURL
curl \
  "https://api.xserver.ne.jp/v1/server/{servername}/browser-cache" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンスフィールド

名前型説明
browser_cache_settings[].domain string ドメイン名
browser_cache_settings[].browser_cache_status string ブラウザキャッシュ設定
  • allON(全ての静的ファイル)
  • ignore-css-jsON(CSS/JavaScript以外)
  • offOFF
browser_cache_settings[].is_applied boolean Nginx 設定が反映済みかどうか(false の場合、反映に最大15分程度かかることがあります)

レスポンス例

200 OK
{
  "browser_cache_settings": [
    {
      "domain": "example.com",
      "browser_cache_status": "all",
      "is_applied": true
    }
  ]
}
PUT /v1/server/{servername}/browser-cache/{domain} 書き込み

ブラウザキャッシュ設定を変更

指定ドメインのブラウザキャッシュ設定を変更します。反映には最大15分程度かかることがあります。反映状態は GET 一覧の is_applied で確認できます。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
browser_cache_status string 必須 ブラウザキャッシュ設定
  • allON(全ての静的ファイル)
  • ignore-css-jsON(CSS/JavaScript以外)
  • offOFF

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/browser-cache/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "browser_cache_status": "all"
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "ブラウザキャッシュ設定を変更しました"
}

WAF設定

GET /v1/server/{servername}/waf 読み取り

WAF設定一覧を取得

契約ドメインごとの WAF 設定を返します。domain を指定すると、そのドメインの設定のみに絞り込めます。

クエリパラメータ

名前型必須説明
domain string 任意 絞り込み対象のドメイン(省略時は全ドメイン。日本語ドメインの場合はPunycodeで指定。サブドメインでの絞り込みには対応していません)

リクエスト例

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

レスポンスフィールド

名前型説明
waf_settings[].domain string ドメイン名
waf_settings[].xss_protection.enabled boolean XSS対策の有効/無効
waf_settings[].xss_protection.is_applied boolean XSS対策の反映状態
waf_settings[].sql_injection_protection.enabled boolean SQL対策の有効/無効
waf_settings[].sql_injection_protection.is_applied boolean SQL対策の反映状態
waf_settings[].file_protection.enabled boolean ファイル対策の有効/無効
waf_settings[].file_protection.is_applied boolean ファイル対策の反映状態
waf_settings[].mail_protection.enabled boolean メール対策の有効/無効
waf_settings[].mail_protection.is_applied boolean メール対策の反映状態
waf_settings[].command_protection.enabled boolean コマンド対策の有効/無効
waf_settings[].command_protection.is_applied boolean コマンド対策の反映状態
waf_settings[].php_protection.enabled boolean PHP対策の有効/無効
waf_settings[].php_protection.is_applied boolean PHP対策の反映状態

レスポンス例

200 OK
{
  "waf_settings": [
    {
      "domain": "example.com",
      "xss_protection": { "enabled": true, "is_applied": true },
      "sql_injection_protection": { "enabled": false, "is_applied": true },
      "file_protection": { "enabled": true, "is_applied": false },
      "mail_protection": { "enabled": false, "is_applied": true },
      "command_protection": { "enabled": false, "is_applied": true },
      "php_protection": { "enabled": true, "is_applied": true }
    }
  ]
}
PUT /v1/server/{servername}/waf/{domain} 書き込み

WAF設定を更新

指定ドメインの WAF 設定を更新します。送信した項目のみ更新され、省略した項目は現在の設定が維持されます。設定の反映には最大1時間程度かかることがあります。他の設定変更処理が実行中の場合は 422 を返します。

パスパラメータ

名前説明
domainドメイン名(日本語ドメインの場合はPunycodeで指定)

リクエストボディ

名前型必須説明
xss_protection boolean 任意 XSS対策。javascript 等のスクリプトタグを含むアクセスを検知
sql_injection_protection boolean 任意 SQL対策。SQL構文に該当する文字列を含むアクセスを検知
file_protection boolean 任意 ファイル対策。.htaccess 等の設定ファイル名を含むアクセスを検知
mail_protection boolean 任意 メール対策。メールヘッダー関連の文字列を含むアクセスを検知
command_protection boolean 任意 コマンド対策。kill、ftp 等のコマンド関連文字列を含むアクセスを検知
php_protection boolean 任意 PHP対策。session やファイル操作関数等を含むアクセスを検知

リクエスト例

cURL
curl \
  -X PUT \
  "https://api.xserver.ne.jp/v1/server/{servername}/waf/{domain}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "xss_protection": true,
    "sql_injection_protection": false,
    "file_protection": true,
    "mail_protection": false,
    "command_protection": false,
    "php_protection": true
}'

レスポンスフィールド

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

レスポンス例

200 OK
{
  "message": "WAF設定を変更しました"
}