Skip to main content

Overview

Repository endpoints allow you to create, import, list, update, and delete Borg backup repositories.

List Repositories

Get all repositories with their metadata and status. Endpoint: GET /api/repositories/ Example Request:
Response:

Get Repository

Get details for a specific repository. Endpoint: GET /api/repositories/{repo_id} Example Request:

Create Repository

Initialize a new Borg repository. Endpoint: POST /api/repositories/ Admin Only: Yes
string
required
Unique name for the repository
string
required
Path to repository (local path or will be constructed for SSH)
string
default:"repokey"
Encryption mode: repokey, keyfile, repokey-blake2, keyfile-blake2, or none
string
Passphrase for encrypted repositories (required if encryption is not none)
string
default:"lz4"
Compression algorithm: lz4, zstd, zlib, or none
array
List of directories to back up (required for full mode)
array
List of exclude patterns (e.g., ["*.log", "*.tmp"])
integer
SSH connection ID for remote repositories
string
Path to borg binary on remote server (e.g., /usr/local/bin/borg)
string
default:"full"
Repository mode: full (backups + observability) or observe (read-only observability)
boolean
default:false
Use --bypass-lock for read-only access (observe mode only)
string
Custom command-line flags for borg create (e.g., "--stats --list")
integer
SSH connection ID for remote data source (pull-based backups)
string
Script to run before backup
string
Script to run after backup
integer
default:300
Pre-backup hook timeout in seconds
integer
default:300
Post-backup hook timeout in seconds
boolean
default:false
Continue backup if pre-hook fails
Example Request:
Response:

Import Repository

Import an existing Borg repository. Endpoint: POST /api/repositories/import Admin Only: Yes
string
required
Unique name for the repository
string
required
Path to existing repository
string
Passphrase if repository is encrypted
string
default:"lz4"
Compression for future backups
array
Directories to back up (required for full mode)
string
Content of borg keyfile for keyfile-based encryption
Example Request:

Update Repository

Update repository settings. Endpoint: PUT /api/repositories/{repo_id} Admin Only: Yes Example Request:

Delete Repository

Delete a repository from Borg UI (does not delete actual Borg repository). Endpoint: DELETE /api/repositories/{repo_id} Admin Only: Yes Example Request:

Keyfile Management

Upload Keyfile

Upload a keyfile for repositories using keyfile encryption. Endpoint: POST /api/repositories/{repo_id}/keyfile Admin Only: Yes Example Request:

Download Keyfile

Export and download the keyfile for a repository. Endpoint: GET /api/repositories/{repo_id}/keyfile Admin Only: Yes Example Request: