> ## 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.

# Get file types

> This endpoint is used to get all the file types that are available in the workspace.

The response will contain a list of file types that are associated with the workspace and their respective properties.

The response will contain a list of file types that are associated with the workspace and their respective properties.

## Query Parameters

| Parameter | Type   | Required | Default     | Description                      |
| --------- | ------ | -------- | ----------- | -------------------------------- |
| page      | number | No       | 1           | Page number for pagination       |
| limit     | number | No       | 100         | Number of items per page         |
| sortBy    | string | No       | `createdAt` | Field to sort by                 |
| sortOrder | string | No       | `ASC`       | Sort direction (`ASC` or `DESC`) |

The response shape is `{ fileTypes, count, currentPage }`.

<Warning>
  A `cursor` parameter is listed on this endpoint because it comes from the shared
  pagination parameter set, but cursor pagination is **not implemented here** —
  sending `cursor` is accepted and ignored, and you still get the `page`/`limit`
  response. Use `page` and `limit`. See
  [Pagination](/docs-api/api-pagination) for the endpoints that do support it.
</Warning>


## OpenAPI

````yaml get /prod/v1/file-type
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/file-type:
    get:
      tags:
        - Public API V1
      summary: Get file types
      description: >-
        This endpoint is used to get all the file types that are available in
        the workspace.


        The response will contain a list of file types that are associated with
        the workspace and their respective properties.
      operationId: PublicAPIController_getAllFileTypes
      parameters:
        - name: page
          required: false
          in: query
          description: Page number
          schema:
            default: 1
            example: 1
            type: number
        - name: limit
          required: false
          in: query
          description: Number of items per page
          schema:
            default: 100
            example: 100
            type: number
        - name: sortBy
          required: false
          in: query
          description: Field to sort by
          schema:
            default: createdAt
            example: createdAt
            type: string
        - name: sortOrder
          required: false
          in: query
          description: Sort direction
          schema:
            default: ASC
            example: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: cursor
          required: false
          in: query
          description: >-
            Opaque pagination cursor. Provide the parameter (empty value for the
            first page) to switch to cursor pagination: the response becomes {
            data, pagination: { limit, nextCursor, hasMore } } with default
            limit 50 (max 100). Omit it entirely for legacy page/limit
            pagination. In cursor mode sortBy must be one of createdAt,
            updatedAt, _id, and cursors are bound to the sortBy/sortOrder they
            were minted with.
          schema:
            type: string
      responses:
        '200':
          description: The file types are retrieved
          content:
            application/json:
              example:
                fileTypes:
                  - id: 671290be60a313d55c800016
                    name: Invoice
                    description: An
                    classId: ''
                    className: Invoice
                    isDeleted: false
                    isPublished: true
                    createdAt: '2024-10-18T16:45:50.064Z'
                    updatedAt: '2024-10-18T16:45:50.064Z'
                    isHero: true
                    mode: system
                    usageApprovalState: approved
                    currentSchemaVersion:
                      id: 6825b293e4045050159a9012
                      fields: []
                      blueprintId: 671290be60a313d55c800016
                      originalSchemaId: 6822f82f8e71384720e3b233
                      blueprintMode: user
                      schemaType: custom
                      state: active
                      usageApprovalState: approved
                      createdAt: '2025-05-15T09:23:31.609Z'
                      updatedAt: '2025-05-15T09:23:31.609Z'
                      isCurrentVersion: true
                      versionNumber: 10
                      versionMinorNumber: 5
                      versionName: '1.5'
                      versionDescription: ''
                      metadata:
                        lastModifiedBy: 68217fe644185d6150db54a8
                        userId: 68217fe644185d6150db54a8
                        organizationId: 68218006ebc72170fdb221f7
                        workspaceId: 68218006ebc72170fdb221f2
                      versionDisplayName: ''
                count: 1
                currentPage: 1
              schema:
                type: object
                properties:
                  fileTypes:
                    type: array
                    items:
                      type: object
                  count:
                    type: number
                  currentPage:
                    type: number
        '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:
    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

````