openapi: 3.2.0 info: version: 2.0.0 title: Appwrite Migrations 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 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: Migrations description: The Migrations service allows you to migrate third-party data to your Appwrite project. paths: /migrations: get: summary: List migrations operationId: migrationsList tags: - Migrations description: List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process. responses: '200': description: Migrations List content: application/json: schema: $ref: '#/components/schemas/migrationList' deprecated: false x-appwrite: group: null demo: migrations/list.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.read platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] 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/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceInternalId, resourceType, parentResourceId, parentResourceInternalId, parentResourceType, destinationResourceId, destinationResourceInternalId, destinationResourceType, statusCounters, resourceData, errors' required: false schema: type: array items: type: string default: [] in: query - name: search description: 'Search term to filter your list results. Max length: 256 chars.' required: false schema: type: string example: default: '' in: query - name: total description: When set to false, the total count returned will be 0 and will not be calculated. required: false schema: type: boolean example: false default: true in: query /migrations/appwrite: post: summary: Create Appwrite migration operationId: migrationsCreateAppwriteMigration tags: - Migrations description: Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-appwrite-migration.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: resources: description: List of resources to migrate type: array items: title: AppwriteMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - team title: team - type: string enum: - membership title: membership - type: string enum: - auth-methods title: auth-methods - type: string enum: - policies title: policies - type: string enum: - oauth2-provider title: oauth2-provider - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - documentsdb title: documentsdb - type: string enum: - vectorsdb title: vectorsdb - type: string enum: - bucket title: bucket - type: string enum: - file title: file - type: string enum: - function title: function - type: string enum: - deployment title: deployment - type: string enum: - environment-variable title: environment-variable - type: string enum: - provider title: provider - type: string enum: - topic title: topic - type: string enum: - subscriber title: subscriber - type: string enum: - message title: message - type: string enum: - site title: site - type: string enum: - site-deployment title: site-deployment - type: string enum: - site-variable title: site-variable - type: string enum: - platform title: platform - type: string enum: - api-key title: api-key - type: string enum: - webhook title: webhook - type: string enum: - smtp title: smtp - type: string enum: - backup-policy title: backup-policy - type: string enum: - project-variable title: project-variable - type: string enum: - project-protocols title: project-protocols - type: string enum: - project-labels title: project-labels - type: string enum: - project-services title: project-services - type: string enum: - project-email-template title: project-email-template - type: string enum: - rule title: rule endpoint: description: Source Appwrite endpoint type: string example: https://example.com format: url projectId: description: Source Project ID type: string example: apiKey: description: Source API Key type: string example: onDuplicate: description: 'Behavior when a row with an existing $id is encountered. "fail" (default): abort on first conflict. "skip": silently ignore. "overwrite": replace existing row.' type: string default: fail example: fail title: OnDuplicate oneOf: - type: string enum: - fail title: fail - type: string enum: - skip title: skip - type: string enum: - overwrite title: overwrite required: - resources - endpoint - projectId - apiKey /migrations/appwrite/report: get: summary: Get Appwrite migration report operationId: migrationsGetAppwriteReport tags: - Migrations description: Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. responses: '200': description: Migration Report content: application/json: schema: $ref: '#/components/schemas/migrationReport' deprecated: false x-appwrite: group: null demo: migrations/get-appwrite-report.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: resources description: List of resources to migrate required: true schema: type: array items: title: AppwriteMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - team title: team - type: string enum: - membership title: membership - type: string enum: - auth-methods title: auth-methods - type: string enum: - policies title: policies - type: string enum: - oauth2-provider title: oauth2-provider - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - documentsdb title: documentsdb - type: string enum: - vectorsdb title: vectorsdb - type: string enum: - bucket title: bucket - type: string enum: - file title: file - type: string enum: - function title: function - type: string enum: - deployment title: deployment - type: string enum: - environment-variable title: environment-variable - type: string enum: - provider title: provider - type: string enum: - topic title: topic - type: string enum: - subscriber title: subscriber - type: string enum: - message title: message - type: string enum: - site title: site - type: string enum: - site-deployment title: site-deployment - type: string enum: - site-variable title: site-variable - type: string enum: - platform title: platform - type: string enum: - api-key title: api-key - type: string enum: - webhook title: webhook - type: string enum: - smtp title: smtp - type: string enum: - backup-policy title: backup-policy - type: string enum: - project-variable title: project-variable - type: string enum: - project-protocols title: project-protocols - type: string enum: - project-labels title: project-labels - type: string enum: - project-services title: project-services - type: string enum: - project-email-template title: project-email-template - type: string enum: - rule title: rule in: query - name: endpoint description: Source's Appwrite Endpoint required: true schema: type: string format: url example: https://example.com in: query - name: projectID description: Source's Project ID required: true schema: type: string example: in: query - name: key description: Source's API Key required: true schema: type: string example: in: query /migrations/csv/exports: post: summary: Export documents to CSV operationId: migrationsCreateCSVExport tags: - Migrations description: Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-csv-export.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: databaseId: description: Database ID containing the source collection. type: string example: collectionId: description: Collection ID to export documents from. type: string example: filename: description: The name of the file to be created for the export, excluding the .csv extension. type: string example: columns: description: List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection. type: array default: [] items: type: string queries: description: Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. type: array default: [] items: type: string delimiter: description: The character that separates each column value. Default is comma. type: string default: ',' example: enclosure: description: The character that encloses each column value. Default is double quotes. type: string default: '"' example: escape: description: The escape character for the enclosure character. Default is double quotes. type: string default: '"' example: header: description: Whether to include the header row with column names. Default is true. type: boolean default: true example: false notify: description: Set to true to receive an email when the export is complete. Default is true. type: boolean default: true example: false required: - databaseId - collectionId - filename /migrations/csv/imports: post: summary: Import documents from a CSV operationId: migrationsCreateCSVImport tags: - Migrations description: Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-csv-import.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: bucketId: description: Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). type: string example: fileId: description: File ID. type: string example: databaseId: description: Database ID containing the target collection. type: string example: collectionId: description: Collection ID to import documents into. type: string example: internalFile: description: Is the file stored in an internal bucket? type: boolean default: false example: false onDuplicate: description: 'Behavior when a row with an existing $id is encountered. "fail" (default): abort on first conflict. "skip": silently ignore. "overwrite": replace existing row.' type: string default: fail example: fail title: OnDuplicate oneOf: - type: string enum: - fail title: fail - type: string enum: - skip title: skip - type: string enum: - overwrite title: overwrite required: - bucketId - fileId - databaseId - collectionId /migrations/firebase: post: summary: Create Firebase migration operationId: migrationsCreateFirebaseMigration tags: - Migrations description: Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-firebase-migration.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: resources: description: List of resources to migrate type: array items: title: FirebaseMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file serviceAccount: description: JSON of the Firebase service account credentials type: string example: required: - resources - serviceAccount /migrations/firebase/report: get: summary: Get Firebase migration report operationId: migrationsGetFirebaseReport tags: - Migrations description: Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. responses: '200': description: Migration Report content: application/json: schema: $ref: '#/components/schemas/migrationReport' deprecated: false x-appwrite: group: null demo: migrations/get-firebase-report.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: resources description: List of resources to migrate required: true schema: type: array items: title: FirebaseMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file in: query - name: serviceAccount description: JSON of the Firebase service account credentials required: true schema: type: string example: in: query /migrations/json/exports: post: summary: Export documents to JSON operationId: migrationsCreateJSONExport tags: - Migrations description: Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-json-export.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: databaseId: description: Database ID containing the source collection. type: string example: collectionId: description: Collection ID to export documents from. type: string example: filename: description: The name of the file to be created for the export, excluding the .json extension. type: string example: columns: description: List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection. type: array default: [] items: type: string queries: description: Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. type: array default: [] items: type: string notify: description: Set to true to receive an email when the export is complete. Default is true. type: boolean default: true example: false required: - databaseId - collectionId - filename /migrations/json/imports: post: summary: Import documents from a JSON operationId: migrationsCreateJSONImport tags: - Migrations description: Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-json-import.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: bucketId: description: Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). type: string example: fileId: description: File ID. type: string example: databaseId: description: Database ID containing the target collection. type: string example: collectionId: description: Collection ID to import documents into. type: string example: internalFile: description: Is the file stored in an internal bucket? type: boolean default: false example: false onDuplicate: description: 'Behavior when a row with an existing $id is encountered. "fail" (default): abort on first conflict. "skip": silently ignore. "overwrite": replace existing row.' type: string default: fail example: fail title: OnDuplicate oneOf: - type: string enum: - fail title: fail - type: string enum: - skip title: skip - type: string enum: - overwrite title: overwrite required: - bucketId - fileId - databaseId - collectionId /migrations/nhost: post: summary: Create NHost migration operationId: migrationsCreateNHostMigration tags: - Migrations description: Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-n-host-migration.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: resources: description: List of resources to migrate type: array items: title: NHostMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file subdomain: description: Source's Subdomain type: string example: region: description: Source's Region type: string example: adminSecret: description: Source's Admin Secret type: string example: database: description: Source's Database Name type: string example: username: description: Source's Database Username type: string example: password: description: Source's Database Password type: string example: password format: password port: description: Source's Database Port type: integer default: 5432 example: 5432 format: int32 required: - resources - subdomain - region - adminSecret - database - username - password /migrations/nhost/report: get: summary: Get NHost migration report operationId: migrationsGetNHostReport tags: - Migrations description: Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. responses: '200': description: Migration Report content: application/json: schema: $ref: '#/components/schemas/migrationReport' deprecated: false x-appwrite: group: null demo: migrations/get-n-host-report.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: resources description: List of resources to migrate. required: true schema: type: array items: title: NHostMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file in: query - name: subdomain description: Source's Subdomain. required: true schema: type: string example: in: query - name: region description: Source's Region. required: true schema: type: string example: in: query - name: adminSecret description: Source's Admin Secret. required: true schema: type: string example: in: query - name: database description: Source's Database Name. required: true schema: type: string example: in: query - name: username description: Source's Database Username. required: true schema: type: string example: in: query - name: password description: Source's Database Password. required: true schema: type: string format: password example: password in: query - name: port description: Source's Database Port. required: false schema: type: integer format: int32 example: 5432 default: 5432 in: query /migrations/supabase: post: summary: Create Supabase migration operationId: migrationsCreateSupabaseMigration tags: - Migrations description: Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/create-supabase-migration.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] requestBody: content: application/json: schema: type: object properties: resources: description: List of resources to migrate type: array items: title: SupabaseMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file endpoint: description: Source's Supabase Endpoint type: string example: https://example.com format: url apiKey: description: Source's API Key type: string example: databaseHost: description: Source's Database Host type: string example: username: description: Source's Database Username type: string example: password: description: Source's Database Password type: string example: password format: password port: description: Source's Database Port type: integer default: 5432 example: 5432 format: int32 required: - resources - endpoint - apiKey - databaseHost - username - password /migrations/supabase/report: get: summary: Get Supabase migration report operationId: migrationsGetSupabaseReport tags: - Migrations description: Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. responses: '200': description: Migration Report content: application/json: schema: $ref: '#/components/schemas/migrationReport' deprecated: false x-appwrite: group: null demo: migrations/get-supabase-report.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: resources description: List of resources to migrate required: true schema: type: array items: title: SupabaseMigrationResource type: string oneOf: - type: string enum: - user title: user - type: string enum: - database title: database - type: string enum: - table title: table - type: string enum: - column title: column - type: string enum: - index title: index - type: string enum: - row title: row - type: string enum: - document title: document - type: string enum: - attribute title: attribute - type: string enum: - collection title: collection - type: string enum: - bucket title: bucket - type: string enum: - file title: file in: query - name: endpoint description: Source's Supabase Endpoint. required: true schema: type: string format: url example: https://example.com in: query - name: apiKey description: Source's API Key. required: true schema: type: string example: in: query - name: databaseHost description: Source's Database Host. required: true schema: type: string example: in: query - name: username description: Source's Database Username. required: true schema: type: string example: in: query - name: password description: Source's Database Password. required: true schema: type: string format: password example: password in: query - name: port description: Source's Database Port. required: false schema: type: integer format: int32 example: 5432 default: 5432 in: query /migrations/{migrationId}: get: summary: Get migration operationId: migrationsGet tags: - Migrations description: Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. responses: '200': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/get.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.read platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: migrationId description: Migration unique ID. required: true schema: type: string example: in: path patch: summary: Update retry migration operationId: migrationsRetry tags: - Migrations description: Retry a failed migration. This endpoint allows you to retry a migration that has previously failed. responses: '202': description: Migration content: application/json: schema: $ref: '#/components/schemas/migration' deprecated: false x-appwrite: group: null demo: migrations/retry.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: migrationId description: Migration unique ID. required: true schema: type: string example: in: path delete: summary: Delete migration operationId: migrationsDelete tags: - Migrations description: Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. responses: '204': description: No content deprecated: false x-appwrite: group: null demo: migrations/delete.md rate-limit: 0 rate-time: 3600 rate-key: url:{url},ip:{ip} scope: migrations.write platforms: - console packaging: false public: true auth: console: Project: [] security: - Project: [] parameters: - name: migrationId description: Migration ID. required: true schema: type: string example: in: path components: schemas: migrationReport: description: Migration Report type: object properties: user: type: integer description: Number of users to be migrated. format: int32 example: 20 team: type: integer description: Number of teams to be migrated. format: int32 example: 20 database: type: integer description: Number of databases to be migrated. format: int32 example: 20 row: type: integer description: Number of rows to be migrated. format: int32 example: 20 file: type: integer description: Number of files to be migrated. format: int32 example: 20 bucket: type: integer description: Number of buckets to be migrated. format: int32 example: 20 function: type: integer description: Number of functions to be migrated. format: int32 example: 20 platform: type: integer description: Number of platforms to be migrated. format: int32 example: 5 api-key: type: integer description: Number of API keys to be migrated. format: int32 example: 5 project-variable: type: integer description: Number of project variables to be migrated. format: int32 example: 5 webhook: type: integer description: Number of webhooks to be migrated. format: int32 example: 5 auth-methods: type: integer description: Number of auth-method configs to be migrated (always 0 or 1 — the project-level flag bundle). format: int32 example: 1 project-protocols: type: integer description: Number of protocol configs to be migrated (always 0 or 1 — the project-level REST/GraphQL/WebSocket flags). format: int32 example: 1 project-labels: type: integer description: Number of label sets to be migrated (always 0 or 1 — the project-level RBAC label array). format: int32 example: 1 project-services: type: integer description: Number of service configs to be migrated (always 0 or 1 — the project-level enable/disable flags for all 17 services). format: int32 example: 1 policies: type: integer description: Number of policy bundles to be migrated (always 0 or 1 — the project-level security policies covering password rules, session behavior, user limits, and membership privacy). format: int32 example: 1 smtp: type: integer description: Number of SMTP configurations to be migrated (always 0 or 1 — the project-level custom SMTP settings; password is not exposed by the source API). format: int32 example: 1 rule: type: integer description: Number of custom-domain proxy rules to be migrated. Auto-generated `.appwrite.network` rules are skipped — they are recreated by parent Function/Site migration. format: int32 example: 5 project-email-template: type: integer description: Number of custom email templates to be migrated (one per templateId × locale pair). format: int32 example: 7 site: type: integer description: Number of sites to be migrated. format: int32 example: 5 provider: type: integer description: Number of providers to be migrated. format: int32 example: 5 topic: type: integer description: Number of topics to be migrated. format: int32 example: 10 subscriber: type: integer description: Number of subscribers to be migrated. format: int32 example: 100 message: type: integer description: Number of messages to be migrated. format: int32 example: 50 size: type: integer description: Size of files to be migrated in mb. format: int32 example: 30000 version: type: string description: Version of the Appwrite instance to be migrated. example: 1.4.0 oauth2-provider: type: integer description: Number of OAuth2 provider configurations to be migrated. Secrets (clientSecret, p8File) are never migrated — destination admin must re-enter them per provider. format: int32 example: 5 backup-policy: type: integer description: Number of backup policies to be migrated. format: int32 example: 5 required: - user - team - database - row - file - bucket - function - platform - api-key - project-variable - webhook - auth-methods - project-protocols - project-labels - project-services - policies - smtp - rule - project-email-template - site - provider - topic - subscriber - message - size - version - oauth2-provider - backup-policy example: user: 20 team: 20 database: 20 row: 20 file: 20 bucket: 20 function: 20 platform: 5 api-key: 5 project-variable: 5 webhook: 5 auth-methods: 1 project-protocols: 1 project-labels: 1 project-services: 1 policies: 1 smtp: 1 rule: 5 project-email-template: 7 site: 5 provider: 5 topic: 10 subscriber: 100 message: 50 size: 30000 version: 1.4.0 oauth2-provider: 5 backup-policy: 5 migrationList: description: Migrations List type: object properties: total: type: integer description: Total number of migrations that matched your query. format: int32 example: 5 migrations: type: array description: List of migrations. items: $ref: '#/components/schemas/migration' example: [] required: - total - migrations example: total: 5 migrations: '' migration: description: Migration type: object properties: $id: type: string description: Migration ID. example: 5e5ea5c16897e $createdAt: type: string description: Migration creation date in ISO 8601 format. example: '2020-10-15T06:38:00.000+00:00' $updatedAt: type: string description: Variable creation date in ISO 8601 format. example: '2020-10-15T06:38:00.000+00:00' status: type: string description: 'Migration status ( pending, processing, failed, completed ) ' example: pending stage: type: string description: Migration stage ( init, processing, source-check, destination-check, migrating, finished ) example: init source: type: string description: A string containing the type of source of the migration. example: Appwrite destination: type: string description: A string containing the type of destination of the migration. example: Appwrite resources: type: array description: Resources to migrate. items: type: string example: - user resourceId: type: string description: ID of the resource being migrated. example: collectionId resourceInternalId: type: string description: Internal ID of the resource being migrated. example: '1' resourceType: type: string description: Type of the resource being migrated. example: collection parentResourceId: type: string description: ID of the parent resource that contains the migrated resource. example: databaseId parentResourceInternalId: type: string description: Internal ID of the parent resource that contains the migrated resource. example: '1' parentResourceType: type: string description: Type of the parent resource that contains the migrated resource. example: database destinationResourceId: type: string description: ID of the destination resource created or overwritten by the migration. example: databaseId destinationResourceInternalId: type: string description: Internal ID of the destination resource created or overwritten by the migration. example: '1' destinationResourceType: type: string description: Type of the destination resource created or overwritten by the migration. example: database statusCounters: type: object additionalProperties: true description: A group of counters that represent the total progress of the migration. example: Database: PENDING: 0 SUCCESS: 1 ERROR: 0 SKIP: 0 PROCESSING: 0 WARNING: 0 resourceData: type: array description: An array of objects containing the report data of the resources that were migrated. items: type: object example: - resource: Database id: public status: SUCCESS message: '' errors: type: array description: All errors that occurred during the migration process. items: type: string example: [] options: type: object additionalProperties: true description: Migration options used during the migration process. example: bucketId: exports notify: false required: - $id - $createdAt - $updatedAt - status - stage - source - destination - resources - resourceId - resourceInternalId - resourceType - parentResourceId - parentResourceInternalId - parentResourceType - destinationResourceId - destinationResourceInternalId - destinationResourceType - statusCounters - resourceData - errors - options example: $id: 5e5ea5c16897e $createdAt: '2020-10-15T06:38:00.000+00:00' $updatedAt: '2020-10-15T06:38:00.000+00:00' status: pending stage: init source: Appwrite destination: Appwrite resources: - user resourceId: collectionId resourceInternalId: '1' resourceType: collection parentResourceId: databaseId parentResourceInternalId: '1' parentResourceType: database destinationResourceId: databaseId destinationResourceInternalId: '1' destinationResourceType: database statusCounters: '{"Database": {"PENDING": 0, "SUCCESS": 1, "ERROR": 0, "SKIP": 0, "PROCESSING": 0, "WARNING": 0}}' resourceData: '[{"resource":"Database","id":"public","status":"SUCCESS","message":""}]' errors: [] options: '{"bucketId": "exports", "notify": false}' securitySchemes: Project: type: apiKey name: X-Appwrite-Project description: Your project ID in: header x-appwrite: platforms: - client - server - console demo: ProjectPath: type: apiKey name: project description: Your project ID in: query x-appwrite: location: path param: project_id platforms: - client - server - console demo: JWT: type: apiKey name: X-Appwrite-JWT description: Your secret JSON Web Token in: header x-appwrite: platforms: - client - server - console demo: Bearer: type: http scheme: bearer bearerFormat: JWT description: The OAuth access token to authenticate with x-appwrite: platforms: - client - server - console Locale: type: apiKey name: X-Appwrite-Locale description: '' in: header x-appwrite: platforms: - client - server - console demo: en Session: type: apiKey name: X-Appwrite-Session description: The user session to authenticate with in: header x-appwrite: platforms: - client - server - console DevKey: type: apiKey name: X-Appwrite-Dev-Key description: Your secret dev API key in: header x-appwrite: platforms: - client - server - console Cookie: type: apiKey name: Cookie description: The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes. in: header x-appwrite: platforms: - client - server - console ImpersonateUserId: type: apiKey name: X-Appwrite-Impersonate-User-Id description: Impersonate a user by ID in: header x-appwrite: platforms: - client - server - console ImpersonateUserEmail: type: apiKey name: X-Appwrite-Impersonate-User-Email description: Impersonate a user by email in: header x-appwrite: platforms: - client - server - console ImpersonateUserPhone: type: apiKey name: X-Appwrite-Impersonate-User-Phone description: Impersonate a user by phone in: header x-appwrite: platforms: - client - server - console Key: type: apiKey name: X-Appwrite-Key description: Your secret API key in: header x-appwrite: platforms: - server - console - manager demo: Organization: type: apiKey name: X-Appwrite-Organization description: Your organization ID in: header x-appwrite: platforms: - server - console demo: ForwardedUserAgent: type: apiKey name: X-Forwarded-User-Agent description: The user agent string of the client that made the request in: header x-appwrite: platforms: - server Mode: type: apiKey name: X-Appwrite-Mode description: '' in: header x-appwrite: platforms: - console demo: '' Platform: type: apiKey name: X-Appwrite-Platform description: The platform type (Appwrite or Imagine) in: header x-appwrite: platforms: - console externalDocs: description: Full API docs, specs and tutorials url: https://appwrite.io/docs