H2O.ai Document Ingestion API

The Document Ingestion API from H2O.ai — 21 operation(s) for document ingestion.

OpenAPI Specification

h2o-ai-document-ingestion-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: h2oGPTe REST Document Ingestion API
  description: "\n# Overview \n\nUsers can easily interact with the h2oGPTe API through its REST API, allowing HTTP requests from any programming language.\n\n## Authorization: Getting an API key\n\nSign up/in at Enterprise h2oGPTe and generate one of the following two types of API keys: \n\n- **Global API key**: If a Collection is not specified when creating a new API Key, that key is considered to be a global API Key. Use global API Keys to grant full user impersonation and system-wide access to all of your work. Anyone with access to one of your global API Keys can create, delete, or interact with any of your past, current, and future Collections, Documents, Chats, and settings.\n\n- **Collection-specific API key**: Use Collection-specific API Keys to grant external access to only Chat with a specified Collection and make related API calls to it. Collection-specific API keys do not allow other API calls, such as creation, deletion, or access to other Collections or Chats.\n \nAccess Enterprise h2oGPTe through your [H2O Generative AI](https://genai.h2o.ai/appstore) app store account, available with a freemium tier.\n\n## Authorization: Using an API key \n\nAll h2oGPTe REST API requests must include an API Key in the \"Authorization\" HTTP header, formatted as follows:\n\n```\nAuthorization: Bearer sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n```\n\n```sh\ncurl -X 'POST' \\\n  'https://h2ogpte.genai.h2o.ai/api/v1/collections' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \\\n  -d '{\n    \"name\": \"The name of my Collection\",\n    \"description\": \"The description of my Collection\",\n    \"embedding_model\": \"BAAI/bge-large-en-v1.5\"\n  }'\n```\n    \n## Interactive h2oGPTe API testing\n\nThis page only showcases the h2oGPTe REST API; you can test it directly in the [Swagger UI](https://h2ogpte.genai.h2o.ai/swagger-ui/). Ensure that you are logged into your Enterprise h2oGPTe account.\n"
  version: v1.0.0
