VPS.org API

REST API-dokumentation

Snapshots API

Administrer server-snapshots for hurtig gendannelse på et givet tidspunkt. Snapshots indfanger din servers komplette tilstand.

Endepunkter 4 endpoints
Basissti /api/v1/snapshots
/api/v1/snapshots/

Vis alle snapshots

Hent en liste over alle snapshots på tværs af dine servere.

Forespørgselsparametre

Parameter Type Påkrævet Beskrivelse
server_id integer Ingen Filtrer snapshots efter server-ID

Eksempel på anmodning

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

Eksempel på svar

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

Svarstatuskoder

200 Liste over snapshots er hentet
401 Uautoriseret - Ugyldigt eller manglende godkendelsestoken
STOLPE /api/v1/snapshots/

Opret et øjebliksbillede

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

Parametre for anmodningstekst

Parameter Type Påkrævet Beskrivelse
server_id integer Ja ID på den server, der skal tages et snapshot af
name string Ja Navn på snapshottet (alfanumerisk, bindestreger, understregninger)
description string Ingen Valgfri beskrivelse af snapshottet

Eksempel på anmodning

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

Eksempel på svar

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

Svarstatuskoder

201 Oprettelse af snapshot er startet
400 Bad Request - Invalid parameters or snapshot limit reached
401 Uautoriseret - Ugyldigt eller manglende godkendelsestoken
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.
STOLPE /api/v1/snapshots/{snapshot_id}/restore/

Gendan fra snapshot

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

Stiparametre

Parameter Type Påkrævet Beskrivelse
snapshot_id integer Ja Unikt snapshot-ID

Eksempel på anmodning

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

Eksempel på svar

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

Svarstatuskoder

200 Gendannelse er startet
400 Bad Request - Server is not in a valid state for restoration
401 Uautoriseret - Ugyldigt eller manglende godkendelsestoken
404 Ikke fundet - Snapshot findes ikke
Advarsel: 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.
SLET /api/v1/snapshots/{snapshot_id}/

Slet snapshot

Slet et snapshot permanent. Denne handling kan ikke fortrydes.

Stiparametre

Parameter Type Påkrævet Beskrivelse
snapshot_id integer Ja Unikt snapshot-ID

Eksempel på anmodning

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)

Svarstatuskoder

204 Snapshottet er slettet
401 Uautoriseret - Ugyldigt eller manglende godkendelsestoken
404 Ikke fundet - Snapshot findes ikke

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Snapshots API

  • Formål: Quick point-in-time recovery
  • Hastighed: Faster to create and restore (3-15 min)
  • Brugsscenarie: Before risky operations (updates, config changes)
  • Opbevaring: Stored on same infrastructure
  • Begrænse: 5 snapshots per server
  • Bedst til: Short-term rollback capability

Backups API

  • Formål: Long-term data protection
  • Hastighed: Slower to create and restore (varies)
  • Brugsscenarie: Regular automated data protection
  • Opbevaring: Separate backup storage
  • Begrænse: 10 manual + automatic backups
  • Bedst til: Disaster recovery and compliance

Best Practices