Get and manage scheduled backups for your VPS

View scheduled backups for a specific VPS. The endpoint also returns a `job_id` to track backup operations via `GET /api/jobs/{jobId}`.

VPS Services Backups

Context

Where to get IDs / values

Workflow links

Path Parameters

vmid integer · min: 1 required Example: 10000

Unique vmid identifier

Headers

Accept Example
Content-Type Example

Responses

200
data object required
data.history array<object> required · Example: [{"id":136070,"client_id":"30000","account_id":"20000","vm_id":"10000","backup_type":"m...

Recent backup history entries (most recent first). For manual backups, schedule_id is null.

data.history[].account_id string required · Example: 20000
data.history[].backup_type string · enum required · Example: manual

Backup type (manual or scheduled).

manual
scheduled
data.history[].client_id string required · Example: 30000
data.history[].created_at string required · Example: 2026-02-10T00:00:00.000Z

Created timestamp (ISO 8601, UTC).

data.history[].deleted_at string · nullable required · Example: 2026-02-10T00:00:00.000Z

Deletion timestamp (ISO 8601, UTC). Null if still active.

data.history[].error_message string · nullable required · Example: null

Error message if the backup failed. Null when not applicable.

data.history[].id integer required · Example: 136070
data.history[].job_id string required · Example: backup-17910-1769734006476

Background job identifier for the backup operation.

data.history[].notes string · nullable required · Example: Example note

Nullable: may be null when not applicable.

data.history[].schedule_id integer · nullable required · Example: 2075

Schedule ID for scheduled backups. Null for manual backups.

data.history[].size string · nullable required · Example: 214748366059

Backup size in bytes (string to avoid integer overflow).

data.history[].status string · enum required · Example: active

Backup status. 'active' means present/available; 'deleted' means removed; other values may indicate failures.

active
deleted
pending
data.history[].vm_id string required · Example: 10000
data.history[].volid string required · Example: pbs-offsite-10g:backup/vm/10877/2026-02-10T00:00:00.000Z

Backup identifier in Proxmox Backup Server (volid). Use this to delete/restore specific backups.

data.limits object required

Convenience summary of limits and current usage (computed server-side).

data.limits.availableScheduledSlots integer required · Example: 0

How many additional scheduled backups can run right now.

data.limits.currentSchedules integer required · Example: 1

Number of schedules currently configured for this VM.

data.limits.manualBackupsActive integer required · Example: 7

Number of currently active manual backups.

data.limits.maxRetention integer required · Example: 7

Maximum retention count allowed (equals totalBackups).

data.limits.maxSchedules integer required · Example: 1

Maximum number of schedules allowed for this VM.

data.limits.scheduledBackupsActive integer required · Example: 0

Number of currently active scheduled backups.

data.limits.totalBackups integer required · Example: 7

Total backups allowed for this VM.

data.schedules array<object> required · Example: [{"id":2464,"client_id":"30000","account_id":"20000","vm_id":"10000","enabled":true,"sc...

List of backup schedules configured for this VM. Currently limited to 1 schedule per VM.

data.schedules[].account_id string required · Example: 20000
data.schedules[].backup_mode string required · Example: snapshot

Backup mode (currently uses snapshot mode).

data.schedules[].client_id string required · Example: 30000
data.schedules[].compress string required · Example: zstd

Compression algorithm (currently zstd).

data.schedules[].created_at string required · Example: 2026-02-10T00:00:00.000Z

Created timestamp (ISO 8601, UTC).

data.schedules[].day_of_month integer · nullable required · Example: null

Only used for monthly schedules. 1-31. Null/omitted for daily/weekly schedules.

data.schedules[].day_of_week integer · nullable required · Example: 5

Only used for weekly schedules. 0=Sunday … 6=Saturday. Null/omitted for daily/monthly schedules.

data.schedules[].enabled boolean required · Example: true

Whether the schedule is enabled.

data.schedules[].hour integer required · Example: 5

Hour of day (0-23) when scheduled backups run.

data.schedules[].id integer required · Example: 2464
data.schedules[].last_run string required · Example: 2026-02-10T00:00:00.000Z

Timestamp when the schedule last ran (ISO 8601, UTC). Null if it hasn't run yet.

data.schedules[].minute integer required · Example: 23

Minute of hour (0-59) when scheduled backups run.

data.schedules[].next_run string required · Example: 2026-02-10T00:00:00.000Z

Next scheduled run time (ISO 8601, UTC).

data.schedules[].notes string required · Example: Example note

Optional schedule notes/label.

data.schedules[].retention_count integer required · Example: 7

How many backups to retain for this schedule (cannot exceed your purchased backup limit).

data.schedules[].schedule_days string required · Example: 5

Display days value. For weekly: day_of_week as string (0-6). For monthly: day_of_month as string (1-31). For daily: empty string.

data.schedules[].schedule_name string required · Example: Auto weekly backup schedule

Display name for the schedule (usually based on notes).

data.schedules[].schedule_time string required · Example: 05:23

Display time in HH:MM (24h).

data.schedules[].schedule_type string · enum required · Example: weekly

Schedule type. One of: daily, weekly, monthly.

daily
weekly
monthly
data.schedules[].updated_at string required · Example: 2026-02-10T00:00:00.000Z

Last updated timestamp (ISO 8601, UTC).

data.schedules[].vm_id string required · Example: 10000
data.settings object required

Backup settings and current usage counters for the VM (limits are derived from purchased backup capacity).

data.settings.account_id string required · Example: 20000
data.settings.auto_delete_oldest boolean required · Example: true

If true, oldest backups are automatically deleted when the limit is reached.

data.settings.available_scheduled_slots integer required · Example: 0

How many additional scheduled backups can run without exceeding max_total_backups.

data.settings.client_id string required · Example: 30000
data.settings.created_at string required · Example: 2026-02-10T00:00:00.000Z
data.settings.id integer required · Example: 2312
data.settings.manual_backups_active integer required · Example: 7

Number of currently active manual backups.

data.settings.max_manual_backups integer required · Example: 7

Maximum manual backups allowed (derived from usage/limits).

data.settings.max_scheduled_backups integer required · Example: 0

Maximum scheduled backups allowed (derived from remaining slots).

data.settings.max_total_backups integer required · Example: 7

Total backups allowed for this VM (from your purchased backup limit).

data.settings.scheduled_backups_active integer required · Example: 0

Number of currently active scheduled backups.

data.settings.total_backups_active integer required · Example: 7

Total number of currently active backups (manual + scheduled).

data.settings.updated_at string required · Example: 2026-02-10T00:00:00.000Z
data.settings.vm_id string required · Example: 10000
data.success boolean required · Example: true

True for successful responses.

requestId string required · Example: 2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba

Unique request identifier (UUID).

success boolean required · Example: true

True for successful responses.

timestamp string required · Example: 2026-02-10T00:00:00.000Z

ISO 8601 timestamp (UTC).

400 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

401 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

403 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

404 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

429 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

500 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

GET https://cloud.hostup.se/api/vm/{vmid}/backup-schedules
For AI assistants
cURL
curl -X GET "https://cloud.hostup.se/api/vm/10000/backup-schedules" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Response
{
  "success": true,
  "timestamp": "2026-02-10T00:00:00.000Z",
  "requestId": "2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba",
  "data": {
    "success": true,
    "schedules": [
      {
        "id": 2464,
        "client_id": "30000",
        "account_id": "20000",
        "vm_id": "10000",
        "enabled": true,
        "schedule_type": "weekly",
        "hour": 5,
        "minute": 23,
        "day_of_week": 5,
        "day_of_month": null,
        "retention_count": 7,
        "backup_mode": "snapshot",
        "compress": "zstd",
        "notes": "Example note",
        "last_run": "2026-02-10T00:00:00.000Z",
        "next_run": "2026-02-10T00:00:00.000Z",
        "created_at": "2026-02-10T00:00:00.000Z",
        "updated_at": "2026-02-10T00:00:00.000Z",
        "schedule_name": "Auto weekly backup schedule",
        "schedule_time": "05:23",
        "schedule_days": "5"
      }
    ],
    "settings": {
      "id": 2312,
      "client_id": "30000",
      "account_id": "20000",
      "vm_id": "10000",
      "max_total_backups": 7,
      "max_manual_backups": 7,
      "max_scheduled_backups": 0,
      "auto_delete_oldest": true,
      "created_at": "2026-02-10T00:00:00.000Z",
      "updated_at": "2026-02-10T00:00:00.000Z",
      "manual_backups_active": 7,
      "scheduled_backups_active": 0,
      "total_backups_active": 7,
      "available_scheduled_slots": 0
    },
    "history": [
      {
        "id": 136070,
        "client_id": "30000",
        "account_id": "20000",
        "vm_id": "10000",
        "backup_type": "manual",
        "schedule_id": null,
        "volid": "pbs-offsite-10g:backup/vm/10877/2026-02-10T00:00:00.000Z",
        "size": "214748366059",
        "notes": "Example note",
        "status": "active",
        "created_at": "2026-02-10T00:00:00.000Z",
        "deleted_at": null,
        "job_id": "backup-17910-1769734006476",
        "error_message": null
      },
      {
        "id": 135007,
        "client_id": "30000",
        "account_id": "20000",
        "vm_id": "10000",
        "backup_type": "manual",
        "schedule_id": null,
        "volid": "pbs-offsite-10g:backup/vm/10877/2026-02-10T00:00:00.000Z",
        "size": "214748366060",
        "notes": "Example note",
        "status": "active",
        "created_at": "2026-02-10T00:00:00.000Z",
        "deleted_at": null,
        "job_id": "backup-17910-1769639733370",
        "error_message": null
      },
      {
        "_truncated": "... and 18 more items"
      }
    ],
    "limits": {
      "maxSchedules": 1,
      "totalBackups": 7,
      "maxRetention": 7,
      "currentSchedules": 1,
      "manualBackupsActive": 7,
      "scheduledBackupsActive": 0,
      "availableScheduledSlots": 0
    }
  }
}