Skip to main content
Tenants are database-isolated environments within a workspace, each with their own data and configuration. The CLI provides full lifecycle management for tenants and their backups.
Tenant commands require a workspace ID, either from your profile or via the -w flag. Most tenant commands identify tenants by their name (e.g., t1234-abcd-xyz1), not a numeric ID.
Need a short-lived tenant that cleans itself up — for a preview, a CI run, or a throwaway experiment? See ephemeral tenants, which auto-expire and, unlike regular tenants, accept a direct push.

CRUD

List Tenants

Each tenant shows its name, state, license, and — when available — the cluster, platform, and release it is running on. Use -o json for the full JSON response.

Get Tenant Details

The output includes the tenant’s name, state, license, domain, cluster, release, platform, version, and deployment details.

Create a Tenant

Edit a Tenant

Additional flags: --domain, --proxy, --[no-]ingress, --[no-]tasks, --[no-]rbac.

Delete a Tenant

Add -f to skip the confirmation prompt.
Deleting a tenant destroys all associated infrastructure and data. This cannot be undone.

Impersonate

Open a tenant’s dashboard in your browser, or retrieve the impersonation URL for scripting. Print the URL without opening the browser: Output credentials as JSON:

Pull & Push

You can pull a tenant’s content down as local XanoScript files, or push local files to a tenant. This works the same way as workspace pull & push, but targets a specific tenant.

Pull a Tenant

Direct tenant push is not supported. To deploy changes to a tenant, create a release and deploy it with xano tenant deploy_release, or use the sandbox workflow (xano sandbox push).

Deployments

Deploy a Release

Deploy a release to a tenant by name:

Deploy a Platform


Tenant License


Tenant Environment Variables

Manage environment variables on a per-tenant basis.

List Env Var Keys

Get a Single Env Var

Set an Env Var

Delete an Env Var

Export All Env Vars

Export all environment variables to a YAML file:

Import All Env Vars

Import environment variables from a YAML file (replaces existing):

Tenant Backups

List Backups

Use --page for pagination.

Create a Backup

Restore from a Backup

You’ll be asked to confirm before the restore proceeds. Use -f to skip confirmation.
Restoring a backup replaces the current tenant data entirely.

Export a Backup

Download a backup as a .tar.gz file: Specify a custom output path with --output:

Import a Backup

Import a backup file into a tenant:

Delete a Backup

Add -f to skip the confirmation prompt.

Tenant Snapshots

Snapshots are instant clones of a tenant’s database — designed for quick rollback around a deployment, where backups capture the whole tenant (database and logic) for long-term retention. A snapshot is never written back to the tenant: you swap the tenant to a snapshot, which leaves the current live database in place so you can swap back at any time. This is the CLI equivalent of the Snapshots feature in the Tenant Center.
Swapping briefly drops the tenant’s live database connections while the copy runs.

Create a Snapshot

The --label (or -l) is optional and is appended to the snapshot’s description. The command returns the snapshot’s database name, e.g. TENANT_NAME_bk_20260603_203614 — you’ll pass that name to swap and delete.

List Snapshots

Snapshots are tagged ORIGINAL (the tenant’s initial database) and LIVE (the database the tenant currently serves).

Swap to a Snapshot

Repoint the tenant’s live database to a snapshot: You’ll be asked to confirm before the swap proceeds. Use -f to skip confirmation.
Rolling back a swap: the swap leaves your previous live database untouched, so you can always swap back. To roll back, run swap again with --snapshot set to the original database name (the snapshot tagged ORIGINAL, which is the tenant name itself):

Delete a Snapshot

Add -f to skip the confirmation prompt.
Deleting a snapshot permanently drops that snapshot database and cannot be undone. The live and original databases cannot be deleted.

Clusters

Manage tenant clusters for multi-tenant deployments.

List Clusters

Get Cluster Details

Create a Cluster

Edit a Cluster

Delete a Cluster

Add -f to skip the confirmation prompt.

Cluster License (Kubeconfig)


Ephemeral Tenants

An ephemeral tenant is a regular tenant with a timer on it. It belongs to a workspace and gets its own database, environment variables, and configuration — but it deletes itself when its window elapses, so there is no cleanup step to forget. Two differences matter when you’re choosing between them: That second row is the reason to reach for one: a regular tenant receives logic through the release pipeline, while an ephemeral tenant takes a push straight from your working directory — so you can stand up a running environment from a branch that has never been released.

With the CLI

Every xano tenant verb has an xano ephemeral counterpart. A full cycle: See Ephemeral Tenants for the full command reference.

In CI/CD

Create one per pipeline run, push the commit under test with real records and environment variables, run your checks against it, then delete it early rather than waiting on the timer. -f skips the confirmation prompt, and -o json returns the tenant name for your script to capture. Because each run gets a clean environment, tests never inherit state from the last one, and parallel runs can’t collide. For the surrounding release process, see CI/CD; for driving this loop with an AI coding agent, see Agentic Development.