VPS.org API

REST API Documentation

Mga Snapshot API

Pamahalaan ang mga snapshot ng server para sa mabilis na point-in-time na pagpapanumbalik. Kinukuha ng mga snapshot ang kumpletong estado ng iyong server.

Mga Endpoint 4 endpoints
Landas ng Batayan /api/v1/snapshots
KUMUHA /api/v1/snapshots/

Ilista ang Lahat ng Snapshot

Kumuha ng listahan ng lahat ng snapshot sa iyong mga server.

Mga Parameter ng Query

Parameter Uri Kinakailangan Description
server_id integer No I-filter ang mga snapshot ayon sa server ID

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

200 Matagumpay na nakuha ang listahan ng snapshot
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
POST /api/v1/snapshots/

Gumawa ng Snapshot

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

Humiling ng mga Parameter ng Katawan

Parameter Uri Kinakailangan Description
server_id integer Oo ID ng server para sa snapshot
name string Oo Pangalan para sa snapshot (alphanumeric, hyphens, underscore)
description string No Opsyonal na paglalarawan para sa snapshot

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

201 Matagumpay na nasimulan ang paggawa ng snapshot
400 Bad Request - Invalid parameters or snapshot limit reached
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
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/

Ibalik mula sa Snapshot

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

Mga Parameter ng Landas

Parameter Uri Kinakailangan Description
snapshot_id integer Oo Natatanging ID ng snapshot

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

200 Matagumpay na nasimulan ang pagpapanumbalik
400 Bad Request - Server is not in a valid state for restoration
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
404 Hindi Natagpuan - Walang Snapshot
Babala: 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.
TANGGALIN /api/v1/snapshots/{snapshot_id}/

Burahin ang Snapshot

Permanenteng burahin ang isang snapshot. Hindi na maaaring bawiin ang aksyon na ito.

Mga Parameter ng Landas

Parameter Uri Kinakailangan Description
snapshot_id integer Oo Natatanging ID ng snapshot

Halimbawang Kahilingan

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)

Mga Kodigo ng Katayuan ng Tugon

204 Matagumpay na nabura ang snapshot
401 Hindi Awtorisado - Hindi wasto o nawawalang token ng pagpapatotoo
404 Hindi Natagpuan - Walang Snapshot

Snapshots vs Backups

Understanding when to use snapshots versus backups:

Mga Snapshot API

  • Layunin: Quick point-in-time recovery
  • Bilis: Faster to create and restore (3-15 min)
  • Kaso ng Paggamit: Before risky operations (updates, config changes)
  • Imbakan: Stored on same infrastructure
  • Limit: 5 snapshots per server
  • Pinakamahusay Para sa: Short-term rollback capability

Mga Backup API

  • Layunin: Long-term data protection
  • Bilis: Slower to create and restore (varies)
  • Kaso ng Paggamit: Regular automated data protection
  • Imbakan: Separate backup storage
  • Limit: 10 manual + automatic backups
  • Pinakamahusay Para sa: Disaster recovery and compliance

Best Practices