Xceptor Documents API
Operations for uploading, listing, and managing documents in the Xceptor platform.
Operations for uploading, listing, and managing documents in the Xceptor platform.
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