Client — Backups
GET /api/v1/client/backups
List backups (client)
Return all backups owned by the authenticated client account.
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_list_dict_str__Any___ |
Successful Response |
Response example (200):
{
"data": [
{}
],
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups
POST /api/v1/client/backups
Create backup (client)
Create a new backup for the authenticated client account. Refused 409 UPDATE_IN_PROGRESS while the server is installing an update.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
include_databases |
boolean | no | default True |
include_emails |
boolean | no | default True |
include_files |
boolean | no | default True |
remote_destination_id |
string | no | — |
Request body example:
{
"include_databases": true,
"include_emails": true,
"include_files": true,
"remote_destination_id": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups
POST /api/v1/client/backups/google-drive/auth-url
Google Drive OAuth URL (client)
Generate a Google OAuth2 authorization URL for connecting Google Drive as a remote backup destination.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
redirect_uri |
string | yes | — |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"redirect_uri": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/google-drive/auth-url
GET /api/v1/client/backups/google-drive/callback
Client Google Drive Callback
Google OAuth2 callback — sends code back to opener via postMessage.
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
— | Successful Response |
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/google-drive/callback
POST /api/v1/client/backups/google-drive/exchange
Google Drive OAuth code exchange (client)
Exchange a Google authorization code for refresh + access tokens.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
code |
string | yes | — |
redirect_uri |
string | no | default `` |
state |
string | no | default `` |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"code": "string",
"redirect_uri": "",
"state": ""
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/google-drive/exchange
POST /api/v1/client/backups/onedrive/auth-url
OneDrive OAuth URL (client)
Generate a Microsoft OAuth2 authorization URL for connecting OneDrive as a remote backup destination.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
redirect_uri |
string | yes | — |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"redirect_uri": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/onedrive/auth-url
GET /api/v1/client/backups/onedrive/callback
Client Onedrive Callback
OneDrive OAuth2 callback — sends code back to opener via postMessage.
Query parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
code |
string | no | — |
state |
string | no | — |
error |
string | no | — |
error_description |
string | no | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
— | Successful Response |
422 |
HTTPValidationError |
Validation Error |
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/onedrive/callback
POST /api/v1/client/backups/onedrive/exchange
OneDrive OAuth code exchange (client)
Exchange a Microsoft authorization code for refresh and access tokens.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
code |
string | yes | — |
redirect_uri |
string | no | default `` |
state |
string | no | default `` |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"code": "string",
"redirect_uri": "",
"state": ""
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/onedrive/exchange
GET /api/v1/client/backups/remote-destinations
List remote backup destinations (client)
Return all per-account remote backup destinations owned by the authenticated client.
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_list_dict_str__Any___ |
Successful Response |
Response example (200):
{
"data": [
{}
],
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/remote-destinations
POST /api/v1/client/backups/remote-destinations
Add remote backup destination (client)
Add a new per-account remote backup destination (FTP, SFTP, Google Drive, Bunny Storage, Yandex Disk, OneDrive). Secrets in the answer are masked.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
api_key |
string | no | — |
base_path |
string | no | — |
credentials_file |
string | no | — |
credentials_json |
string | no | — |
dest_id |
string | no | — |
folder_id |
string | no | — |
google_client_id |
string | no | — |
google_client_secret |
string | no | — |
google_email |
string | no | — |
google_refresh_token |
string | no | — |
host |
string | no | — |
name |
string | yes | minLength=1; maxLength=100 |
oauth_token |
string | no | — |
onedrive_client_id |
string | no | — |
onedrive_client_secret |
string | no | — |
onedrive_email |
string | no | — |
onedrive_folder_path |
string | no | — |
onedrive_refresh_token |
string | no | — |
password |
string | no | — |
port |
integer | no | — |
region |
string | no | — |
remote_dir |
string | no | — |
reset_server_identity |
boolean | no | — |
storage_zone |
string | no | — |
tls_accept_unverified |
boolean | no | — |
type |
string | yes | enum: ftp, sftp, google_drive, bunny_storage, yandex_disk, onedrive |
use_sftp |
boolean | no | — |
username |
string | no | — |
validated |
boolean | no | — |
yandex_client_id |
string | no | — |
yandex_client_secret |
string | no | — |
yandex_login |
string | no | — |
yandex_refresh_token |
string | no | — |
Request body example:
{
"api_key": "string",
"base_path": "string",
"credentials_file": "string",
"credentials_json": "string",
"dest_id": "string",
"folder_id": "string",
"google_client_id": "string",
"google_client_secret": "string",
"google_email": "string",
"google_refresh_token": "string",
"host": "string",
"name": "string",
"oauth_token": "string",
"onedrive_client_id": "string",
"onedrive_client_secret": "string",
"onedrive_email": "string",
"onedrive_folder_path": "string",
"onedrive_refresh_token": "string",
"password": "string",
"port": 1.0,
"region": "string",
"remote_dir": "string",
"reset_server_identity": false,
"storage_zone": "string",
"tls_accept_unverified": false,
"type": "ftp",
"use_sftp": false,
"username": "string",
"validated": false,
"yandex_client_id": "string",
"yandex_client_secret": "string",
"yandex_login": "string",
"yandex_refresh_token": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/remote-destinations
POST /api/v1/client/backups/remote-destinations/test
Test remote destination before save (client)
Test a remote backup destination configuration before persisting it (resolves masked credentials when editing).
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
api_key |
string | no | — |
base_path |
string | no | — |
credentials_file |
string | no | — |
credentials_json |
string | no | — |
dest_id |
string | no | — |
folder_id |
string | no | — |
google_client_id |
string | no | — |
google_client_secret |
string | no | — |
google_email |
string | no | — |
google_refresh_token |
string | no | — |
host |
string | no | — |
name |
string | yes | minLength=1; maxLength=100 |
oauth_token |
string | no | — |
onedrive_client_id |
string | no | — |
onedrive_client_secret |
string | no | — |
onedrive_email |
string | no | — |
onedrive_folder_path |
string | no | — |
onedrive_refresh_token |
string | no | — |
password |
string | no | — |
port |
integer | no | — |
region |
string | no | — |
remote_dir |
string | no | — |
reset_server_identity |
boolean | no | — |
storage_zone |
string | no | — |
tls_accept_unverified |
boolean | no | — |
type |
string | yes | enum: ftp, sftp, google_drive, bunny_storage, yandex_disk, onedrive |
use_sftp |
boolean | no | — |
username |
string | no | — |
validated |
boolean | no | — |
yandex_client_id |
string | no | — |
yandex_client_secret |
string | no | — |
yandex_login |
string | no | — |
yandex_refresh_token |
string | no | — |
Request body example:
{
"api_key": "string",
"base_path": "string",
"credentials_file": "string",
"credentials_json": "string",
"dest_id": "string",
"folder_id": "string",
"google_client_id": "string",
"google_client_secret": "string",
"google_email": "string",
"google_refresh_token": "string",
"host": "string",
"name": "string",
"oauth_token": "string",
"onedrive_client_id": "string",
"onedrive_client_secret": "string",
"onedrive_email": "string",
"onedrive_folder_path": "string",
"onedrive_refresh_token": "string",
"password": "string",
"port": 1.0,
"region": "string",
"remote_dir": "string",
"reset_server_identity": false,
"storage_zone": "string",
"tls_accept_unverified": false,
"type": "ftp",
"use_sftp": false,
"username": "string",
"validated": false,
"yandex_client_id": "string",
"yandex_client_secret": "string",
"yandex_login": "string",
"yandex_refresh_token": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/remote-destinations/test
DELETE /api/v1/client/backups/remote-destinations/{dest_id}
Remove remote backup destination (client)
Remove a per-account remote backup destination owned by the authenticated client.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
dest_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
MessageResponse |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"message": "string",
"status": "success"
}
cURL example:
curl -X DELETE \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/remote-destinations/{dest_id}
PUT /api/v1/client/backups/remote-destinations/{dest_id}
Update remote backup destination (client)
Update a per-account remote backup destination owned by the authenticated client.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
dest_id |
string | yes | — |
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
api_key |
string | no | — |
base_path |
string | no | — |
credentials_file |
string | no | — |
credentials_json |
string | no | — |
dest_id |
string | no | — |
folder_id |
string | no | — |
google_client_id |
string | no | — |
google_client_secret |
string | no | — |
google_email |
string | no | — |
google_refresh_token |
string | no | — |
host |
string | no | — |
name |
string | yes | minLength=1; maxLength=100 |
oauth_token |
string | no | — |
onedrive_client_id |
string | no | — |
onedrive_client_secret |
string | no | — |
onedrive_email |
string | no | — |
onedrive_folder_path |
string | no | — |
onedrive_refresh_token |
string | no | — |
password |
string | no | — |
port |
integer | no | — |
region |
string | no | — |
remote_dir |
string | no | — |
reset_server_identity |
boolean | no | — |
storage_zone |
string | no | — |
tls_accept_unverified |
boolean | no | — |
type |
string | yes | enum: ftp, sftp, google_drive, bunny_storage, yandex_disk, onedrive |
use_sftp |
boolean | no | — |
username |
string | no | — |
validated |
boolean | no | — |
yandex_client_id |
string | no | — |
yandex_client_secret |
string | no | — |
yandex_login |
string | no | — |
yandex_refresh_token |
string | no | — |
Request body example:
{
"api_key": "string",
"base_path": "string",
"credentials_file": "string",
"credentials_json": "string",
"dest_id": "string",
"folder_id": "string",
"google_client_id": "string",
"google_client_secret": "string",
"google_email": "string",
"google_refresh_token": "string",
"host": "string",
"name": "string",
"oauth_token": "string",
"onedrive_client_id": "string",
"onedrive_client_secret": "string",
"onedrive_email": "string",
"onedrive_folder_path": "string",
"onedrive_refresh_token": "string",
"password": "string",
"port": 1.0,
"region": "string",
"remote_dir": "string",
"reset_server_identity": false,
"storage_zone": "string",
"tls_accept_unverified": false,
"type": "ftp",
"use_sftp": false,
"username": "string",
"validated": false,
"yandex_client_id": "string",
"yandex_client_secret": "string",
"yandex_login": "string",
"yandex_refresh_token": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X PUT \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/remote-destinations/{dest_id}
POST /api/v1/client/backups/remote-destinations/{dest_id}/test
Test remote backup destination (client)
Test connectivity to an existing per-account remote backup destination.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
dest_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/remote-destinations/{dest_id}/test
PATCH /api/v1/client/backups/remote-destinations/{dest_id}/toggle
Toggle remote backup destination (client)
Enable or disable a per-account remote backup destination.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
dest_id |
string | yes | — |
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
enabled |
boolean | no | default True |
Request body example:
{
"enabled": true
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X PATCH \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/remote-destinations/{dest_id}/toggle
GET /api/v1/client/backups/schedules
List backup schedules (client)
Return all backup schedules for the authenticated client account.
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_list_dict_str__Any___ |
Successful Response |
Response example (200):
{
"data": [
{}
],
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/schedules
POST /api/v1/client/backups/schedules
Create backup schedule (client)
Create a new backup schedule for the authenticated client account.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
day_of_month |
integer | no | — |
day_of_week |
integer | no | — |
enabled |
boolean | no | default True |
frequency |
string | yes | enum: daily, weekly, monthly |
include_databases |
boolean | no | default True |
include_emails |
boolean | no | default True |
include_files |
boolean | no | default True |
remote_destination_id |
string | no | — |
retention_count |
integer | no | default 5; minimum=0.0; maximum=100.0 |
time |
string | yes | pattern=^([01]\d|2[0-3]):[0-5]\d$ |
Request body example:
{
"day_of_month": 1.0,
"day_of_week": 0,
"enabled": true,
"frequency": "daily",
"include_databases": true,
"include_emails": true,
"include_files": true,
"remote_destination_id": "string",
"retention_count": 5,
"time": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/schedules
DELETE /api/v1/client/backups/schedules/{schedule_id}
Delete backup schedule (client)
Delete a backup schedule owned by the authenticated client account.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
schedule_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
MessageResponse |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"message": "string",
"status": "success"
}
cURL example:
curl -X DELETE \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/schedules/{schedule_id}
PUT /api/v1/client/backups/schedules/{schedule_id}
Update backup schedule (client)
Update a backup schedule owned by the authenticated client account.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
schedule_id |
string | yes | — |
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
day_of_month |
integer | no | — |
day_of_week |
integer | no | — |
enabled |
boolean | no | — |
frequency |
string | no | — |
include_databases |
boolean | no | — |
include_emails |
boolean | no | — |
include_files |
boolean | no | — |
remote_destination_id |
string | no | — |
retention_count |
integer | no | — |
time |
string | no | — |
Request body example:
{
"day_of_month": 1.0,
"day_of_week": 0,
"enabled": false,
"frequency": "daily",
"include_databases": false,
"include_emails": false,
"include_files": false,
"remote_destination_id": "string",
"retention_count": 0,
"time": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X PUT \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/schedules/{schedule_id}
POST /api/v1/client/backups/yandex-disk/auth-url
Yandex Disk OAuth URL (client)
Generate a Yandex OAuth authorization URL for connecting Yandex Disk as a remote backup destination.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
redirect_uri |
string | yes | — |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"redirect_uri": "string"
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/yandex-disk/auth-url
GET /api/v1/client/backups/yandex-disk/callback
Client Yandex Disk Callback
Yandex OAuth2 callback — sends code back to opener via postMessage.
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
— | Successful Response |
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/yandex-disk/callback
POST /api/v1/client/backups/yandex-disk/exchange
Yandex Disk OAuth code exchange (client)
Exchange a Yandex authorization code for OAuth access and refresh tokens.
Body fields:
| Field | Type | Required | Notes |
|---|---|---|---|
client_id |
string | yes | — |
client_secret |
string | yes | — |
code |
string | yes | — |
redirect_uri |
string | no | default `` |
state |
string | no | default `` |
Request body example:
{
"client_id": "string",
"client_secret": "string",
"code": "string",
"redirect_uri": "",
"state": ""
}
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
ApiSuccess_dict_str__Any__ |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"data": {},
"message": "",
"status": "success",
"warnings": [
"string"
]
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
-H "Content-Type: application/json" \
-d @body.json \
https://your-server:2000/api/v1/client/backups/yandex-disk/exchange
DELETE /api/v1/client/backups/{backup_id}
Delete backup (client)
Delete a backup owned by the authenticated client account.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
backup_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
MessageResponse |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"message": "string",
"status": "success"
}
cURL example:
curl -X DELETE \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/{backup_id}
GET /api/v1/client/backups/{backup_id}/download
Client Download Backup
Download a backup for the authenticated client account.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
backup_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
— | Successful Response |
422 |
HTTPValidationError |
Validation Error |
cURL example:
curl -X GET \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/{backup_id}/download
POST /api/v1/client/backups/{backup_id}/restore
Restore backup (client)
Restore a backup owned by the authenticated client account. Refused 409 UPDATE_IN_PROGRESS while the server is installing an update.
Path parameters:
| Name | Type | Required | Notes |
|---|---|---|---|
backup_id |
string | yes | — |
Responses:
| Status | Schema | Description |
|---|---|---|
200 |
MessageResponse |
Successful Response |
422 |
HTTPValidationError |
Validation Error |
Response example (200):
{
"message": "string",
"status": "success"
}
cURL example:
curl -X POST \
-H "X-WHost-Key: $WHOST_API_KEY" \
-H "X-WHost-Timestamp: $(date +%s)" \
-H "X-WHost-Nonce: $(openssl rand -hex 16)" \
-H "X-WHost-Signature: $(compute_hmac)" \
https://your-server:2000/api/v1/client/backups/{backup_id}/restore
Our support team is here around the clock for anything you can't find above.