What a backup contains
For every connection with a credential, the backup records the first 12
characters of the credential’s SHA-256 fingerprint, the same value the console
shows. It helps you recognise which key to enter when you restore.
Download a backup
Only organization owners and admins can download a backup. An API key needs the* or project:admin scope.
In the console, open Organization under Configure and choose
Download backup under Backup and restore. The file is named after the organization
and the export time, for example acme-2026-10-17-120234.oao-backup.json.
With the API:
Restore a backup
A restore creates an exact copy. It only fills projects that are new or empty:- A project whose slug does not exist yet is created.
- An existing project with the same slug is used only if it has no agents, Skills, model presets, MCP toolsets, or event webhooks. It takes the project name from the backup.
- No shared connection may already exist with the same key: model, sandbox, and storage providers, MCP servers, credentials, and credential policies.
In the console
- Open Organization under Configure and choose Restore from backup.
- Pick the backup file. OAO checks it against the organization without changing anything and shows what would happen: each project with Create, Fill empty project, or Blocked, anything that blocks the restore, and warnings.
- Enter the key for every connection listed. A storage provider needs its
access key ID and secret access key; a webhook needs a
whsec_signing secret. - Choose Restore.
With the API
First preview the restore. The preview changes nothing and needs noIdempotency-Key:
projects with their action, blocking conflicts,
warnings, counts, and requiredCredentials. ready is true when nothing
blocks the restore. Then send the backup with one credential for every entry in
requiredCredentials, keyed by the entry’s id:
POST /v1/organizations/{organizationId}/configuration-restore needs an
Idempotency-Key and returns 201 with the restored projects and counts. It
fails with 400 if a required credential is missing or a credential is given
that the backup does not need, and with 409 if the preview is not ready.
What restore keeps and what it changes
- Versions and states are kept. Version numbers, lifecycle states (active, deprecated, revoked), disabled and archived flags, delegates, Skill and MCP bindings, and Harness Operations match the source.
- IDs are new. Every restored row gets a new ID, and references inside agent configurations are rewritten to match. Agent version content hashes are recomputed from the rewritten configuration.
- Keys are kept. Agent versions refer to model presets and sandbox providers by key, so those keys are restored unchanged.
- Credentials are the ones you enter. Each connection gets a fresh credential. Archived model providers and revoked MCP credentials are restored in the same state and need no key.
- Webhooks start now. A restored webhook delivers events from the moment of the restore; it never replays the project’s earlier history.
- Restored rows belong to you. They are attributed to the user who restores them. This does not add anyone to a project; add members again after the restore.
Warnings
The preview warns, without blocking, when:- The organization already has a default storage provider. The backup’s default provider is then restored as an additional, non-default provider.
- An agent version uses a model preset that is neither in the backup nor offered by the server as a deployment preset. Publish a new version with an available preset before running that agent.
- An agent has a sandbox. Its versions keep their Daytona snapshot IDs, so restore into the same Daytona account, or publish new versions with a snapshot from the new account.
File format
The file is JSON with"format": "oao.organization-configuration" and
"formatVersion": 1. Every entry has an id; IDs only connect entries within
the file, for example an agent version’s skillVersionIds or a model preset’s
providerId. Agent config objects are stored exactly as published. OAO
checks the file’s structure and references before it changes anything, and
validates each Skill and agent version as it restores it.
