VPS.org API

Pagina officialis Documentationis

API Imaginum Temporalium

Imagines momentaneas servitoris ad celerem restitutionem in tempore definito administra. Imagines momentanee statum integrum servitoris tui capiunt.

Extrema 4 endpoints
Via Basis /api/v1/snapshots
ACQUIRE /api/v1/snapshots/

Omnes Imagines Enumera

Indicem omnium imaginum momentanearum per servitores tuos recupera.

Parametri Quaestionis

Parametrus Typus Requisitum Descriptio
server_id integer No Imagines momentaneas secundum identificationem servi filtra

Exemplum Petitionis

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

Exemplum Responsionis

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

Codices Status Responsorum

200 Index imaginum feliciter recuperatus
401 Non auctorizatus - Tessera authenticationis invalida vel absens
Post /api/v1/snapshots/

Crea Imaginem

Creat instantia servilis status hodie. Instantia sunt copiae in tempore puncto in toto servili.

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
server_id integer Ita Identificatio servi ad imaginem capiendam
name string Ita Nomen imaginis (alphanumericum, hyphena, sublineata)
description string No Descriptio facultativa pro imagine (vel "capita")

Exemplum Petitionis

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

Exemplum Responsionis

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

Codices Status Responsorum

201 Creatio imaginis momentanee feliciter incepta est
400 Bad Request - Invalid parameters or snapshot limit reached
401 Non auctorizatus - Tessera authenticationis invalida vel absens
404 Not Found - Server does not exist
Notae: 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/

Restituere ex Imagine Instantanea

Servitor ad status in instantia captum restituit. Haec res omnes datum hodiernas in servitore superscribit.

Parametri Semitae

Parametrus Typus Requisitum Descriptio
snapshot_id integer Ita Identificatio singularis imaginis

Exemplum Petitionis

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

Exemplum Responsionis

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

Codices Status Responsorum

200 Restauratio feliciter incepta est
400 Bad Request - Server is not in a valid state for restoration
401 Non auctorizatus - Tessera authenticationis invalida vel absens
404 Non Inventa - Imago non existit.
Monitio: 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.
DELE /api/v1/snapshots/{snapshot_id}/

Dele Imaginem

Imaginem momentaneam perpetuo dele. Haec actio non potest irrita fieri.

Parametri Semitae

Parametrus Typus Requisitum Descriptio
snapshot_id integer Ita Identificatio singularis imaginis

Exemplum Petitionis

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)

Codices Status Responsorum

204 Imago feliciter deleta est
401 Non auctorizatus - Tessera authenticationis invalida vel absens
404 Non Inventa - Imago non existit.

Snapshots vs Backups

Incolae Aequienses vel Aequienses appellantur.

API Imaginum Temporalium

  • Propositum: Quick point-in-time recovery
  • Celeritas: Faster to create and restore (3-15 min)
  • Usus Casus: Before risky operations (updates, config changes)
  • Repositorium: Stored on same infrastructure
  • Limites: 5 snapshots per server
  • Optimum pro: Short-term rollback capability

API Copiarum Subsidiariarum

  • Propositum: Long-term data protection
  • Celeritas: Slower to create and restore (varies)
  • Usus Casus: Regular automated data protection
  • Repositorium: Separate backup storage
  • Limites: 10 manual + automatic backups
  • Optimum pro: Disaster recovery and compliance

Praesides Belgicae