VPS サーバを作成、検査、電源、サイズ変更、削除します。サーバは uid で識別されます。
アカウントにあるサーバを返します。最近のものを先に、ページ当たり 25 個表示します。削除中のサーバは含まれません。
必要な権限: servers:list
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
page |
integer | いや | ページ番号、1 から始まる |
page_size |
integer | いや | ページ当たりの結果 (デフォルトは 25, 最大は 100) |
curl -X GET "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
for server in response.json()["results"]:
print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($data['results'] as $server) {
echo $server['hostname'] . ' ' . $server['status'] . "\n";
}
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"status": "on",
"error_description": null,
"location_name": "New Jersey",
"plan_name": "1 vCPU / 2 GB RAM / 10 GB",
"os_name": "Ubuntu",
"ipv4_addresses": ["203.0.113.10"],
"ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
"created_at": "2026-07-30T03:54:14.914364Z",
"deployed": true
},
{
"uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
"hostname": "db-01",
"status": "queue",
"error_description": null,
"location_name": "New Jersey",
"os_name": "Debian",
"ipv4_addresses": [],
"ipv6_addresses": [],
"created_at": "2026-09-14T19:33:49.426508Z",
"deployed": false
}
]
}
| フィールド | タイプ | 説明 |
|---|---|---|
uuid |
string | 他のすべてのサーバエンドポイントで使用するサーバ識別子 |
hostname |
string | サーバを作成したときに選択したホスト名 |
status |
string | 現在の状態。下のサーバの状態値を参照してください。 |
error_description |
string | null | 状態がエラーの場合、最後の失敗の詳細、それ以外は null |
location_name |
string | サーバが実行されている場所の名前 |
os_name |
string | OS の名前、バージョンなし |
plan_name |
string | 読みやすいプラン概要、例えば 1 vCPU / 2 GB RAM / 10 GB |
ipv4_addresses |
array | IPv4 アドレスは文字列として表示されます。サーバが配置されるまで空で、IPv4 がないプランでは空です。 |
ipv6_addresses |
array | IPv6 アドレスは文字列として表示されます。サーバが配置されるまで空です。 |
created_at |
datetime | 作成時刻 (ISO 8601, UTC) |
deployed |
boolean | プロビジョニングが終了したら TRUE |
| 200 | サーバーリストを正常に取得しました |
| 403 | API トークンが無効か欠けています。または、トークンには必要な権限がありません。 |
新しいサーバを配置のためにキューに入れ、状態キューを直ちに返します。プロビジョニングはバックグラウンドで続きます: 配置が true になるまで状態エンドポイントをポールします。サーバが準備ができたら、ログイン情報をアカウントオーナーにメールします。
アカウントには保存された支払い方法が必要です。アカウント履歴により、サーバが作成される前にカードに約1週間分のプラン料金 (少なくとも 1 USD) を一時的に預金保留するかもしれません。
必要な権限: servers:create
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
hostname |
string | はい | 少なくとも 3 文字です。文字、数字、ハイフン、点のみです。 |
location_id |
integer | はい | Locations API からアクティブな場所の id |
plan_uuid |
string | はい | プラン API からアクティブなプランの uuid |
operating_system_version_uuid |
string | はい | OS のバージョンリストにあるアクティブなエントリの uuid |
ssh_key_uuids |
array | いや | サーバにインストールする SSH Keys API からの SSH 鍵の UUID |
ssh_key_ids |
array | いや | ssh_key_uuids の代わりに SSH 鍵の整数 id を指定します。両方が送られた場合は ssh_key_ids を使用します。 |
ssh_key_uuid, ssh_key_id |
string, integer | いや | 単一の SSH 鍵の略語 |
auth_method |
string | いや | これは、パスワード、ssh_key、または両方です。SSH 鍵が提供されている場合、デフォルトはパスワードまたは両方です。 |
curl -X POST "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
}'
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}
response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
hostname: 'web-01',
location_id: 1,
plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
})
});
const server = await response.json();
console.log(server.uuid, server.status);
$data = [
'hostname' => 'web-01',
'location_id' => 1,
'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server = json_decode(curl_exec($ch), true);
curl_close($ch);
201 サーバの詳細を取得するで説明したフルサーバオブジェクトで作成されました。アドレスと vmid は、デプロイメントが終わった後に埋め込まれます。
{
"uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
"hostname": "web-01",
"vmid": null,
"status": "queue",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 10,
"disk_space_total": 10240,
"transfer": 500,
"price": "3.50",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.005",
"monthly_price": "3.50",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [],
"ipv6_addresses": [],
"deployed": false,
"created_at": "2026-09-14T21:02:11.402113Z",
"recent_actions": []
}
| 201 | サーバを作成し、配置のためにキューに入れた |
| 400 | 検証エラー、例えば非アクティブな場所、プラン、オペレーティングシステムのバージョン |
| 402 | ファイルにある支払方法がない、未払い請求書、カードの予約が拒否された |
| 403 | API トークンが無効か欠けています。または、トークンには必要な権限がありません。 |
| 429 | アカウントはサーバ作成制限に達しました |
サーバの場所、プラン、オペレーティングシステム、IPアドレス、最近の5つの動作を含むサーバを返します。
必要な権限: servers:list
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"vmid": 1042,
"status": "on",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 25,
"disk_space_total": 25600,
"transfer": 1,
"price": "5.00",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.007",
"monthly_price": "5.00",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [
{
"ip": "203.0.113.10",
"gateway": "203.0.113.1",
"subnet": "203.0.113.0",
"rdns": "web-01.example.com"
}
],
"ipv6_addresses": [
{
"ip": "2001:db8:2:dd::f9:6b",
"gateway": "2001:db8:2:dd::f9:1",
"subnet": "2001:db8:2:dd::f9:0",
"rdns": "web-01.example.com"
}
],
"deployed": true,
"created_at": "2026-07-30T03:54:14.914364Z",
"recent_actions": [
{
"id": 17028,
"action": "create",
"action_display": "Create",
"description": "Server deployed with VMID 1042",
"user_email": "you@example.com",
"created_at": "2026-07-30T03:54:32.860854Z"
}
]
}
SVG アイコンマークアップとバージョンリストをここで簡略化します。
| フィールド | タイプ | 説明 |
|---|---|---|
vmid |
integer | null | 仮想マシン番号、配置中に設定 |
location |
object | Locations API が返す場所オブジェクト |
plan |
object | Plans API が返すプランオブジェクト |
operating_system, operating_system_version |
object | OS API が返すオペレーティングシステムとインストールされたバージョン |
ipv4_addresses, ipv6_addresses |
array | ip、ゲートウェイ、サブネット、rdns (逆DNSホスト名) を含むアドレスごとに一つのオブジェクト |
recent_actions |
array | 最近のアクションを最多5つまで: id, action, action_display, description, user_email, created_at |
| 200 | サーバーの詳細を正常に取得しました |
| 404 | 見つかりませんでした。あるいは、他のアカウントに属しています。 |
サーバを作成、電源を入れ、サイズを変更した後のポリングのための軽量コール。
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": "on",
"deployed": true,
"resizing": false
}
| 値 | 説明 |
|---|---|
queue |
操作(デプロイ、電源操作、リサイズ、復元)がキュー待ちまたは処理中です |
deploying |
プロビジョニング中。コントロールパネルから作成したサーバはこの状態を使用します。APIを通して作成したサーバは準備が整うまでキューに残ります。 |
on |
走る |
off |
パワーオフ |
error |
最後のアクションが失敗しました。 error_description を参照してください。 |
suspended_payment |
請求書の支払いが遅れたため 休業 |
電源アクションをキューに追加します。アクションが完了するまでサーバの状態はキューに変更されます。
必要な権限: servers:power
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
action |
string | はい |
start: 電源を入れろshutdown: 優雅なシャットダウン ゲストが止まらないと 強制的にシャットダウンrestart: ハードパワーサイクル (停止、再始動)stop: サーバは現在再起動と同じ電源サイクルを実行しています。サーバを停止するには shutdown を使用してください。
|
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "restart"}'
import requests
server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())
{
"message": "Server restart queued"
}
| 200 | アクションがキューに入っています |
| 400 | 欠けているアクションまたはサポートされていないアクション |
| 402 | あの口座に 未払い請求書があるから スタート拒否されて |
| 404 | 見つかりませんでした。あるいは、他のアカウントに属しています。 |
サーバを他のアクティブなプランに移動します。新しいプランは現在のプランよりもディスクスペースが少なくてはなりません。要求のボディにはサイズ変更のアクションを含めなければなりません。新しいプランのハイパーバイザ容量は、キューに入る前にチェックされます。拒否された要求はサーバを変更しません。
サーバはサイズ変更中に停止し、その後再起動します。サイズ変更に失敗した場合、サーバは以前のプランに戻され、実行中であれば再起動されます。ディスクの増加は無効にできます。
必要な権限: servers:resize
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
action |
string | はい | 変更しなければなりません |
new_plan_uuid |
string | はい | 移動するプランの uuid |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
"message": "Resize queued successfully"
}
拒否されたサイズ変更の例 (409):
{
"error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}
| 200 | アクションがキューに入っています |
| 400 | アクションまたは new_plan_uuid が欠けています。不正なプラン、不活性なプラン、ディスクスペースが少ないプラン、GPU プラン (API を使って GPU プランのサイズを変更できません) |
| 404 | 見つかりませんでした。あるいは、他のアカウントに属しています。 |
| 409 | サイズ変更やストレージの変更が既に進行中か、新しいプランに対してハイパーバイザ容量が不足しています |
| 503 | キャパシティを確認できませんでした。サーバは変更されていません。後で再度試してください。 |
新しい root パスワードを生成し、応答で返し、サーバ上で変更をキューに入れます。新しいパスワードはメールで送信されます。サーバは配置されている必要があります。要求のボディは必要ありません。
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Password reset queued. New password will also be emailed to you.",
"password": "generated-password",
"job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}
| 200 | アクションがキューに入っています |
| 400 | サーバはまだ配置されていません |
| 404 | 見つかりませんでした。あるいは、他のアカウントに属しています。 |
GET はサーバ上のすべての IPv4 と IPv6 アドレスの逆 DNS ホスト名をリストします。POST は一つのアドレスに設定します。空のホスト名を送信すると、アドレスはデフォルトの逆 DNS 名にリセットされます。
必要な権限: servers:update
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
ip |
string | はい | このサーバに割り当てられた IPv4 または IPv6 アドレス |
hostname |
string | いや | PTR ホスト名。空にするとデフォルトに戻ります。 |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
"message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
"ip": "203.0.113.10",
"hostname": "mail.example.com"
}
GET 応答:
{
"rdns": [
{"ip": "203.0.113.10", "hostname": "mail.example.com"},
{"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
]
}
| 400 | ipが欠けているか、ホスト名が設定できませんでした |
| 404 | IP アドレスがこのサーバに割り当てられていません |
QEMU ゲストエージェントを通してサーバ内でシェルコマンドを実行し、終了を待つ。サーバは実装されて実行され、qemu-guest-agent はゲストにインストールされて実行される必要があります。
必要な権限: servers:exec
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
command |
string | はい | /bin/sh -c でコマンドラインを実行、最大2000文字 |
timeout |
integer | いや | コマンドを待つ秒数。1 から 300 まで (標準は 30) |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "uptime", "timeout": 30}'
{
"stdout": " 21:14:03 up 46 days, 2:10, 0 users, load average: 0.08, 0.03, 0.01\n",
"stderr": "",
"exit_code": 0,
"timed_out": false
}
タイムアウトが過ぎた後もコマンドが実行されている場合、 応答は timed_out を true に、 exit_code を null に設定します。
| 200 | コマンドが終了またはタイムアウトしました |
| 400 | サーバが実行されていないか、デプロイされていないか、またはパラメータが無効です |
| 409 | QEMU ゲストエージェントがサーバ上で実行されていません |
| 503 | 一時的な接続問題です。Retry-Afterヘッダの後に再試行してください。 |
永久削除のためにサーバをキューに追加します。サーバはすぐにリストから消え、復元できません。
必要な権限: servers:delete
curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Server deletion queued"
}
| 202 | 受け入れ: 要求はキューに入れられました |
| 404 | 見つかりませんでした。あるいは、他のアカウントに属しています。 |
公開SSHキーをアカウントに保存し、サーバー作成時にそのuuidをssh_key_uuidsとして渡します。GETはキーの一覧を返し(ページごとに25件)、POSTはキーを追加します。
必要な権限: ssh-keys:list (GET), ssh-keys:create (POST)
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
name |
string | はい | キーを識別する名前、最大 100 文字 |
public_key |
string | はい | OpenSSH フォーマットの公開鍵。例えば id_ed25519.pub の内容 |
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests
url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
with open("/home/you/.ssh/id_ed25519.pub") as f:
data = {"name": "laptop", "public_key": f.read().strip()}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])
{
"id": 19,
"uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
"name": "laptop",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
"fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
"created_at": "2026-08-23T19:16:11.547183Z",
"last_used_at": null
}
| フィールド | タイプ | 説明 |
|---|---|---|
id, uuid |
integer, string | 鍵識別子。ssh_key_uuidsと下の URL に uuid を使用します。id は ssh_key_ids で動作します。 |
fingerprint |
string | プラットフォームによって計算された鍵の MD5 フィンガープリント |
last_used_at |
datetime | null | 鍵が最後に新しいサーバにインストールされた時 |
| 201 | キーを追加 |
| 400 | 名前がありませんか?あるいは公開鍵は有効な SSH 公開鍵ではありませんか? |
GETは上のフィールドを含む鍵を返します。DELETEはアカウントから削除し、ボディなしの 204 を返します。鍵を削除すると、インストールされているサーバから削除されません。鍵は編集できません。削除して再び追加します。
必要な権限: ssh-keys:list (GET), ssh-keys:delete (DELETE)
curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
バックアップやスナップショットを作成することもサーバアクションです。
POST /api/v1/servers/{uuid}/backup/: バックアップAPIPOST /api/v1/servers/{uuid}/snapshot/: スナップショットAPI