VPS.org API

Dokuméntasi REST API

API Cuplikan

Atur snapshot server pikeun pamulihan gancang dina waktos anu singget. Snapshot ngarékam kaayaan lengkep server anjeun.

Titik Tungtung 4 endpoints
Jalur Dasar /api/v1/snapshots
MEUNANGKEUN /api/v1/snapshots/

Daptarkeun Sadaya Potret

Candak daptar sadaya snapshot di sakumna server anjeun.

Parameter Pamundut

Parameter Tipe Diperlukeun Pedaran
server_id integer Henteu Saring snapshot dumasar ID server

Conto Pamundut

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

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

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

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

Conto Réspon

{
  "count": 2,
  "results": [
    {
      "id": 801,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "pre-migration-snapshot",
      "status": "completed",
      "size_mb": 5120,
      "created_at": "2025-01-15T18:30:00Z",
      "description": "Before major migration"
    },
    {
      "id": 798,
      "server": {
        "id": 12345,
        "name": "web-server-01"
      },
      "name": "weekly-snapshot-2025-01-08",
      "status": "completed",
      "size_mb": 4856,
      "created_at": "2025-01-08T12:00:00Z",
      "description": "Weekly snapshot"
    }
  ]
}

Kodeu Status Tanggapan

200 Daptar snapshot hasil dicandak
401 Teu Sah - Token auténtikasi teu valid atanapi leungit
POSTING /api/v1/snapshots/

Jieun Cuplikan

Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.

Pamundut Parameter Awak

Parameter Tipe Diperlukeun Pedaran
server_id integer Muhun ID server pikeun snapshot
name string Muhun Ngaran pikeun snapshot (alfanumerik, tanda hubung, garis handap)
description string Henteu Pedaran opsional pikeun snapshot

Conto Pamundut

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/snapshots/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
  }'
import requests

url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "server_id": 12345,
    "name": "before-update-snapshot",
    "description": "Snapshot before system update"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/snapshots/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    server_id: 12345,
    name: 'before-update-snapshot',
    description: 'Snapshot before system update'
  })
});

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

Conto Réspon

{
  "id": 802,
  "server": {
    "id": 12345,
    "name": "web-server-01"
  },
  "name": "before-update-snapshot",
  "status": "in_progress",
  "size_mb": null,
  "created_at": "2025-01-16T16:15:00Z",
  "description": "Snapshot before system update",
  "message": "Snapshot is being created. This may take 3-10 minutes depending on server size."
}

Kodeu Status Tanggapan

201 Nyieun snapshot dimimitian kalawan suksés
400 Bad Request - Invalid parameters or snapshot limit reached
401 Teu Sah - Token auténtikasi teu valid atanapi leungit
404 Not Found - Server does not exist
Catetan: You can have a maximum of 5 snapshots per server. Creating a snapshot while the server is running may result in filesystem inconsistencies. For best results, stop the server before creating a snapshot.
POSTING /api/v1/snapshots/{snapshot_id}/restore/

Mulangkeun tina Snapshot

Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.

Parameter Jalur

Parameter Tipe Diperlukeun Pedaran
snapshot_id integer Muhun ID snapshot unik

Conto Pamundut

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

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

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

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

Conto Réspon

{
  "status": "success",
  "message": "Server is being restored from snapshot. This may take 5-15 minutes.",
  "snapshot": {
    "id": 801,
    "name": "pre-migration-snapshot",
    "created_at": "2025-01-15T18:30:00Z"
  },
  "server": {
    "id": 12345,
    "name": "web-server-01",
    "status": "restoring"
  }
}

Kodeu Status Tanggapan

200 Pamulihan dimimitian kalayan suksés
400 Bad Request - Server is not in a valid state for restoration
401 Teu Sah - Token auténtikasi teu valid atanapi leungit
404 Teu Kapanggih - Snapshot teu aya
Peringatan: Restoring from a snapshot will overwrite all current data on the server. This action cannot be undone. The server will be automatically stopped before restoration begins.
HAPUS /api/v1/snapshots/{snapshot_id}/

Hapus Cuplikan

Hapus snapshot sacara permanén. Peta ieu teu tiasa dibolaykeun.

Parameter Jalur

Parameter Tipe Diperlukeun Pedaran
snapshot_id integer Muhun ID snapshot unik

Conto Pamundut

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

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

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

Kodeu Status Tanggapan

204 Cuplikan hasil dihapus
401 Teu Sah - Token auténtikasi teu valid atanapi leungit
404 Teu Kapanggih - Snapshot teu aya

Snapshots vs Backups

Understanding when to use snapshots versus backups:

API Cuplikan

  • Tujuan: Quick point-in-time recovery
  • Kagancangan: Faster to create and restore (3-15 min)
  • Kasus Pamakéan: Before risky operations (updates, config changes)
  • Panyimpenan: Stored on same infrastructure
  • Wates: 5 snapshots per server
  • Pangsaéna Pikeun: Short-term rollback capability

API Cadangan

  • Tujuan: Long-term data protection
  • Kagancangan: Slower to create and restore (varies)
  • Kasus Pamakéan: Regular automated data protection
  • Panyimpenan: Separate backup storage
  • Wates: 10 manual + automatic backups
  • Pangsaéna Pikeun: Disaster recovery and compliance

Best Practices