Skip to main content

API FAQ

Technical questions and answers for developers integrating with Unsiloed AI’s APIs for ingesting multimodal unstructured data and converting it into structured Markdown and JSON.

Getting Started with the API

How do I get API access?

  1. Sign up - Sign up on Unsiloed AI to get access
  2. Get your API keys - We’ll provide you with API credentials to get started
  3. Start making requests using our endpoints
  4. Monitor usage and track your API activity
  5. Scale up as your needs grow

What is the base URL for the API?

The base URL for all API endpoints is:

How do I authenticate API requests?

We use API key authentication. Include your API key in the request headers:
Or for some endpoints that use Bearer tokens:
Keep your API keys secure and never expose them in client-side code or public repositories.

API Endpoints and Usage

What are the main API endpoints?

Our core endpoints for converting unstructured data to structured formats:
  • Extraction: POST /v2/extract - Extract structured data using JSON schemas, returns job_id
  • Extraction Status: GET /extract/{job_id} - Get extraction results with confidence scores
  • Parsing: POST /parse - Parse documents into structured chunks with metadata
  • Parsing Status: GET /parse/{job_id} - Get parsed content with element types
  • Classification: POST /classify - Classify documents into categories
  • Classification Status: GET /classify/{job_id} - Get classification with confidence
  • Splitting: POST /splitter - Split multi-document PDFs by category
  • Splitting Status: GET /splitter/{job_id} - Get split results

What HTTP methods are supported?

Most endpoints use POST requests for document processing:
  • POST - Submit documents for processing
  • GET - Retrieve job status and results (for async operations)
  • DELETE - Cancel processing jobs

How do I handle file uploads?

Use multipart/form-data for file uploads:

Rate Limits and Quotas

What are the API rate limits?

Rate limits are measured in requests per second, per organization, and depend on your plan and the endpoint. The Rate Limits reference has the full table. If you don’t have access to it, contact your account team.

How do I handle rate limiting?

When you exceed rate limits, you’ll receive a 429 Too Many Requests response. When the platform is busy, you’ll receive a 503 Service Unavailable. Retry both, waiting for the number of seconds in the Retry-After header:
See Capacity and Backpressure for what a 503 means and how to retry it.

What happens if I exceed my quota?

  • Free tier: Processing stops until next billing cycle
  • Paid plans: Overage charges apply
  • Enterprise: Custom arrangements available

Error Handling

What HTTP status codes should I expect?

Common status codes:
  • 200 - Success
  • 400 - Bad Request (invalid parameters)
  • 401 - Unauthorized (invalid API key)
  • 402 - Payment Required (usage quota or credits exhausted)
  • 413 - Payload Too Large (file size exceeded)
  • 429 - Too Many Requests (rate limited)
  • 500 - Internal Server Error
  • 503 - Service Unavailable (platform busy; retry after Retry-After seconds)

How should I handle errors?

Always check the response status and handle errors appropriately:

What error information is provided?

Error responses use this format. code is a machine-readable error code such as rate_limited or quota_exceeded, and details is included only for some errors:

Document Processing

What file formats are supported via API?

Supported formats:
  • PDF: Including scanned PDFs
  • Images: PNG, JPEG, TIFF, WebP
  • Documents: DOCX, TXT

What’s the maximum file size?

  • Standard: 100MB per file
  • Enterprise: Custom limits available

How do I process multiple files?

Use the batch processing endpoint:

Response Formats

What format do API responses use?

All responses are in JSON format:

How do I handle binary responses?

Some endpoints (like document splitting) return ZIP files:

Webhooks and Async Processing

Do you support webhooks?

Yes! Configure webhooks in your dashboard to receive notifications when processing completes:

How do I handle long-running processes?

For large documents, use async processing:
  1. Submit job: Receive a job_id
  2. Poll status: Check /jobs/{job_id}/status
  3. Retrieve results: Get results when status is completed

SDK and Libraries

Do you provide SDKs?

We provide official SDKs for:
  • Python: pip install unsiloed-ai
  • JavaScript/Node.js: npm install unsiloed-ai
  • More languages: Coming soon

How do I use the Python SDK?


API Reference

Complete API documentation with examples

Try the Playground

Test API endpoints interactively