> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirurobotics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Archive format

Every backup is a single zip archive. The format is a public contract: each resource in
it is a [Platform API](https://docs.mirurobotics.com/developers/platform-api/overview.md) resource. Refer to the
Platform API reference to see the contents of each resource.

## Bucket location

Archives are written to your bucket under the backup prefix specified during [set up](https://docs.mirurobotics.com/admin/backups/set-up.md). The default bucket prefix is `miru-backups/`.

**\<your-bucket>**

**miru-backups**

**miru-backup-20261101T030000Z.zip**

**miru-backup-20261102T030000Z.zip**

**...**

**\<sibling-folder>**

Each archive is named `miru-backup-<timestamp>.zip`, where the timestamp is when the backup was taken.

## Archive contents

Every archive contains the entire state of the workspace at the time the backup was taken. Unzipping an archive reveals a directory with the following contents:

**miru-backup-20261102T030000Z.zip**

**README.md**

**manifest.json**

**resources**

**api\_keys.jsonl**

**calibrations.jsonl**

**config\_instances.jsonl**

**config\_schema\_git\_commits.jsonl**

**config\_schemas.jsonl**

**config\_types.jsonl**

**deployments.jsonl**

**devices.jsonl**

**git\_commits.jsonl**

**groups.jsonl**

**releases.jsonl**

**users.jsonl**

**contents**

**calibrations**

**cal\_123**

**cal\_456**

**...**

**config\_instances**

**cfg\_inst\_123**

**cfg\_inst\_456**

**...**

* `README.md` lists the resource types in the archive, explains how to read it and links
  back to these docs.
* `manifest.json` describes the archive. See [manifest](#manifest).
* `resources/` holds one file per resource type. See [resources](#resources).
* `contents/` holds the stored content of each config instance and calibration. See
  [contents](#contents).

Every resource type is guaranteed to have a file. An empty file means the workspace had
no resources of that type.

## Manifest

The manifest is a JSON file that describes the archive.

```json theme={null}
{
  "format_version": "0.1",
  "platform_api_version": "2026-11-04.everglades",
  "workspace_id": "wsp_123",
  "timestamp": "2026-11-02T03:00:00Z",
  "resource_counts": {
    "api_keys": 3,
    "calibrations": 64,
    "config_instances": 812,
    "devices": 112,
    "releases": 38,
    "users": 9
  }
}
```

**format\_version** `string`

The version of the archive format, as `major.minor`. See [versioning](#versioning).

Example: `0.1`

**platform\_api\_version** `string`

The [Platform API version](https://docs.mirurobotics.com/developers/platform-api/versioning.md) of every resource in
the archive.

Example: `2026-11-04.everglades`

**workspace\_id** `string`

The ID of the workspace the archive was taken from.

Example: `wsp_123`

**timestamp** `timestamp`

The point in time the archive captures. Every resource is as it was at this moment.

Example: `2026-11-02T03:00:00Z`

**resource\_counts** `object`

A map of resource types to the number of resources of that type in the archive.

## Resources

Each file in `resources/` is a [JSON Lines](https://jsonlines.org) file containing one Platform API resource per line. Resources use the Platform API version named in the manifest's `platform_api_version`.

| File | Resource | Expansions |
| - | - | - |
| `api_keys.jsonl` | API key | |
| `calibrations.jsonl` | Calibration | |
| `config_instances.jsonl` | Config instance | |
| `config_schema_git_commits.jsonl` | Config schema git commit | |
| `config_schemas.jsonl` | Config schema | `documents` |
| `config_types.jsonl` | Config type | |
| `deployments.jsonl` | Deployment | `config_instances` |
| `devices.jsonl` | Device | |
| `git_commits.jsonl` | Git commit | |
| `groups.jsonl` | Group | |
| `releases.jsonl` | Release | `config_schemas` |
| `users.jsonl` | User | |

Some resources include expansion data that the Platform API does not include by default. For example, `config_schemas.jsonl` includes the schema documents, since there is no dedicated schema documents endpoint in the Platform API.

`config_schema_git_commits.jsonl` links each config schema to the git commits it was
pushed from, with the schema's file paths in each commit. While config schema git commits are not returned as their own resource in the Platform API, they are given their own file in the archive because expanding the `config_schema_git_commits` expansion on config schemas returns only a singular page of results, which may loose data.

Archived devices, releases and config types are included in the archive. Deleted API
keys are also included, as resources may have been created from an API key that has since been deleted.

## Contents

The `contents/` directory contains the stored content of each config instance and calibration. Since these files are so large, they are given their own directory in the archive.

Each file in `contents/` holds the stored content of one config instance or calibration,
named by the resource's ID:

* `contents/config_instances/<id>`
* `contents/calibrations/<id>`

The bytes are exactly as they were stored, with no re-encoding.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.