VPS.org API

REST API ডকুমেন্টেশন

সার্ভার এপিআই

VPS সার্ভার তৈরি, পরীক্ষা, শক্তি, আকার পরিবর্তন এবং মুছে ফেলুন। সার্ভার তাদের uuid দ্বারা চিহ্নিত করা হয়।

শেষবিন্দু 15
বেস পাথ /api/v1/servers
পান /api/v1/servers/

সকল সার্ভারের তালিকা তৈরি করুন

আপনার অ্যাকাউন্টের সার্ভারগুলি ফিরিয়ে দেয়, সর্বশেষ প্রথমে, প্রতি পৃষ্ঠা ২৫। সার্ভারগুলি যে মুছে ফেলা হচ্ছে অন্তর্ভুক্ত করা হয় না।

অনুমতি প্রয়োজন: servers:list

কোয়েরি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
page integer না পৃষ্ঠার সংখ্যা, ১ থেকে আরম্ভ
page_size integer না প্রতি পৃষ্ঠার ফলাফল (ডিফল্ট ২৫, সর্বোচ্চ ১০০)

উদাহরণ অনুরোধ

cURL
Python
JavaScript
PHP
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 অপারেটিং সিস্টেমের নাম, সংস্করণ ছাড়া
plan_name string পড়া যায় এমন পরিকল্পনার সারসংক্ষেপ, উদাহরণস্বরূপ ১ vCPU / ২ GB RAM / ১০ GB
ipv4_addresses array IPv4 ঠিকানাগুলি স্ট্রিং হিসাবে। সার্ভারটি প্রয়োগ না করা পর্যন্ত এবং IPv4 ছাড়া পরিকল্পনার ক্ষেত্রে ফাঁকা রাখুন।
ipv6_addresses array IPv6 ঠিকানাগুলি স্ট্রিং হিসাবে। সার্ভার প্রয়োগ না করা পর্যন্ত ফাঁকা রাখা হবে।
created_at datetime তৈরির সময় (ISO 8601, UTC)
deployed boolean প্রভিডেন্সিং শেষ হলে সত্য

প্রতিক্রিয়া স্থিতি কোড

200 সার্ভার তালিকা সফলভাবে পুনরুদ্ধার করা হয়েছে
403 API টোকেন অনুপস্থিত অথবা অবৈধ, অথবা টোকেনের প্রয়োজনীয় অনুমতি অনুপস্থিত
পোস্ট /api/v1/servers/

নতুন সার্ভার তৈরি করুন

নতুন সার্ভারকে বিতরণ করার জন্য লাইন করে এবং তা অবিলম্বে অবস্থার লাইন সহ ফিরিয়ে দেয়। প্রদান পটভূমিতে চলতে থাকে: অবস্থার শেষ বিন্দুতে যতক্ষণ না বিতরণ করা হয়েছে তা সত্য হয়। সার্ভার প্রস্তুত হলে, এর লগ-ইন তথ্য অ্যাকাউন্টের মালিককে ই-মেইল করা হয়।

আপনার অ্যাকাউন্টের জন্য একটি সংরক্ষিত পরিশোধের পদ্ধতি প্রয়োজন। আপনার অ্যাকাউন্টের ইতিহাসের উপর নির্ভর করে, সার্ভার তৈরির পূর্বে আপনার কার্ডের উপর প্রকল্পের মূল্যের এক সপ্তাহের অস্থায়ী পূর্ব-অনুমোদন (অন্তত $১) রাখা হতে পারে।

অনুমতি প্রয়োজন: servers:create

অনুরোধ বডি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
hostname string হাঁ অন্তত ৩ অক্ষর। শুধুমাত্র অক্ষর, সংখ্যা, হাইফেন এবং ডট।
location_id integer হাঁ অবস্থান API থেকে সক্রিয় অবস্থানের আই.ডি.
plan_uuid string হাঁ Plans API থেকে সক্রিয় প্ল্যানের uuid
operating_system_version_uuid string হাঁ অপারেটিং সিস্টেমের সংস্করণ তালিকায় সক্রিয় এন্ট্রির uuid
ssh_key_uuids array না সার্ভারে ইনস্টল করার জন্য SSH কী 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
Python
JavaScript
PHP
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);

উদাহরণ প্রতিক্রিয়া

