Appwrite Backups API

The Backups service allows you to manage backup policies, archives, and restorations for your project. 12 operations across 7 paths in the Appwrite 2.0.0 OpenAPI.

Operations 12

GET /backups/archives List archives #
POST /backups/archives Create archive #
GET /backups/archives/{archiveId} Get backup archive #
DELETE /backups/archives/{archiveId} Delete archive #
GET /backups/policies List backup policies #
POST /backups/policies Create backup policy #
GET /backups/policies/{policyId} Get backup policy #
PATCH /backups/policies/{policyId} Update backup policy #
DELETE /backups/policies/{policyId} Delete backup policy #
POST /backups/restoration Create restoration #
GET /backups/restorations List restorations #
GET /backups/restorations/{restorationId} Get backup restoration #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appwrite-backups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appwrite-backups-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Appwrite Backups API
  description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
  version: 2.0.0
  termsOfService: https://appwrite.io/policy/terms
  contact:
    name: Appwrite Team
    url: https://appwrite.io/support
    email: team@appwrite.io
  license:
    name: BSD-3-Clause
    url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
  description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
  description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
  variables:
    region:
      default: fra
      description: Appwrite Cloud region.
tags:
- name: backups
  description: The Backups service allows you to manage backup policies, archives, and restorations for your project.
paths:
  /backups/archives:
    get:
      summary: List archives
      operationId: backupsListArchives
      tags:
      - backups
      description: List all archives for a project.
      responses:
        '200':
          description: Backup archive list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupArchiveList'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/list-archives.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: archives.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: queries
        description: Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
        required: false
        schema:
          type: array
          items:
            type: string
          default: []
        in: query
    post:
      summary: Create archive
      operationId: backupsCreateArchive
      tags:
      - backups
      description: Create a new archive asynchronously for a project.
      responses:
        '201':
          description: Archive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupArchive'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/create-archive.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: archives.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                services:
                  description: Array of services to backup
                  type: array
                  items:
                    title: BackupServices
                    type: string
                    oneOf:
                    - type: string
                      enum:
                      - databases
                      title: databases
                    - type: string
                      enum:
                      - tablesdb
                      title: tablesdb
                    - type: string
                      enum:
                      - documentsdb
                      title: documentsdb
                    - type: string
                      enum:
                      - vectorsdb
                      title: vectorsdb
                    - type: string
                      enum:
                      - dedicatedDatabases
                      title: dedicatedDatabases
                    - type: string
                      enum:
                      - functions
                      title: functions
                    - type: string
                      enum:
                      - storage
                      title: storage
                resourceId:
                  description: Resource ID. When set, only this single resource will be backed up.
                  type: string
                  example: <RESOURCE_ID>
                  nullable: true
              required:
              - services
  /backups/archives/{archiveId}:
    get:
      summary: Get backup archive
      operationId: backupsGetArchive
      tags:
      - backups
      description: Get a backup archive using it's ID.
      responses:
        '200':
          description: Archive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupArchive'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/get-archive.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: archives.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: archiveId
        description: Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          example: <ARCHIVE_ID>
        in: path
    delete:
      summary: Delete archive
      operationId: backupsDeleteArchive
      tags:
      - backups
      description: Delete an existing archive for a project.
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/delete-archive.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: archives.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: archiveId
        description: Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          x-appwrite:
            idGenerator: ID.unique
          example: <ARCHIVE_ID>
        in: path
  /backups/policies:
    get:
      summary: List backup policies
      operationId: backupsListPolicies
      tags:
      - backups
      description: List all policies for a project.
      responses:
        '200':
          description: Backup policy list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupPolicyList'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/list-policies.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope:
        - policies.read
        - backups.policies.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: queries
        description: Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
        required: false
        schema:
          type: array
          items:
            type: string
          default: []
        in: query
    post:
      summary: Create backup policy
      operationId: backupsCreatePolicy
      tags:
      - backups
      description: Create a new backup policy.
      responses:
        '201':
          description: backup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupPolicy'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/create-policy.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope:
        - policies.write
        - backups.policies.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                policyId:
                  description: Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
                  type: string
                  example: <POLICY_ID>
                  x-appwrite:
                    idGenerator: ID.unique
                name:
                  description: 'Policy name. Max length: 128 chars.'
                  type: string
                  default: ''
                  example: <NAME>
                services:
                  description: Array of services to backup
                  type: array
                  items:
                    title: BackupServices
                    type: string
                    oneOf:
                    - type: string
                      enum:
                      - databases
                      title: databases
                    - type: string
                      enum:
                      - tablesdb
                      title: tablesdb
                    - type: string
                      enum:
                      - documentsdb
                      title: documentsdb
                    - type: string
                      enum:
                      - vectorsdb
                      title: vectorsdb
                    - type: string
                      enum:
                      - dedicatedDatabases
                      title: dedicatedDatabases
                    - type: string
                      enum:
                      - functions
                      title: functions
                    - type: string
                      enum:
                      - storage
                      title: storage
                resourceId:
                  description: Resource ID. When set, only this single resource will be backed up.
                  type: string
                  example: <RESOURCE_ID>
                  nullable: true
                enabled:
                  description: Is policy enabled? When set to 'disabled', no backups will be taken
                  type: boolean
                  default: true
                  example: false
                retention:
                  description: Days to keep backups before deletion
                  type: integer
                  example: 1
                  format: int32
                schedule:
                  description: Schedule CRON syntax.
                  type: string
              required:
              - policyId
              - services
              - retention
              - schedule
  /backups/policies/{policyId}:
    get:
      summary: Get backup policy
      operationId: backupsGetPolicy
      tags:
      - backups
      description: Get a backup policy using it's ID.
      responses:
        '200':
          description: backup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupPolicy'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/get-policy.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope:
        - policies.read
        - backups.policies.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: policyId
        description: Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          example: <POLICY_ID>
        in: path
    patch:
      summary: Update backup policy
      operationId: backupsUpdatePolicy
      tags:
      - backups
      description: Update an existing policy using it's ID.
      responses:
        '200':
          description: backup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupPolicy'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/update-policy.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope:
        - policies.write
        - backups.policies.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: policyId
        description: Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          example: <POLICY_ID>
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: 'Policy name. Max length: 128 chars.'
                  type: string
                  example: <NAME>
                  nullable: true
                retention:
                  description: Days to keep backups before deletion
                  type: integer
                  example: 1
                  format: int32
                  nullable: true
                schedule:
                  description: Cron expression
                  type: string
                enabled:
                  description: Is Backup enabled? When set to 'disabled', No backup will be taken
                  type: boolean
                  example: false
                  nullable: true
    delete:
      summary: Delete backup policy
      operationId: backupsDeletePolicy
      tags:
      - backups
      description: Delete a policy using it's ID.
      responses:
        '204':
          description: No content
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/delete-policy.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope:
        - policies.write
        - backups.policies.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: policyId
        description: Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          x-appwrite:
            idGenerator: ID.unique
          example: <POLICY_ID>
        in: path
  /backups/restoration:
    post:
      summary: Create restoration
      operationId: backupsCreateRestoration
      tags:
      - backups
      description: 'Create and trigger a new restoration for a backup on a project.


        For a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.


        The restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.


        To list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.


        When restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database''s own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.

        '
      responses:
        '201':
          description: Restoration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupRestoration'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/create-restoration.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: restorations.write
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                archiveId:
                  description: Backup archive ID to restore
                  type: string
                  example: <ARCHIVE_ID>
                services:
                  description: Array of services to restore
                  type: array
                  items:
                    title: BackupServices
                    type: string
                    oneOf:
                    - type: string
                      enum:
                      - databases
                      title: databases
                    - type: string
                      enum:
                      - tablesdb
                      title: tablesdb
                    - type: string
                      enum:
                      - documentsdb
                      title: documentsdb
                    - type: string
                      enum:
                      - vectorsdb
                      title: vectorsdb
                    - type: string
                      enum:
                      - dedicatedDatabases
                      title: dedicatedDatabases
                    - type: string
                      enum:
                      - functions
                      title: functions
                    - type: string
                      enum:
                      - storage
                      title: storage
                newResourceId:
                  description: Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
                  type: string
                  default: ''
                  example: <NEW_RESOURCE_ID>
                  x-appwrite:
                    idGenerator: ID.unique
                newResourceName:
                  description: 'Database name. Max length: 128 chars.'
                  type: string
                  default: ''
                  example: <NEW_RESOURCE_NAME>
              required:
              - archiveId
              - services
  /backups/restorations:
    get:
      summary: List restorations
      operationId: backupsListRestorations
      tags:
      - backups
      description: List all backup restorations for a project.
      responses:
        '200':
          description: Backup restoration list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupRestorationList'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/list-restorations.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: restorations.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: queries
        description: Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
        required: false
        schema:
          type: array
          items:
            type: string
          default: []
        in: query
  /backups/restorations/{restorationId}:
    get:
      summary: Get backup restoration
      operationId: backupsGetRestoration
      tags:
      - backups
      description: Get the current status of a backup restoration.
      responses:
        '200':
          description: Restoration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/backupRestoration'
      deprecated: false
      x-appwrite:
        group: null
        demo: backups/get-restoration.md
        rate-limit: 0
        rate-time: 3600
        rate-key: url:{url},ip:{ip}
        scope: restorations.read
        platforms:
        - console
        - server
        packaging: false
        public: true
        auth:
          console:
            Project: []
          server:
            Project: []
            Key: []
      security:
      - Project: []
        Key: []
      parameters:
      - name: restorationId
        description: Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
        required: true
        schema:
          type: string
          example: <RESTORATION_ID>
        in: path
