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

# Export schemas

> Export one or more schemas to a downloadable zip file.

**Request Body:**
- `aiSchemaIds` (string, required): Comma-separated list of schema IDs to export

**Response:**
- `exportedFileDownloadUrl` (string): Pre-signed URL to download the exported zip file (valid for 1 hour)
- `s3Path` (string): S3 path where the file is stored
- `fileName` (string): Name of the exported file

**Example:**
```json
{
  "aiSchemaIds": "649e2d2d2d2d2d2d2d2d2d2d,649e2d2d2d2d2d2d2d2d2d2e"
}
```

Export one or more schemas to a downloadable zip file. This endpoint allows you to backup or transfer your AI schemas between workspaces.

<Info>
  The exported zip file contains all schema definitions, field mappings, and
  related metadata needed to recreate the schemas.
</Info>

## How It Works

<Steps>
  <Step title="1. Select Schemas">
    Choose which schemas to export by providing their IDs
  </Step>

  <Step title="2. Export Request">
    Send the schema IDs to receive a pre-signed download URL
  </Step>

  <Step title="3. Download File">
    Use the pre-signed URL to download the exported zip file
  </Step>
</Steps>

## Request Parameters

### Request Body

The request body must contain a JSON object with the following property:

| Property    | Type   | Required | Description                                  |
| ----------- | ------ | -------- | -------------------------------------------- |
| aiSchemaIds | string | Yes      | Comma-separated list of schema IDs to export |

**Example Request Body:**

```json theme={null}
{
  "aiSchemaIds": "649e2d2d2d2d2d2d2d2d2d2d,649e2d2d2d2d2d2d2d2d2d2e"
}
```

## Downloading the Exported File

<Warning>
  The pre-signed download URL is valid for **1 hour** only. Download the file
  promptly.
</Warning>

```bash theme={null}
# Use the download URL from the response
curl -o exported-schemas.zip "https://s3.amazonaws.com/bucket/exported-schemas.zip?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=...&Expires=3600"
```

## Export File Contents

The exported zip file contains:

* **Schema definitions** - JSON files with field mappings and validation rules
* **Blueprint configurations** - Document type classifications and extraction rules
* **Metadata** - Creation timestamps, version information, and relationships

<Note>
  Exported schemas can be imported into other workspaces using the
  `/prod/v1/files/schema/import` endpoint.
</Note>

## Best Practices

* **Regular backups** - Export schemas periodically to maintain backups
* **Workspace transfers** - Use export/import to move schemas between workspaces
* **Version control** - Keep track of exported files for schema versioning
* **Validate before import** - Review exported contents before importing to new workspaces

<Note>
  This endpoint accepts an optional `Idempotency-Key` request header so a retry
  cannot apply the change twice. See
  [Idempotent requests](/docs-api/api-idempotency).
</Note>


## OpenAPI

