Omni Content API

Unified content retrieval (documents and folders)

OpenAPI Specification

omni-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Omni AI Content API
  description: "The Omni REST API provides programmatic access to your Omni instance for managing users, documents, queries, schedules, and more.  \n"
  version: 1.0.0
  contact:
    name: Omni Support
    url: https://docs.omni.co
servers:
- url: https://{instance}.omniapp.co/api
  description: Production
  variables:
    instance:
      default: blobsrus
      description: Your production Omni instance subdomain
- url: https://{instance}.playground.exploreomni.dev/api
  description: Playground
  variables:
    instance:
      default: blobsrus
      description: Your playground Omni instance subdomain
security:
- bearerAuth: []
- orgApiKey: []
tags:
- name: Content
  description: Unified content retrieval (documents and folders)
paths:
  /v1/content:
    get:
      tags:
      - Content
      summary: Retrieve content
      description: Retrieve paginated list of documents and folders
      security:
      - bearerAuth: []
      operationId: getContent
      parameters:
      - name: labels
        in: query
        schema:
          type: string
        description: Filter content by labels. Provide as a comma-separated list (e.g., `finance,marketing`).
      - name: scope
        in: query
        schema:
          type: string
          enum:
          - restricted
          - organization
          default: organization
        description: Content scope filter
      - name: sortField
        in: query
        schema:
          type: string
          enum:
          - favorites
          - name
          - updatedAt
          default: name
        description: Field to sort by
      - $ref: '#/components/parameters/sortDirection'
      - name: include
        in: query
        schema:
          type: string
        description: 'Comma-separated list of additional fields to include in the response:

          - `_count` - Adds count metrics (folders: document and favorite counts; documents: favorite and view counts)

          - `labels` - Includes associated content labels

          '
      - name: folderId
        in: query
        schema:
          type: string
          format: uuid
        description: Returns all content in the specified folder. **Cannot be used with `path`.**
      - name: path
        in: query
        schema:
          type: string
        description: 'Filter content by path. **Cannot be used with `folderId`.** Examples:

          - `/folder/subfolder` - Returns the folder and any content it contains

          - `/folder/*` - Returns all folders and content recursively in the path

          - `/` - Returns all content in the organization

          '
      - name: creatorId
        in: query
        schema:
          type: string
          format: uuid
        description: UUID of organization membership. **Required when `scope` is `restricted`.**
      - name: pageSize
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        description: Number of records per page (1-100)
      - name: cursor
        in: query
        schema:
          type: string
        description: Pagination cursor from previous response
      responses:
        '200':
          description: Paginated content list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse'
        '400':
          description: 'Bad Request


            Possible error messages:

            - `Page size must be at least 1`

            - `Page size cannot exceed 100`

            - `Invalid sort field`

            - `creatorId required when scope is restricted`

            - `Unrecognized query parameters`

            - `folderId and path cannot be used together`

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: 'Not Found


            Possible error messages:

            - `User with id <uuid> does not exist`

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    PaginatedResponse:
      type: object
      properties:
        records:
          type: array
          items:
            type: object
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
    PageInfo:
      type: object
      description: Pagination information for paginated responses.
      properties:
        hasNextPage:
          type: boolean
          description: Indicates if there are more records available.
        nextCursor:
          type: string
          nullable: true
          description: Cursor for the next page of results. `null` if no more results.
        pageSize:
          type: integer
          description: Number of records per page.
        totalRecords:
          type: integer
          description: Total number of records matching the query.
    Error:
      type: object
      properties:
        error:
          type: string
          description: HTTP response code for the error
          example: <response_code>
        message:
          type: string
          description: Detailed error description
          example: <error_reason>
  parameters:
    sortDirection:
      name: sortDirection
      in: query
      schema:
        type: string
        enum:
        - asc
        - desc
      description: 'Direction for sorting:


        - `asc` - Ascending order (A-Z, 0-9)

        - `desc` - Descending order (Z-A, 9-0)

        '
  responses:
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded (60 requests/minute)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Can be either an [Organization API Key](/api/authentication#organization-api-keys) or [Personal Access Token (PAT)](/api/authentication#token-types).


        Include in the `Authorization` header as: `Bearer YOUR_TOKEN`

        '
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Requires an [Organization API Key](/api/authentication#organization-api-keys). Personal Access Tokens (PATs) are not supported for this endpoint.


        Include in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`

        '