২০১ সার্ভার বিস্তারিত জানতে নীচে বর্ণিত পূর্ণ সার্ভার বস্তুর সাথে তৈরি করা হয়েছে । ডিপ্লোমেটেশন শেষ হলে ঠিকানা এবং 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 আপনার অ্যাকাউন্ট সার্ভার তৈরির সীমায় পৌঁছে গেছে
পান /api/v1/servers/{uuid}/

সার্ভারের বিবরণ পান

একটি সার্ভার এর অবস্থান, পরিকল্পনা, অপারেটিং সিস্টেম, আই. পি. ঠিকানা এবং পাঁচটি সাম্প্রতিক কাজ সঙ্গে ফিরিয়ে আনে ।

অনুমতি প্রয়োজন: 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"
    }
  ]
}

এস- ভি- জি আইকন মারক এবং সংস্করণ তালিকা এখানে সংক্ষিপ্ত করা হয়েছে ।

প্রতিক্রিয়া ক্ষেত্র

ক্ষেত্র আদর্শ বর্ণনা
vmid integer | null ভার্চুয়াল মেশিনের সংখ্যা, ডিপ্লোমেট করার সময় নির্ধারিত
location object অবস্থান অবজেক্ট, অবস্থান API দ্বারা প্রত্যাবর্তিত
plan object Plans API দ্বারা প্রত্যাবর্তিত Plan অবজেক্ট
operating_system, operating_system_version object অপারেটিং সিস্টেম এবং ইনস্টলকৃত সংস্করণ, Operating Systems API দ্বারা প্রদত্ত
ipv4_addresses, ipv6_addresses array ip, gateway, subnet এবং rdns (বিপরীত DNS হোস্টনেম) সহ প্রতিটি ঠিকানাতে একটি অবজেক্ট
recent_actions array সর্বশেষ পাঁচটি কার্য: id, action, action_display, description, user_email, created_at

প্রতিক্রিয়া স্থিতি কোড

200 সার্ভারের বিশদ বিবরণ সফলভাবে পুনরুদ্ধার করা হয়েছে
404 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত
পান /api/v1/servers/{uuid}/status/

সার্ভারের অবস্থা প্রাপ্ত করো

সার্ভার তৈরি, চালু অথবা আকার পরিবর্তন করার পর পলিং করার জন্য একটি হালকা কল।

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 অপ্রাপ্ত বিলের কারণে স্থগিত
পোস্ট /api/v1/servers/{uuid}/power/

সার্ভারের শক্তি নিয়ন্ত্রণ করুন

একটি বিদ্যুৎ সংক্রান্ত কাজের জন্য লাইন স্থাপন করে। কাজ সম্পন্ন না হওয়া পর্যন্ত সার্ভারের অবস্থা লাইন স্থাপনের দিকে পরিবর্তন হয়।

অনুমতি প্রয়োজন: servers:power

অনুরোধ বডি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
action string হাঁ start: পাওয়ার অন
shutdown: বিনয়ী বন্ধ, অতিথি বন্ধ না করলে জোর করে বন্ধ করা হবে
restart: হার্ড পাওয়ার সাইকেল (স্টপ, তারপর আরম্ভ)
stop: বর্তমানে পুনরায় আরম্ভের মতো একই শক্তি চক্র সম্পাদন করে । সার্ভার বন্ধ রাখতে shutdown ব্যবহার করুন ।

উদাহরণ অনুরোধ

cURL
Python
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 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত
পোস্ট /api/v1/servers/{uuid}/resize/

সার্ভার- এর আকার পরিবর্তন করুন

সার্ভারকে অন্য সক্রিয় প্ল্যানে সরিয়ে দেয় । নতুন প্ল্যানের বর্তমান প্ল্যানের চেয়ে কম ডিস্ক স্থান থাকতে পারে না, এবং অনুরোধের মূল অংশে অবশ্যই পুনরায় আকার নির্ধারণের জন্য নির্ধারিত কাজ অন্তর্ভুক্ত থাকতে হবে । নতুন প্ল্যানের জন্য হাইপার- ভিজ্যুয়াল ক্ষমতা পরীক্ষা করা হয় কোন কিছুর লাইন করা শুরু করার আগে, তাই একটি প্রত্যাখ্যাত অনুরোধ সার্ভারকে অদলবদল করে ফেলে ।

