VPS.org API

REST API Documentation

Snapshots API

Behear server-snapshots foar rappe herstel op in bepaald momint. Snapshots fange de folsleine steat fan jo server fêst.

Einpunten 4 endpoints
Basispaad /api/v1/snapshots
KRIJE /api/v1/snapshots/

List alle snapshots

Helje in list op fan alle snapshots op jo servers.

Fraachparameters

Parameter Type Ferplicht Description
server_id integer No Filterje snapshots op server-ID

Foarbyldfersyk

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

Foarbyldantwurd

{
  "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"
    }
  ]
}

Antwurdstatuskoades

200 Snapshotlist mei súkses ophelle
401 Net autorisearre - Unjildich of ûntbrekkend autentikaasjetoken
POST /api/v1/snapshots/

Snapshot oanmeitsje

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

Parameters fan oanfraachlichem

Parameter Type Ferplicht Description
server_id integer Ja ID fan 'e tsjinner om snapshot te meitsjen
name string Ja Namme foar de snapshot (alfanumeryk, keppeltekens, ûnderstrekings)
description string No Opsjonele beskriuwing foar de snapshot

Foarbyldfersyk

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

Foarbyldantwurd

{
  "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."
}

Antwurdstatuskoades

201 Snapshot-oanmeitsjen mei súkses begûn
400 Bad Request - Invalid parameters or snapshot limit reached
401 Net autorisearre - Unjildich of ûntbrekkend autentikaasjetoken
404 Not Found - Server does not exist
Note: 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.
POST /api/v1/snapshots/{snapshot_id}/restore/

Weromsette fan Snapshot

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

Paadparameters

Parameter Type Ferplicht Description
snapshot_id integer Ja Unike snapshot-ID

Foarbyldfersyk

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

Foarbyldantwurd

{
  "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"
  }
}

Antwurdstatuskoades

200 Herstel mei súkses begûn
400 Bad Request - Server is not in a valid state for restoration
401 Net autorisearre - Unjildich of ûntbrekkend autentikaasjetoken
404 Net fûn - Snapshot bestiet net
Warskôging: 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.
WISKE /api/v1/snapshots/{snapshot_id}/

Snapshot wiskje

In snapshot permanint wiskje. Dizze aksje kin net ûngedien makke wurde.

Paadparameters

Parameter Type Ferplicht Description
snapshot_id integer Ja Unike snapshot-ID

Foarbyldfersyk

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)

Antwurdstatuskoades

204 Snapshot mei súkses wiske
401 Net autorisearre - Unjildich of ûntbrekkend autentikaasjetoken
404 Net fûn - Snapshot bestiet net

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots API

  • Doel: Quick point-in-time recovery
  • Faasje: Faster to create and restore (3-15 min)
  • Gebrûksgefal: Before risky operations (updates, config changes)
  • Opslach: Stored on same infrastructure
  • Limit: 5 snapshots per server
  • Bêste foar: Short-term rollback capability

Reservekopyen API

  • Doel: Long-term data protection
  • Faasje: Slower to create and restore (varies)
  • Gebrûksgefal: Regular automated data protection
  • Opslach: Separate backup storage
  • Limit: 10 manual + automatic backups
  • Bêste foar: Disaster recovery and compliance

Best Practices