TimescaleDB Enterprise API
Management API for the TimescaleDB Enterprise Console: it registers bare-metal/VM servers into the WireGuard mesh, deploys PostgreSQL + TimescaleDB database services onto them via Ansible, and manages backups, restores, and health monitoring.
Authentication
All endpoints except login, logout, /auth/methods, /info, OIDC, and the
enrollment script require a session cookie (tse_session). Obtain one with
POST /api/v1/login using the console auth token (TSE_AUTH_TOKEN), with
POST /api/v1/login/password as a local user, or via OIDC when configured. The
cookie is HttpOnly and lasts 24 hours.
Try requests
In the API reference of your console (Help > API reference), Try it sends each request to that console, with your session. The public docs site has no console, so it shows no Try it panel: open the API reference in your console to try requests.
Roles
Each session has a role: none, viewer, operator or admin. Each operation needs a lowest role, and a session with a lower role gets 403. The token login is always admin.
A local user can also have a grant on a database service: viewer or operator. For an operation on that service, the role is the higher of the default role and the grant. A user with the default role none sees only the services of the grants: lists show only these services, and the other operations answer 403.
Errors
Errors are JSON with a stable shape:
{“error”: “human-readable message”, “details”: [“optional”, “specifics”]}
Validation failures return 422 with per-field messages in details. The
restore endpoint’s 422 additionally carries nearest_consistent_point when a
requested recovery time falls outside provable backup coverage.
Asynchronous operations
Mutating infrastructure (deploy, restore, backup trigger, config applies,
stanza deletes) returns 202 Accepted immediately and runs as a tracked
workflow. Follow progress via the workflows endpoints; raw Ansible output
streams from /workflows/{id}/stdout and a parsed NDJSON event stream from
/database-services/{id}/logs.
Spec
This page is generated from the running binary: /api/v1/openapi.json and
/api/v1/openapi.yaml always match the deployed code.
https://console.example.comsystem
Console feature flags, build version, SSH public key, and mesh overlay status.
- GETGet the console clock
/api/v1/console/clock - GETGet the time sync state
/api/v1/console/time-sync - GETGet console feature flags
/api/v1/info - GETGet the mesh status
/api/v1/mesh/status - GETList loaded packages
/api/v1/packs - GETList release packages
/api/v1/packs/available - GETPreview server packages
/api/v1/packs/available/{name}/summary - POSTDownload server packages
/api/v1/packs/download - POSTRemove unused packages
/api/v1/packs/remove-unused - POSTVerify server packages
/api/v1/packs/rescan - POSTUpload server packages
/api/v1/packs/upload - DELETERemove server packages
/api/v1/packs/{name} - GETShow package contents
/api/v1/packs/{name}/summary - GETList server components
/api/v1/server-components - GETGet build version
/api/v1/version - POSTCheck for a newer release
/api/v1/version/check
auth
Login (token, local user, OIDC), logout, the own password change, session identity and role, and the reverse-proxy forward_auth check.
- GETCheck the session
/api/v1/auth/check - GETGet your session identity
/api/v1/auth/me - GETList login methods
/api/v1/auth/methods - POSTChange your password
/api/v1/auth/password - GETGet your two-factor state
/api/v1/auth/two-factor - POSTTurn off your two-factor
/api/v1/auth/two-factor/disable - POSTStart TOTP enrolment
/api/v1/auth/two-factor/enrolment - POSTConfirm TOTP enrolment
/api/v1/auth/two-factor/enrolment/confirm - POSTReplace your recovery codes
/api/v1/auth/two-factor/recovery-codes - POSTGive the second factor
/api/v1/auth/two-factor/verify - POSTLog in with the auth token
/api/v1/login - POSTLog in as a local user
/api/v1/login/password - POSTLog out
/api/v1/logout
servers
Server registration (mesh enrollment), specs, SSH checks, and per-server backup operations.
- GETGet the enrollment script
/api/v1/enroll/{token} - GETDownload the mesh agent
/api/v1/enroll/{token}/tailscale/{arch}/{binary} - GETList servers
/api/v1/servers - POSTRegister a server
/api/v1/servers - GETGet demo server capacity
/api/v1/servers/demo-capacity - GETList free servers
/api/v1/servers/free - DELETEDelete a server
/api/v1/servers/{id} - PATCHRename a server
/api/v1/servers/{id} - POSTTrigger a server backup
/api/v1/servers/{id}/backup - GETGet on-disk backup state
/api/v1/servers/{id}/backup-state - GETList backups on a server
/api/v1/servers/{id}/backups - GETStream a demo console
/api/v1/servers/{id}/demo-console - POSTMake a new enroll command
/api/v1/servers/{id}/enroll-command - GETGet server software and state
/api/v1/servers/{id}/facts - POSTRetry a server cleanup
/api/v1/servers/{id}/retry-cleanup - GETGet server hardware specs
/api/v1/servers/{id}/specs - POSTProbe server hardware specs
/api/v1/servers/{id}/specs - GETList stanzas on a server
/api/v1/servers/{id}/stanzas - POSTTest SSH to a server
/api/v1/servers/{id}/test-ssh
stanzas
pgBackRest stanza inspection and lifecycle: orphaned stanzas, adoption, repo deletion.
- POSTAdopt an untracked stanza
/api/v1/servers/{serverId}/stanzas/{stanzaName}/adopt - POSTDelete an untracked stanza
/api/v1/servers/{serverId}/stanzas/{stanzaName}/delete - GETGet a stanza by name
/api/v1/stanzas/by-name/{name} - GETList orphaned stanzas
/api/v1/stanzas/orphaned - POSTDelete a stanza's repo data
/api/v1/stanzas/{stanzaId}/repos/{repoId}/delete
database-services
PostgreSQL + TimescaleDB services: CRUD, deploy, backups, restore, health probes, Patroni actions, and logs.
- GETList database services
/api/v1/database-services - POSTCreate a database service
/api/v1/database-services - POSTRun pre-create checks
/api/v1/database-services/preflight - DELETEDelete a database service
/api/v1/database-services/{id} - GETGet a database service
/api/v1/database-services/{id} - PATCHUpdate a database service
/api/v1/database-services/{id} - GETList users with access
/api/v1/database-services/{id}/access - POSTApply the backup config
/api/v1/database-services/{id}/apply-backup-config - POSTApply the exporters config
/api/v1/database-services/{id}/apply-exporters-config - POSTApply the license caps
/api/v1/database-services/{id}/apply-license-caps - POSTTrigger a pgbackrest backup
/api/v1/database-services/{id}/backup - GETList config files
/api/v1/database-services/{id}/config-files - POSTCheck config file drift
/api/v1/database-services/{id}/config-files/check - GETGet a config file version
/api/v1/database-services/{id}/config-files/{snapshot} - POSTWrite a debug bundle
/api/v1/database-services/{id}/debug-bundle - POSTDeploy a database service
/api/v1/database-services/{id}/deploy - DELETEReturn to read-write
/api/v1/database-services/{id}/emergency-space - GETGet emergency space state
/api/v1/database-services/{id}/emergency-space - POSTFree emergency space
/api/v1/database-services/{id}/emergency-space - POSTRecreate balloon files
/api/v1/database-services/{id}/emergency-space/recreate - POSTCreate loaded extensions
/api/v1/database-services/{id}/extensions/create - GETList live extensions
/api/v1/database-services/{id}/extensions/live - POSTRestart for new extensions
/api/v1/database-services/{id}/extensions/restart - GETList extension dependents
/api/v1/database-services/{id}/extensions/{name}/dependents - POSTDrop an extension
/api/v1/database-services/{id}/extensions/{name}/drop - GETGet the license grant
/api/v1/database-services/{id}/grant - GETGet service health
/api/v1/database-services/{id}/health - GETGet etcd health
/api/v1/database-services/{id}/health/etcd - GETGet HAProxy health
/api/v1/database-services/{id}/health/haproxy - GETGet Patroni health
/api/v1/database-services/{id}/health/patroni - GETGet pgBackRest health
/api/v1/database-services/{id}/health/pgbackrest - GETGet PgBouncer health
/api/v1/database-services/{id}/health/pgbouncer - GETGet balloon file health
/api/v1/database-services/{id}/health/reserve - GETGet PostgreSQL info
/api/v1/database-services/{id}/info/postgresql - GETGet observed versions
/api/v1/database-services/{id}/info/versions - POSTDismiss LAN address changes
/api/v1/database-services/{id}/lan-address-changes/dismiss - POSTChange a service's license
/api/v1/database-services/{id}/license - GETStream the workflow log
/api/v1/database-services/{id}/logs - GETGet the major upgrade
/api/v1/database-services/{id}/major-upgrade - POSTRun a major upgrade
/api/v1/database-services/{id}/major-upgrade - POSTCheck a major upgrade
/api/v1/database-services/{id}/major-upgrade/check - POSTClean up a major upgrade
/api/v1/database-services/{id}/major-upgrade/cleanup - POSTRoll back a major upgrade
/api/v1/database-services/{id}/major-upgrade/rollback - POSTUpgrade the backup stanza
/api/v1/database-services/{id}/major-upgrade/stanza - POSTFail over to a node
/api/v1/database-services/{id}/patroni/failover - POSTRestart Patroni on a node
/api/v1/database-services/{id}/patroni/restart - POSTRolling-restart the cluster
/api/v1/database-services/{id}/patroni/rolling-restart - POSTSwitch over to a node
/api/v1/database-services/{id}/patroni/switchover - POSTRun pre-deploy checks
/api/v1/database-services/{id}/preflight - POSTRemove a database service
/api/v1/database-services/{id}/remove - POSTRestore a database service
/api/v1/database-services/{id}/restore - GETFetch logs from a server
/api/v1/database-services/{id}/servers/{serverId}/logs - POSTRebuild a replaced member
/api/v1/database-services/{id}/servers/{server_id}/rebuild - POSTRebuild a replica
/api/v1/database-services/{id}/servers/{server_id}/rebuild-replica - GETGet live settings
/api/v1/database-services/{id}/settings - POSTApply settings changes
/api/v1/database-services/{id}/settings/apply - POSTDiscard pending settings
/api/v1/database-services/{id}/settings/discard - POSTReview settings changes
/api/v1/database-services/{id}/settings/plan - POSTRestart for new settings
/api/v1/database-services/{id}/settings/restart - GETGet overrides as YAML
/api/v1/database-services/{id}/settings/yaml - POSTFill a member slot
/api/v1/database-services/{id}/slots/{member_name}/fill - POSTRelease a member slot
/api/v1/database-services/{id}/slots/{member_name}/release - POSTFetch query rows as Arrow
/api/v1/database-services/{id}/sql/api/arrowResults - POSTRun a SQL query
/api/v1/database-services/{id}/sql/api/executeQuery - GETFetch the database schema
/api/v1/database-services/{id}/sql/api/schema - POSTFetch read-only Arrow rows
/api/v1/database-services/{id}/sql/ro/api/arrowResults - POSTRun a read-only SQL query
/api/v1/database-services/{id}/sql/ro/api/executeQuery - GETGet the available upgrade
/api/v1/database-services/{id}/upgrade - POSTUpgrade a database service
/api/v1/database-services/{id}/upgrade - POSTCheck a service upgrade
/api/v1/database-services/{id}/upgrade/check - POSTChange the virtual IP
/api/v1/database-services/{id}/vip - GETList available extensions
/api/v1/extensions
dcs-clusters
Standalone etcd (DCS) clusters backing advanced HA topologies.
- GETList DCS clusters
/api/v1/dcs-clusters - POSTCreate a DCS cluster
/api/v1/dcs-clusters - POSTRun DCS pre-deploy checks
/api/v1/dcs-clusters/preflight - DELETEDelete a DCS cluster
/api/v1/dcs-clusters/{id} - GETGet a DCS cluster
/api/v1/dcs-clusters/{id} - GETGet DCS cluster health
/api/v1/dcs-clusters/{id}/health - POSTRedeploy a DCS cluster
/api/v1/dcs-clusters/{id}/redeploy - POSTRebuild a DCS member
/api/v1/dcs-clusters/{id}/servers/{server_id}/rebuild - POSTFill a DCS member slot
/api/v1/dcs-clusters/{id}/slots/{member_name}/fill - POSTRelease a DCS member slot
/api/v1/dcs-clusters/{id}/slots/{member_name}/release
livesync
Continuous database replication via timescale/live-sync: sessions, source preflight, and replication health.
- GETList livesync sessions
/api/v1/livesync - POSTCreate a livesync session
/api/v1/livesync - GETCheck a source's wal_level
/api/v1/livesync/source-preflight - GETList source tables
/api/v1/livesync/source-tables - POSTSet wal_level to logical
/api/v1/livesync/source/{id}/enable-logical - DELETERemove a livesync session
/api/v1/livesync/{id} - GETGet a livesync session
/api/v1/livesync/{id} - PATCHChange livesync options
/api/v1/livesync/{id} - GETGet livesync health
/api/v1/livesync/{id}/health - POSTStart a livesync session
/api/v1/livesync/{id}/start - POSTStop a livesync session
/api/v1/livesync/{id}/stop - GETList a session's tables
/api/v1/livesync/{id}/tables - POSTChange a session's tables
/api/v1/livesync/{id}/tables
workflows
Tracked Ansible runs: listing, inspection, log streaming, kill, and cleanup.
- GETList workflows
/api/v1/workflows - DELETEDelete a workflow
/api/v1/workflows/{id} - GETGet a workflow
/api/v1/workflows/{id} - GETGet a workflow's inventory
/api/v1/workflows/{id}/inventory - POSTKill a running workflow
/api/v1/workflows/{id}/kill - GETStream a workflow's stderr
/api/v1/workflows/{id}/stderr - GETStream a workflow's stdout
/api/v1/workflows/{id}/stdout
reports
Support bundles: async collection, download, and lifecycle.
- GETList support reports
/api/v1/reports - POSTCreate a support report
/api/v1/reports - DELETEDelete a support report
/api/v1/reports/{id} - GETGet a support report
/api/v1/reports/{id} - GETDownload a support report
/api/v1/reports/{id}/download
alerts
Alert rule state, notification destinations, and configurable thresholds.
- GETGet alert destinations
/api/v1/alert-delivery - PUTSet heartbeat destination
/api/v1/alert-delivery - POSTAdd an alert destination
/api/v1/alert-delivery/destinations - DELETERemove an alert destination
/api/v1/alert-delivery/destinations/{id} - PATCHChange an alert destination
/api/v1/alert-delivery/destinations/{id} - POSTTest an alert destination
/api/v1/alert-delivery/destinations/{id}/test - GETList all alert overrides
/api/v1/alert-overrides - PUTSet operation silences
/api/v1/alert-planned-operations - GETGet global alert rules
/api/v1/alert-rules - PUTChange global alert rules
/api/v1/alert-rules - DELETERemove the SMTP settings
/api/v1/alert-smtp - GETGet the SMTP settings
/api/v1/alert-smtp - PUTSet the SMTP settings
/api/v1/alert-smtp - GETGet alerts and their state
/api/v1/alerts - DELETEUnmute a service's alerts
/api/v1/database-services/{id}/alert-mute - POSTMute a service's alerts
/api/v1/database-services/{id}/alert-mute - DELETERemove alert overrides
/api/v1/database-services/{id}/alert-overrides - GETGet service alert overrides
/api/v1/database-services/{id}/alert-overrides - PUTSet service alert overrides
/api/v1/database-services/{id}/alert-overrides - GETGet a service's alert rules
/api/v1/database-services/{id}/alert-rules
users
Users: an admin creates local users, sets their role, disables them, and resets their password. The first SSO login adds an OIDC user.
- GETGet the two-factor policy
/api/v1/two-factor-policy - PUTSet the two-factor policy
/api/v1/two-factor-policy - GETList the users
/api/v1/users - POSTCreate a local user
/api/v1/users - DELETEDelete a user
/api/v1/users/{id} - PATCHChange a user
/api/v1/users/{id} - POSTReset a user's password
/api/v1/users/{id}/password - GETList a user's grants
/api/v1/users/{id}/service-grants - DELETERemove a service grant
/api/v1/users/{id}/service-grants/{service_id} - PUTSet a user's service role
/api/v1/users/{id}/service-grants/{service_id} - DELETEReset a user's two-factor
/api/v1/users/{id}/two-factor
audit
The audit log: who changed what, and each login.
- GETList the audit log
/api/v1/audit-events - GETExport the audit log
/api/v1/audit-events/export - GETGet an audit log row
/api/v1/audit-events/{id}
settings
Console settings: single sign-on (OIDC).
- GETGet the deploy log setting
/api/v1/settings/deploy-logs - PUTSet verbose deploy logs
/api/v1/settings/deploy-logs - GETGet monitoring settings
/api/v1/settings/monitoring - PUTSet metrics mirroring
/api/v1/settings/monitoring/mirror - POSTMake a new mirroring token
/api/v1/settings/monitoring/mirror/token - PUTSet metrics retention
/api/v1/settings/monitoring/retention - GETGet single sign-on settings
/api/v1/settings/oidc - PUTSet single sign-on settings
/api/v1/settings/oidc - POSTTest the OIDC issuer URL
/api/v1/settings/oidc/test - GETGet the update check
/api/v1/settings/update-check - PUTSet the update check
/api/v1/settings/update-check
remote-assist
Remote assist: a session in which Tiger Data support uses this console.
- GETGet the remote assist status
/api/v1/remote-assist - POSTTurn on remote assist
/api/v1/remote-assist - POSTEnd remote assist
/api/v1/remote-assist/end - GETList support requests
/api/v1/remote-assist/requests
console-backup
- GETList backup archives
/api/v1/console-backup/archives - POSTBack up the console now
/api/v1/console-backup/backups - GETGet the recovery key
/api/v1/console-backup/keys - POSTConfirm a new recovery key
/api/v1/console-backup/keys/confirm - DELETEDrop the unconfirmed key
/api/v1/console-backup/keys/pending - POSTMake a new recovery key
/api/v1/console-backup/keys/rotate - POSTMake the first recovery key
/api/v1/console-backup/keys/setup - GETGet the restore state
/api/v1/console-backup/restore - POSTStart a console restore
/api/v1/console-backup/restore - POSTCheck a restore archive
/api/v1/console-backup/restore/check - POSTDismiss the restore banner
/api/v1/console-backup/restore/dismiss - POSTUpload a restore archive
/api/v1/console-backup/restore/uploads - GETList console restores
/api/v1/console-backup/restores - GETList backup runs
/api/v1/console-backup/runs - GETGet a backup run
/api/v1/console-backup/runs/{id} - GETList backup schedules
/api/v1/console-backup/schedules - POSTAdd a backup schedule
/api/v1/console-backup/schedules - GETPreview a cron schedule
/api/v1/console-backup/schedules/next-runs - DELETERemove a backup schedule
/api/v1/console-backup/schedules/{id} - PUTChange a backup schedule
/api/v1/console-backup/schedules/{id} - GETGet backup settings
/api/v1/console-backup/settings - PUTChange backup settings
/api/v1/console-backup/settings - GETEstimate the backup size
/api/v1/console-backup/size-estimate - GETList backup targets
/api/v1/console-backup/targets - POSTAdd a backup target
/api/v1/console-backup/targets - DELETERemove a backup target
/api/v1/console-backup/targets/{id} - PUTChange a backup target
/api/v1/console-backup/targets/{id} - DELETEDelete a backup archive
/api/v1/console-backup/targets/{id}/archives/{name} - POSTCheck a backup archive
/api/v1/console-backup/targets/{id}/archives/{name}/check - GETDownload a backup archive
/api/v1/console-backup/targets/{id}/archives/{name}/download - POSTTest a backup target
/api/v1/console-backup/targets/{id}/test
metrics
- GETGet service metrics windows
/api/v1/database-services/{id}/metrics - POSTRun a PromQL instant query
/api/v1/promql/query - POSTRun a PromQL range query
/api/v1/promql/query_range
license
- GETGet current license status
/api/v1/license - POSTUpload license files
/api/v1/license - POSTActivate a license online
/api/v1/license/activate - POSTImport an air-gapped bundle
/api/v1/license/bundle - POSTCheck which licenses fit
/api/v1/license/fit - POSTPaste a license file
/api/v1/license/key - POSTExport an air-gapped request
/api/v1/license/request - POSTRequest a trial
/api/v1/license/trial - POSTStart a trial with a code
/api/v1/license/trial/verify - POSTCheck installed licenses
/api/v1/license/verify - DELETEDelete an unused license
/api/v1/license/{file} - POSTReset an expired trial
/api/v1/license/{file}/reset-trial
