Xceptor Documents API

Operations for uploading, listing, and managing documents in the Xceptor platform.

OpenAPI Specification

xceptor-documents-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Xceptor Document Upload Authentication Documents API
  description: API for uploading and processing documents through Xceptor's data extraction engine. Supports intelligent document processing using NLP, OCR, and generative AI to transform unstructured documents including PDFs, emails, spreadsheets, and handwritten forms into structured, trusted data. The API handles document ingestion, classification, field and table extraction, and confidence-scored output for financial services use cases such as trade confirmations, tax documents, loan notices, and client onboarding materials.
  version: '1.0'
  contact:
    name: Xceptor API Support
    url: https://www.xceptor.com/support
    email: api-support@xceptor.com
  termsOfService: https://www.xceptor.com/legal-tcs
servers:
- url: https://api.xceptor.com/v1
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Documents
  description: Operations for uploading, listing, and managing documents in the Xceptor platform.
paths:
  /documents:
    get:
      operationId: listDocuments
      summary: Xceptor List documents
      description: Retrieves a paginated list of documents that have been uploaded to the Xceptor platform. Documents can be filtered by status, classification, and upload date. Each document includes metadata about its processing state and extracted data availability.
      tags:
      - Documents
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - name: status
        in: query
        description: Filter documents by processing status
        schema:
          type: string
          enum:
          - uploaded
          - classifying
          - classified
          - extracting
          - extracted
          - validated
          - failed
      - name: classification
        in: query
        description: Filter documents by their classified document type
        schema:
          type: string
      - name: uploaded_after
        in: query
        description: Filter documents uploaded after this date-time
        schema:
          type: string
          format: date-time
      - name: uploaded_before
        in: query
        description: Filter documents uploaded before this date-time
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: A paginated list of documents
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: uploadDocument
      summary: Xceptor Upload a document
      description: Uploads a document to the Xceptor platform for processing. The document is accepted in its original format and queued for classification and extraction. Supported formats include PDF, Microsoft Excel, CSV, XML, JSON, email (EML/MSG), and image files (PNG, JPG, TIFF). Documents can optionally be assigned to a specific extraction template.
      tags:
      - Documents
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: The document file to upload
                template_id:
                  type: string
                  format: uuid
                  description: The identifier of the extraction template to use. If omitted, automatic classification determines the template.
                workflow_id:
                  type: string
                  format: uuid
                  description: The identifier of a workflow to trigger after extraction completes
                metadata:
                  type: string
                  description: JSON-encoded metadata to associate with the document, such as source system identifiers or business context
      responses:
        '201':
          description: Document uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: Invalid file or request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: File size exceeds maximum allowed limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /documents/batch:
    post:
      operationId: uploadDocumentBatch
      summary: Xceptor Upload a batch of documents
      description: Uploads multiple documents in a single request for batch processing. All documents in the batch are processed using the same extraction template and workflow configuration. This is efficient for processing large volumes of similar documents such as trade confirmations or tax forms.
      tags:
      - Documents
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - files
              properties:
                files:
                  type: array
                  items:
                    type: string
                    format: binary
                  description: The document files to upload
                template_id:
                  type: string
                  format: uuid
                  description: The extraction template to apply to all documents
                workflow_id:
                  type: string
                  format: uuid
                  description: The workflow to trigger after extraction
      responses:
        '201':
          description: Batch upload accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchUploadResult'
        '400':
          description: Invalid files or request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /documents/{documentId}:
    get:
      operationId: getDocument
      summary: Xceptor Get document details
      description: Retrieves the details and processing status of a specific document, including its classification, extraction status, and links to extracted data when available.
      tags:
      - Documents
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      responses:
        '200':
          description: Document details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Document not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteDocument
      summary: Xceptor Delete a document
      description: Deletes a document and its associated extracted data from the Xceptor platform. Documents that are currently being processed cannot be deleted until processing completes or is cancelled.
      tags:
      - Documents
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      responses:
        '204':
          description: Document deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Document not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /documents/{documentId}/download:
    get:
      operationId: downloadDocument
      summary: Xceptor Download original document
      description: Downloads the original uploaded document file. Returns the file in its original format with appropriate content type headers.
      tags:
      - Documents
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      responses:
        '200':
          description: The original document file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Document not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    PageParam:
      name: page
      in: query
      description: The page number for pagination (1-based)
      schema:
        type: integer
        minimum: 1
        default: 1
    PageSizeParam:
      name: page_size
      in: query
      description: The number of items per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    DocumentIdParam:
      name: documentId
      in: path
      required: true
      description: The unique identifier of the document
      schema:
        type: string
        format: uuid
  schemas:
    BatchFileError:
      type: object
      description: An error associated with a specific file in a batch upload
      properties:
        filename:
          type: string
          description: The name of the file that was rejected
        error:
          $ref: '#/components/schemas/Error'
    Error:
      type: object
      description: An error response from the Xceptor API
      properties:
        code:
          type: string
          description: A machine-readable error code
        message:
          type: string
          description: A human-readable description of the error
        details:
          type: object
          description: Additional error details when available
          additionalProperties: true
    Document:
      type: object
      description: A document that has been uploaded to the Xceptor platform for intelligent data extraction and processing.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the document
        filename:
          type: string
          description: The original filename of the uploaded document
        content_type:
          type: string
          description: The MIME type of the uploaded document
        file_size:
          type: integer
          description: The file size in bytes
          minimum: 0
        status:
          type: string
          description: The current processing status of the document
          enum:
          - uploaded
          - classifying
          - classified
          - extracting
          - extracted
          - validated
          - failed
        classification:
          type: string
          description: The document type classification determined by AI or assigned by template
        template_id:
          type: string
          format: uuid
          description: The extraction template used for this document
        confidence_score:
          type: number
          description: The overall confidence score for the classification (0.0 to 1.0)
          minimum: 0.0
          maximum: 1.0
        page_count:
          type: integer
          description: The number of pages in the document
          minimum: 1
        uploaded_at:
          type: string
          format: date-time
          description: The date and time the document was uploaded
        processed_at:
          type: string
          format: date-time
          description: The date and time extraction was completed
        metadata:
          type: object
          description: Custom metadata associated with the document
          additionalProperties: true
    DocumentList:
      type: object
      description: A paginated list of documents
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: The list of documents for the current page
        pagination:
          $ref: '#/components/schemas/Pagination'
    Pagination:
      type: object
      description: Pagination information for list responses
      properties:
        page:
          type: integer
          description: The current page number
        page_size:
          type: integer
          description: The number of items per page
        total_items:
          type: integer
          description: The total number of items across all pages
        total_pages:
          type: integer
          description: The total number of pages
    BatchUploadResult:
      type: object
      description: The result of a batch document upload operation
      properties:
        batch_id:
          type: string
          format: uuid
          description: The unique identifier of the batch
        total_files:
          type: integer
          description: The total number of files in the batch
        accepted:
          type: integer
          description: The number of files accepted for processing
        rejected:
          type: integer
          description: The number of files rejected due to errors
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: The list of accepted documents
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BatchFileError'
          description: Errors for rejected files
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth2 access token obtained via the client credentials flow. Include as a Bearer token in the Authorization header.
externalDocs:
  description: Xceptor Document Upload API Documentation
  url: https://docs.xceptor.com/api/documents