````yaml post /prod/v1/files/schema/export
openapi: 3.0.0
info:
  title: Public API
  description: >-

    ### Welcome to fileAI’s Public API Documentation.

    This API allows users to check the health of the system, upload and manage
    files, and manage AI Schemas.

    Should you have any questions, please reach out to fileAI via the “Contact a
    Developer” link below.



    [Contact a Developer](mailto:support@file.ai)



    ### Prerequisites


    Before using our API, please ensure you complete the following prerequisites

    - You must have a fileAI account. Sign up or login
    [here](https://orion.file.ai/en/sign-up)

    - You must have an API Key. After creating your fileAI account, you can
    generate your API Key. Refer to the Authentication section below for more
    details.



    ### Authentication

    All API requests require an API key for authentication.

    - To obtain your API key, please log in to your fileAI account and navigate
    to Project Settings in your dashboard

    - Keep your API key secure and do not share it publicly.


    ![Authentication](https://static.orion.file.ai/authentication.png)


    ### How to Use Your API Key

    Once you have your API key:

    - Click the Authorize button on the top-right of this page

    - Enter your API Key under Value

    - Click Authorize to start making authenticated requests directly from the
    documentation


    ![How to Use Your API
    Key](https://static.orion.file.ai/how-to-use-api-keys.png)
        
  version: '1.0'
  contact: {}
servers:
  - url: https://api.orion.file.ai
    description: Default. Use this unless your workspace is on an instance.
  - url: https://api.orion.{instance}.file.ai
    description: Instance-specific host.
    variables:
      instance:
        default: au
        enum:
          - au
          - sg
          - jp
        description: >-
          Instance hosting your workspace: au (Australia), sg (Singapore), jp
          (Japan).
security: []
tags:
  - name: Public API V1
paths:
  /prod/v1/files/schema/export:
    post:
      tags:
        - Public API V1
      summary: Export schemas
      description: >-
        Export one or more schemas to a downloadable zip file.


        **Request Body:**

        - `aiSchemaIds` (string, required): Comma-separated list of schema IDs
        to export


        **Response:**

        - `exportedFileDownloadUrl` (string): Pre-signed URL to download the
        exported zip file (valid for 1 hour)

        - `s3Path` (string): S3 path where the file is stored

        - `fileName` (string): Name of the exported file


        **Example:**

        ```json

        {
          "aiSchemaIds": "649e2d2d2d2d2d2d2d2d2d2d,649e2d2d2d2d2d2d2d2d2d2e"
        }

        ```
      operationId: PublicAPIController_exportBlueprints
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Optional opaque key (max 255 chars, UUIDv4 recommended) making this
            request idempotent for 24h: a retry with the same key and body
            replays the original response with Idempotent-Replayed: true.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportBlueprintsForPAInput'
      responses:
        '200':
          description: Schemas exported successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportBlueprintsForPAOutput'
        '400':
          description: Bad Request - Invalid blueprint IDs
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '401':
          description: Missing or invalid API key.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '403':
          description: Read-only or inactive API key.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '404':
          description: Resource not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '422':
          description: Validation failed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '429':
          description: Rate limit exceeded.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
        '500':
          description: Unexpected internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
      security:
        - x-api-key: []
components:
  schemas:
    ExportBlueprintsForPAInput:
      type: object
      properties:
        aiSchemaIds:
          type: string
          description: AISchemaIds IDs to export (comma-separated)
          example: 649e2d2d2d2d2d2d2d2d2d2d,649e2d2d2d2d2d2d2d2d2d2e
      required:
        - aiSchemaIds
    ExportBlueprintsForPAOutput:
      type: object
      properties:
        exportedFileDownloadUrl:
          type: string
          description: Exported file download URL
        s3Path:
          type: string
          description: S3 path of the exported file
        fileName:
          type: string
          description: File name
      required:
        - exportedFileDownloadUrl
        - s3Path
        - fileName
    ProblemDetailsDto:
      type: object
      properties:
        type:
          type: string
          description: A URI identifying the problem type.
          example: https://errors.file.ai/validation-failed
        title:
          type: string
          description: Stable, human-readable summary of the problem type.
          example: Validation failed
        status:
          type: number
          description: HTTP status code.
          example: 422
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence.
          example: One or more fields are invalid.
        instance:
          type: string
          description: URI reference for this occurrence (the request path).
          example: /v1/files/upload
        code:
          type: string
          description: Stable machine-readable error code.
          example: VALIDATION_FAILED
        requestId:
          type: string
          description: Correlation id for this request.
          example: 0f1c8e03-978e-40d5-bc93-6894a57f9324
        errors:
          description: Field-level violations (validation only).
          type: array
          items:
            $ref: '#/components/schemas/ProblemErrorItemDto'
        retryAfter:
          type: number
          description: Seconds until the client may retry (present on 429 only).
          example: 42
        message:
          type: string
          description: Legacy key (deprecated — use `detail`/`title`).
          example: Validation failed
        error:
          type: string
          description: Legacy key (deprecated — use `title`).
          example: Unprocessable Entity
        statusCode:
          type: number
          description: Legacy key (deprecated — use `status`).
          example: 422
      required:
        - type
        - title
        - status
        - detail
        - instance
        - code
        - requestId
        - errors
        - message
        - error
        - statusCode
    ProblemErrorItemDto:
      type: object
      properties:
        code:
          type: string
          example: REQUIRED
        detail:
          type: string
          example: must not be empty
        pointer:
          type: string
          description: JSON Pointer to the offending body field.
          example: '#/fileName'
        parameter:
          type: string
          description: Name of the offending query/header parameter.
          example: limit
      required:
        - code
        - detail
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````