সার্ভারটি মাপ পরিবর্তনের সময় বন্ধ করা হয় এবং এরপর আবার আরম্ভ করা হয়। মাপ পরিবর্তন ব্যর্থ হলে সার্ভারটি পূর্ববর্তী পরিকল্পনায় ফিরে আসে এবং আবার আরম্ভ করা হয় যদি এটি চলছে। ডিস্কের বৃদ্ধি বাতিল করা যায় না।

অনুমতি প্রয়োজন: 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"
}

একটি প্রত্যাখ্যাত মাপ পরিবর্তনের উদাহরণ (৪০৯):

{
  "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 ক্ষমতা এখন পরীক্ষা করা যায়নি । সার্ভার পরিবর্তন করা হয়নি; পরে আবার চেষ্টা করুন ।
পোস্ট /api/v1/servers/{uuid}/reset-password/

root পাসওয়ার্ড পুনরায় নির্ধারণ করো

একটি নতুন 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 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত
পান পোস্ট /api/v1/servers/{uuid}/rdns/

বিকল্প DNS (PTR)

GET সার্ভারের প্রতিটি IPv4 এবং IPv6 ঠিকানা এর বিপরীত DNS হোস্টনেম তালিকাভুক্ত করে । POST এটি একটি ঠিকানা জন্য নির্ধারণ করে । ফাঁকা হোস্টনেম পাঠানো ঠিকানাটি তার ডিফল্ট বিপরীত DNS নাম পুনরায় নির্ধারণ করে ।

অনুমতি প্রয়োজন: servers:update

অনুরোধ বডি প্যারামিটার (POST)

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
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 আইপি অনুপস্থিত, অথবা হোস্টনেম নির্ধারণ করা যায়নি
404 IP ঠিকানা এই সার্ভারের জন্য বরাদ্দ করা হয়নি
পোস্ট /api/v1/servers/{uuid}/exec/

সার্ভারে কমান্ড চালাও

QEMU অতিথি এজেন্টের মাধ্যমে সার্ভারের মধ্যে একটি শেল কমান্ড চালায় এবং শেষ হওয়ার জন্য অপেক্ষা করে। সার্ভার অবশ্যই স্থাপন করা এবং চলমান হতে হবে, এবং qemu-guest-agent অবশ্যই ইনস্টল করা এবং অতিথির মধ্যে চলমান হতে হবে।

অনুমতি প্রয়োজন: servers:exec

অনুরোধ বডি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
command string হাঁ /bin/sh -c এর সাথে কমান্ড লাইন চালানো, ২০০০ অক্ষরের মধ্যে
timeout integer না কমান্ডের জন্য অপেক্ষা করার সেকেন্ড, ১ থেকে ৩০০ (ডিফল্ট ৩০)
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 হেডার পর পুনরায় চেষ্টা করুন।
মুছে ফেলুন /api/v1/servers/{uuid}/

সার্ভার মুছুন

স্থায়ীভাবে মুছে ফেলার জন্য সার্ভারকে লাইন করা হয়। সার্ভারটি তালিকা থেকে অবিলম্বে অদৃশ্য হয়ে যায় এবং পুনরুদ্ধার করা যায় না।

অনুমতি প্রয়োজন: 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 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত
পান পোস্ট /api/v1/ssh-keys/

SSH কী

আপনার অ্যাকাউন্টে পাবলিক SSH কী সংরক্ষণ করুন, তারপর সার্ভার তৈরি করার সময় তাদের uuids ssh_key_uuids হিসাবে প্রদান করুন। GET আপনার কী তালিকাভুক্ত করে (প্রতি পৃষ্ঠা ২৫); POST একটি যোগ করে।

অনুমতি প্রয়োজন: ssh-keys:list (GET), ssh-keys:create (POST)

অনুরোধ বডি প্যারামিটার (POST)

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
name string হাঁ কী সনাক্ত করার জন্য একটি নাম, সর্বোচ্চ ১০০ অক্ষর
public_key string হাঁ OpenSSH ফরম্যাটে পাবলিক কী, উদাহরণস্বরূপ id_ed25519.pub-এর বিষয়বস্তু

উদাহরণ অনুরোধ

cURL
Python
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 পাবলিক কী নয়
পান মুছে ফেলুন /api/v1/ssh-keys/{uuid}/

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"

ব্যাক-আপ এবং স্ন্যাপশট

ব্যাক-আপ বা স্ন্যাপশট তৈরি করাও সার্ভারের কাজ: