VPS.org API

Nyaraka za API za REST

API ya Seva

Dhibiti seva zako za VPS kiprogramu. Unda, sanidi, dhibiti, na ufuatilie seva zako pepe za faragha.

Sehemu za Mwisho 9
Njia ya Msingi /api/v1/servers
PATA /api/v1/servers/

Orodhesha Seva Zote

Pata orodha ya seva zote katika akaunti yako.

Vigezo vya Hoja

Kigezo Aina Inahitajika Maelezo
status kamba Hapana Chuja kwa hali ya seva: inafanya kazi, imesimamishwa, imesimamishwa
location kamba Hapana Chuja kwa eneo la kituo cha data

Ombi la Mfano

cURL
Python
JavaScript
PHP
curl -X GET "https://admin.vps.org/api/v1/servers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const servers = await response.json();
console.log(servers);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$servers = json_decode($response, true);
curl_close($ch);

Jibu la Mfano

{
  "count": 2,
  "results": [
    {
      "id": 12345,
      "name": "web-server-01",
      "hostname": "web01.example.com",
      "status": "active",
      "ip_address": "203.0.113.10",
      "location": "us-west",
      "plan": {
        "id": 1,
        "name": "Standard VPS",
        "vcpus": 2,
        "memory": 4096,
        "storage": 80
      },
      "os": {
        "id": 5,
        "name": "Ubuntu 22.04 LTS"
      },
      "created_at": "2025-01-10T14:30:00Z",
      "updated_at": "2025-01-15T10:20:00Z"
    },
    {
      "id": 12346,
      "name": "db-server-01",
      "hostname": "db01.example.com",
      "status": "active",
      "ip_address": "203.0.113.11",
      "location": "us-east",
      "plan": {
        "id": 2,
        "name": "Performance VPS",
        "vcpus": 4,
        "memory": 8192,
        "storage": 160
      },
      "os": {
        "id": 3,
        "name": "Debian 12"
      },
      "created_at": "2025-01-12T09:15:00Z",
      "updated_at": "2025-01-16T08:45:00Z"
    }
  ]
}

Misimbo ya Hali ya Majibu

200 Imefanikiwa kurejesha orodha ya seva
401 Hairuhusiwi - Tokeni ya API si sahihi au haipo
POST /api/v1/servers/

Unda Seva Mpya

Tumia seva mpya ya VPS yenye usanidi maalum.

Omba Vigezo vya Mwili

Kigezo Aina Inahitajika Maelezo
name kamba Ndiyo Jina la seva (alfabeti, vistari vinaruhusiwa)
plan_id nambari kamili Ndiyo Kitambulisho cha mpango wa VPS
os_id nambari kamili Ndiyo Kitambulisho cha mfumo wa uendeshaji
location kamba Ndiyo Msimbo wa eneo la kituo cha data
hostname kamba Hapana Jina la mwenyeji wa seva (FQDN)
ssh_key_id nambari kamili Hapana Kitambulisho cha ufunguo wa SSH cha kusakinisha
backups_enabled boolean Hapana Washa nakala rudufu kiotomatiki (chaguo-msingi: si kweli)

Ombi la Mfano

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 '{
    "name": "web-server-02",
    "plan_id": 1,
    "os_id": 5,
    "location": "us-west",
    "hostname": "web02.example.com",
    "backups_enabled": true
  }'
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "name": "web-server-02",
    "plan_id": 1,
    "os_id": 5,
    "location": "us-west",
    "hostname": "web02.example.com",
    "backups_enabled": True
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
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({
    name: 'web-server-02',
    plan_id: 1,
    os_id: 5,
    location: 'us-west',
    hostname: 'web02.example.com',
    backups_enabled: true
  })
});

const server = await response.json();
console.log(server);
$data = [
    'name' => 'web-server-02',
    'plan_id' => 1,
    'os_id' => 5,
    'location' => 'us-west',
    'hostname' => 'web02.example.com',
    'backups_enabled' => true
];

$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);

$response = curl_exec($ch);
$server = json_decode($response, true);
curl_close($ch);

Jibu la Mfano

{
  "id": 12347,
  "name": "web-server-02",
  "hostname": "web02.example.com",
  "status": "provisioning",
  "ip_address": null,
  "location": "us-west",
  "plan": {
    "id": 1,
    "name": "Standard VPS",
    "vcpus": 2,
    "memory": 4096,
    "storage": 80
  },
  "os": {
    "id": 5,
    "name": "Ubuntu 22.04 LTS"
  },
  "backups_enabled": true,
  "created_at": "2025-01-16T15:30:00Z",
  "updated_at": "2025-01-16T15:30:00Z",
  "message": "Server is being provisioned. This may take 2-5 minutes."
}

Misimbo ya Hali ya Majibu

201 Seva imeundwa kwa mafanikio
400 Ombi Batili - Vigezo batili
401 Hairuhusiwi - Tokeni ya API si sahihi au haipo
402 Malipo Yanahitajika - Mikopo haitoshi
PATA /api/v1/servers/{server_id}/

Pata Maelezo ya Seva

Pata maelezo ya kina kuhusu seva maalum.

Vigezo vya Njia

Kigezo Aina Inahitajika Maelezo
server_id nambari kamili Ndiyo Kitambulisho cha seva cha kipekee

Ombi la Mfano

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/servers/12345/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())
const serverId = 12345;
const response = await fetch(`https://admin.vps.org/api/v1/servers/${serverId}/`, {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const server = await response.json();
console.log(server);

Jibu la Mfano

{
  "id": 12345,
  "name": "web-server-01",
  "hostname": "web01.example.com",
  "status": "active",
  "ip_address": "203.0.113.10",
  "ipv6_address": "2001:0db8::1",
  "location": "us-west",
  "plan": {
    "id": 1,
    "name": "Standard VPS",
    "vcpus": 2,
    "memory": 4096,
    "storage": 80,
    "bandwidth": 2048
  },
  "os": {
    "id": 5,
    "name": "Ubuntu 22.04 LTS"
  },
  "backups_enabled": true,
  "resource_usage": {
    "cpu_percent": 23.5,
    "memory_used": 2048,
    "disk_used": 35,
    "bandwidth_used": 450
  },
  "created_at": "2025-01-10T14:30:00Z",
  "updated_at": "2025-01-16T15:45:00Z"
}

Misimbo ya Hali ya Majibu

200 Imefanikiwa kurejesha maelezo ya seva
401 Hairuhusiwi - Tokeni ya API si sahihi au haipo
404 Haipatikani - Seva haipo
PUT /api/v1/servers/{server_id}/

Sasisha Seva

Sasisha usanidi wa seva. Sehemu zote zinahitajika.

Vigezo vya Njia

Parameter Type Required Description
server_id integer Yes Kitambulisho cha seva cha kipekee

Omba Vigezo vya Mwili

Kigezo Aina Inahitajika Maelezo
name kamba Ndiyo Jina la seva
hostname kamba Ndiyo Jina la mwenyeji wa seva (FQDN)
backups_enabled boolean Ndiyo Washa/zima nakala rudufu otomatiki

Ombi la Mfano

cURL
Python
curl -X PUT "https://admin.vps.org/api/v1/servers/12345/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-server-updated",
    "hostname": "web-updated.example.com",
    "backups_enabled": true
  }'
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "name": "web-server-updated",
    "hostname": "web-updated.example.com",
    "backups_enabled": True
}

response = requests.put(url, headers=headers, json=data)
print(response.json())

Misimbo ya Hali ya Majibu

200 Seva imesasishwa kwa mafanikio
400 Ombi Batili - Vigezo batili
404 Haipatikani - Seva haipo
KIAMBATISHO /api/v1/servers/{server_id}/

Sasisha Seva kwa Sehemu

Sasisha sehemu maalum za seva. Sehemu zilizotolewa pekee ndizo zitakazosasishwa.

Ombi la Mfano

cURL
Python
curl -X PATCH "https://admin.vps.org/api/v1/servers/12345/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "new-server-name"
  }'
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"name": "new-server-name"}

response = requests.patch(url, headers=headers, json=data)
print(response.json())
FUTA /api/v1/servers/{server_id}/

Futa Seva

Futa seva kabisa. Kitendo hiki hakiwezi kutenduliwa.

Ombi la Mfano

cURL
Python
curl -X DELETE "https://admin.vps.org/api/v1/servers/12345/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)
print(response.status_code)

Misimbo ya Hali ya Majibu

204 Seva imefutwa kwa mafanikio
404 Haipatikani - Seva haipo
POST /api/v1/servers/{server_id}/start/

Anza Seva

Washa seva iliyosimama.

Ombi la Mfano

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/servers/12345/start/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/start/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers)
print(response.json())
const serverId = 12345;
const response = await fetch(`https://admin.vps.org/api/v1/servers/${serverId}/start/`, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const result = await response.json();
console.log(result);

Jibu la Mfano

{
  "status": "success",
  "message": "Server is starting",
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "starting"
  }
}

Misimbo ya Hali ya Majibu

200 Amri ya kuanza kwa seva imetumwa kwa mafanikio
400 Ombi Batili - Seva tayari inafanya kazi
404 Haipatikani - Seva haipo
POST /api/v1/servers/{server_id}/stop/

Simamisha Seva

Kwa neema funga seva inayofanya kazi.

Ombi la Mfano

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/12345/stop/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/stop/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers)
print(response.json())

Jibu la Mfano

{
  "status": "success",
  "message": "Server is stopping",
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "stopping"
  }
}
POST /api/v1/servers/{server_id}/reboot/

Washa Seva

Anzisha upya seva inayofanya kazi kwa neema.

Ombi la Mfano

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/12345/reboot/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

server_id = 12345
url = f"https://admin.vps.org/api/v1/servers/{server_id}/reboot/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers)
print(response.json())

Jibu la Mfano

{
  "status": "success",
  "message": "Server is rebooting",
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "rebooting"
  }
}

Misimbo ya Hali ya Majibu

200 Amri ya kuwasha upya seva imetumwa kwa mafanikio
400 Ombi Batili - Seva haifanyi kazi
404 Haipatikani - Seva haipo