servers:
- url: https://h2ogpte.genai.h2o.ai/api/v1
security:
- bearerAuth: []
tags:
- name: Document Ingestion
paths:
  /uploads:
    put:
      operationId: upload_file
      description: Uploads file to H2OGPTe instance
      tags:
      - Document Ingestion
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadedFile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /uploads/{upload_ids}/ingest:
    post:
      tags:
      - Document Ingestion
      summary: Ingest uploaded document
      description: Ingests uploaded document identified to a given collection
      operationId: ingest_upload
      parameters:
      - $ref: '#/components/parameters/IngestionParameterUploadIds'
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/IngestionParameterRestricted'
      - $ref: '#/components/parameters/IngestionParameterPermissions'
      - $ref: '#/components/parameters/IngestionParameterEncryptDocument'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestUploadBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /uploads/{upload_ids}/ingest/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to ingest uploaded document
      description: Creates a job to ingest uploaded document identified to a given collection
      operationId: create_ingest_upload_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterUploadIds'
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/IngestionParameterRestricted'
      - $ref: '#/components/parameters/IngestionParameterPermissions'
      - $ref: '#/components/parameters/IngestionParameterEncryptDocument'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestUploadBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/file_system:
    post:
      tags:
      - Document Ingestion
      summary: Adds files from the local system into a collection.
      description: Adds files from the local system into a collection.
      operationId: ingest_from_file_system
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromFileSystemBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/file_system/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add files from the local system into a collection.
      description: Creates a job to add files from the local system into a collection.
      operationId: create_ingest_from_file_system_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromFileSystemBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/plain_text:
    post:
      tags:
      - Document Ingestion
      summary: Adds plain text to a collection.
      description: Adds plain text to a collection.
      operationId: ingest_from_plain_text
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterFileName'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/Timeout'
      - $ref: '#/components/parameters/IngestionParameterMetadata'
      requestBody:
        description: The text that will ingested into a collection.
        required: true
        content:
          text/plain:
            schema:
              type: string
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/plain_text/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add plain text to a collection.
      description: Creates a job to add plain text to a collection.
      operationId: create_ingest_from_plain_text_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterFileName'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterMetadata'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        description: The text that will ingested into a collection.
        required: true
        content:
          text/plain:
            schema:
              type: string
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/website:
    post:
      tags:
      - Document Ingestion
      summary: Crawls and ingest a URL into a collection.
      description: Crawls and ingest a URL into a collection. The web page or document linked from this URL will be imported.
      operationId: ingest_from_website
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterFollowLinks'
      - $ref: '#/components/parameters/IngestionParameterMaxDepth'
      - $ref: '#/components/parameters/IngestionParameterMaxDocuments'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromWebsiteBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/website/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to crawl and ingest a URL into a collection.
      description: Creates a job to crawl and ingest a URL into a collection. The web page or document linked from this URL will be imported.
      operationId: create_ingest_from_website_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterFollowLinks'
      - $ref: '#/components/parameters/IngestionParameterMaxDepth'
      - $ref: '#/components/parameters/IngestionParameterMaxDocuments'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromWebsiteBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/agent_only_to_standard:
    post:
      tags:
      - Document Ingestion
      summary: Converts files uploaded in "agent_only" ingest mode  to PDF and parses them.
      description: Converts files uploaded in "agent_only" ingest mode  to PDF and parses them.
      operationId: ingest_agent_only_to_standard
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterDocumentId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterRestricted'
      - $ref: '#/components/parameters/IngestionParameterPermissions'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/Timeout'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/agent_only_to_standard/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to parse files uploaded in "agent_only" ingest mode.
      description: Creates a job to parse files uploaded in "agent_only" ingest mode.
      operationId: create_ingest_agent_only_to_standard_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterDocumentId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterRestricted'
      - $ref: '#/components/parameters/IngestionParameterPermissions'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/Timeout'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/s3:
    post:
      tags:
      - Document Ingestion
      summary: Adds files from the AWS S3 storage into a collection.
      description: Adds files from the AWS S3 storage into a collection.
      operationId: ingest_from_s3
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromS3Body'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/s3/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add files from the AWS S3 storage into a collection.
      description: Creates a job to add files from the AWS S3 storage into a collection.
      operationId: create_ingest_from_s3_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromS3Body'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/gcs:
    post:
      tags:
      - Document Ingestion
      summary: Adds files from the Google Cloud Storage into a collection.
      description: Adds files from the Google Cloud Storage into a collection.
      operationId: ingest_from_gcs
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromGcsBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/gcs/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add files from the Google Cloud Storage into a collection.
      description: Creates a job to add files from the Google Cloud Storage into a collection.
      operationId: create_ingest_from_gcs_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromGcsBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/azure_blob_storage:
    post:
      tags:
      - Document Ingestion
      summary: Adds files from the Azure Blob Storage into a collection.
      description: Adds files from the Azure Blob Storage into a collection.
      operationId: ingest_from_azure_blob_storage
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromAzureBlobStorageBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/azure_blob_storage/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add files from the Azure Blob Storage into a collection.
      description: Creates a job to add files from the Azure Blob Storage into a collection.
      operationId: create_ingest_from_azure_blob_storage_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromAzureBlobStorageBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/sharepoint_online:
    post:
      tags:
      - Document Ingestion
      summary: Adds files from SharePoint Online into a collection.
      description: 'Adds files from Microsoft SharePoint Online into a collection. Accepts a

        list of entries — sites, drives, folders, or files — each identified by

        the drive_id and object_id returned by the connector browse API.


        To ingest from a drive that is only addressable by its drive_id (for

        example a OneDrive personal drive, a Microsoft 365 group drive, or any

        drive in a non-discoverable site) pass an entry with

        entry_type="drive_by_id" and the drive_id field set.

        '
      operationId: ingest_from_sharepoint_online
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromSharepointOnlineBody'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/sharepoint_online/job:
    post:
      tags:
      - Document Ingestion
      summary: Creates a job to add files from SharePoint Online into a collection.
      description: 'Creates a job to add files from Microsoft SharePoint Online into a

        collection. See ingest_from_sharepoint_online for details on the entry

        shape — including how to target a drive by its drive_id.

        '
      operationId: create_ingest_from_sharepoint_online_job
      parameters:
      - $ref: '#/components/parameters/IngestionParameterCollectionId'
      - $ref: '#/components/parameters/IngestionParameterGenDocSummaries'
      - $ref: '#/components/parameters/IngestionParameterGenDocQuestions'
      - $ref: '#/components/parameters/IngestionParameterAudioInputLanguage'
      - $ref: '#/components/parameters/IngestionParameterOcrModel'
      - $ref: '#/components/parameters/IngestionParameterTesseractLang'
      - $ref: '#/components/parameters/IngestionParameterKeepTablesAsOneChunk'
      - $ref: '#/components/parameters/IngestionParameterChunkByPage'
      - $ref: '#/components/parameters/IngestionParameterHandwritingCheck'
      - $ref: '#/components/parameters/IngestionParameterIngestMode'
      - $ref: '#/components/parameters/Timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestFromSharepointOnlineBody'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        default:
          $ref: '#/components/responses/Unexpected'
  /ingest/confluence:
    post:
      tags:
      - Document Ingestion
      summary: Ingests confluence pages into collection.
      description: Ingests confluence pages into collection. If an ing

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/h2o-ai/refs/heads/main/openapi/h2o-ai-document-ingestion-api-openapi.yml