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.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.
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.
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.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 taggedORIGINAL (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.
Delete a Snapshot
Add-f to skip the confirmation prompt.
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
Everyxano 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.