components:
  schemas:
    backupArchive:
      description: Archive
      type: object
      properties:
        $id:
          type: string
          description: Archive ID.
          example: 5e5ea5c16897e
        $createdAt:
          type: string
          description: Archive creation time in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        $updatedAt:
          type: string
          description: Archive update date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        policyId:
          type: string
          description: Archive policy ID.
          example: did8jx6ws45jana098ab7
        size:
          type: integer
          description: Archive size in bytes.
          format: int32
          example: 100000
        status:
          type: string
          description: 'The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.'
          example: completed
        startedAt:
          type: string
          description: The backup start time.
          example: '2020-10-15T06:38:00.000+00:00'
        migrationId:
          type: string
          description: Migration ID.
          example: did8jx6ws45jana098ab7
        services:
          type: array
          description: The services that are backed up by this archive.
          items:
            type: string
          example:
          - '[''databases'', ''storage'']'
        resources:
          type: array
          description: The resources that are backed up by this archive.
          items:
            type: string
          example:
          - '[''databases'', ''collections'', ''attributes'', ''indexes'']'
        resourceId:
          type: string
          description: The resource ID to backup. Set only if this archive should backup a single resource.
          example: DB1
          nullable: true
        resourceType:
          type: string
          description: The resource type to backup. Set only if this archive should backup a single resource.
          example: database
          nullable: true
      required:
      - $id
      - $createdAt
      - $updatedAt
      - policyId
      - size
      - status
      - startedAt
      - migrationId
      - services
      - resources
      example:
        $id: 5e5ea5c16897e
        $createdAt: '2020-10-15T06:38:00.000+00:00'
        $updatedAt: '2020-10-15T06:38:00.000+00:00'
        policyId: did8jx6ws45jana098ab7
        size: 100000
        status: completed
        startedAt: '2020-10-15T06:38:00.000+00:00'
        migrationId: did8jx6ws45jana098ab7
        services: '[''databases'', ''storage'']'
        resources: '[''databases'', ''collections'', ''attributes'', ''indexes'']'
        resourceId: DB1
        resourceType: database
    backupArchiveList:
      description: Backup archive list
      type: object
      properties:
        total:
          type: integer
          description: Total number of archives that matched your query.
          format: int32
          example: 5
        archives:
          type: array
          description: List of archives.
          items:
            $ref: '#/components/schemas/backupArchive'
          example: []
      required:
      - total
      - archives
      example:
        total: 5
        archives: ''
    backupPolicy:
      description: backup
      type: object
      properties:
        $id:
          type: string
          description: Backup policy ID.
          example: 5e5ea5c16897e
        name:
          type: string
          description: Backup policy name.
          example: Hourly backups
        $createdAt:
          type: string
          description: Policy creation date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        $updatedAt:
          type: string
          description: Policy update date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        services:
          type: array
          description: The services that are backed up by this policy.
          items:
            type: string
          example:
          - '[''databases'', ''storage'']'
        resources:
          type: array
          description: The resources that are backed up by this policy.
          items:
            type: string
          example:
          - '[''databases'', ''collections'', ''attributes'', ''indexes'']'
        resourceId:
          type: string
          description: The resource ID to backup. Set only if this policy should backup a single resource.
          example: DB1
          nullable: true
        resourceType:
          type: string
          description: The resource type to backup. Set only if this policy should backup a single resource.
          example: database
          nullable: true
        retention:
          type: integer
          description: How many days to keep the backup before it will be automatically deleted.
          format: int32
          example: 7
        schedule:
          type: string
          description: Policy backup schedule in CRON format.
          example: 0 * * * *
        type:
          type: string
          description: 'Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).'
          example: full
        enabled:
          type: boolean
          description: Is this policy enabled.
          example: true
      required:
      - $id
      - name
      - $createdAt
      - $updatedAt
      - services
      - resources
      - retention
      - schedule
      - type
      - enabled
      example:
        $id: 5e5ea5c16897e
        name: Hourly backups
        $createdAt: '2020-10-15T06:38:00.000+00:00'
        $updatedAt: '2020-10-15T06:38:00.000+00:00'
        services: '[''databases'', ''storage'']'
        resources: '[''databases'', ''collections'', ''attributes'', ''indexes'']'
        resourceId: DB1
        resourceType: database
        retention: 7
        schedule: 0 * * * *
        type: full
        enabled: true
    backupPolicyList:
      description: Backup policy list
      type: object
      properties:
        total:
          type: integer
          description: Total number of policies that matched your query.
          format: int32
          example: 5
        policies:
          type: array
          description: List of policies.
          items:
            $ref: '#/components/schemas/backupPolicy'
          example: []
      required:
      - total
      - policies
      example:
        total: 5
        policies: ''
    backupRestoration:
      description: Restoration
      type: object
      properties:
        $id:
          type: string
          description: Restoration ID.
          example: 5e5ea5c16897e
        $createdAt:
          type: string
          description: Restoration creation time in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        $updatedAt:
          type: string
          description: Restoration update date in ISO 8601 format.
          example: '2020-10-15T06:38:00.000+00:00'
        archiveId:
          type: string
          description: Backup archive ID.
          example: did8jx6ws45jana098ab7
        policyId:
          type: string
          description: Backup policy ID.
          example: did8jx6ws45jana098ab7
        status:
          type: string
          description: 'The status of the restoration. Possible values: pending, downloading, processing, completed, failed.'
          example: completed
        startedAt:
          type: string
          description: The backup start time.
          example: '2020-10-15T06:38:00.000+00:00'
        migrationId:
          type: string
          description: Migration ID.
          example: did8jx6ws45jana098ab7
        services:
          type: array
          description: The services that are backed up by this policy.
          items:
            type: string
          example:
          - '[''databases'', ''storage'']'
        resources:
          type: array
          description: The resources that are backed up by this policy.
          items:
            type: string
          example:
          - '[''databases'', ''collections'', ''attributes'', ''indexes'']'
        options:
          type: string
          description: 'Optional data in key-value object. '
          example: '{databases.database[{oldId, newId, newName}]}'
      required:
      - 

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-backups-api-openapi.yml