Account data (cubes, reports / published reports, workspaces) may be downloaded as an XML file in this way:
This XML file can be restored on self-hosted SeekTable instance with an active "System/users admin" subscription:
Keep record IDs, do not restore if IDs already exist:
use this option to restore only removed cubes/reports.Keep record IDs, overwrite existing records with same IDs: use this option to transfer/update account data between SeekTable instances.Generate new record IDs: use this option to 'clone' cubes with reports.With a backup/restore functionality it's easy to organize a typical "dev → staging → prod" development flow:
Reports deployment process can be fully automated with API calls described below.
For automated backups use this API endpoint:
{SeekTable_BaseUrl}/api/account/{account_id}/backupHeader: Authorization |
(required) | API key of the user with "admin" role + a login email of this user should be specified in SeekTable_ST__Api__AccountBackupAllowedForEmail
app setting.
It is strongly recommended to create a dedicated "admin" user (without cubes/reports) and use its API key ONLY for backup/restore API calls.
|
account_id |
(required) | ID of the account to backup. |
format |
(optional) | Determines backup format: xml (a single XML data file, default) or zip (an archive with multiple configuration xml/json files).
Use XML format for snapshots. A multi-file backup (zip archive) is better for Git storage and AI-assisted setup. |
workspaces |
(optional) | Determines whether to include workspaces in the backup; if not, should be 0 or false (true by default). |
dashboards |
(optional) |
Determines whether to include dashboards in the backup; if not, should be 0 or false (true by default).
This option makes sense only if installation has an active subscription for dashboards.
|
team |
(optional) |
Determines whether to include "Team sharing" settings (team members/groups/access rules); if not, should be 0 or false (true by default).
This option makes sense only if the user has a "Team sharing" capability.
|
| Response | HTTP/200 (OK) + backup data in the response body. |
curl -k -H "Authorization: SEEKTABLE_ADMIN_ACCOUNT_API_KEY" SEEKTABLE_BASE_URL/api/account/ACCOUNT_ID/backup -o "seektable_backup.xml"
For automated restore use this API endpoint:
{SeekTable_BaseUrl}/api/account/{account_id}/restore?mode={mode}&workspaces=1&dashboards=1&team=1Header: Authorization |
(required) | API key of the user with "admin" role + a login email of this user should be specified in SeekTable_ST__Api__AccountRestoreAllowedForEmail
app setting.
It is strongly recommended to create a dedicated "admin" user (without cubes/reports) and use its API key ONLY for backup/restore API calls.
|
account_id |
(required) | ID of the account where cubes/reports are restored. |
| Request Body | (required) | Backup data to restore: either a single XML or zipped multi-file configs (in this case Content-Type: application/zip HTTP header should be specified).
A ZIP archive may contain a partial backup, such as specific cubes or reports.
|
mode |
(optional) | restore mode:
|
workspaces |
(optional) | Determines whether to restore workspaces (if they are present in the backup); if yes, should be 1 or true (false by default). |
dashboards |
(optional) | Determines whether to restore dashboards (if they are present in the backup). If yes, should be 1 or true (false by default).
This option makes sense only if installation has an active subscription for dashboards. |
team |
(optional) |
Determines whether to restore "Team sharing" settings: team members/groups/access rules (if they are present in the backup). If yes, should be 1 or true (false by default).
This option makes sense only if the user has a "Team sharing" capability. |
| Response | HTTP/200 (OK) if restore operation executed successfully. |
curl -k -H "Content-Type: text/xml" -H "Authorization: SEEKTABLE_ADMIN_ACCOUNT_API_KEY" --data-binary "@seektable_backup_YYYYMMDD.xml" SEEKTABLE_BASE_URL/api/account/ACCOUNT_ID/restore?mode=allowUpdate&workspaces=1&dashboards=1&team=1
To backup self-hosted SeekTable installation it is enough to make a copy of files in the docker volumes db-volume and csv-files-volume + docker-compose configuration files.