- Document Conversion — Convert PDFs, DOCX files, and images to clean Markdown
- Data Extraction — Use custom extractors to pull structured data from documents
- Collections & Chat — Build collections of documents and ask questions against them, with page-level citations
Base URL
All API requests should be made to:Quick Start
Convert a Document to Markdown
Run an Extractor
Ask a Question Against a Collection
API Endpoints
Documents
Extractors
Collections & Files
Chat
Request Format
Authentication
All requests require a Bearer token in the Authorization header:Content Types
- File uploads:
multipart/form-data - JSON requests:
application/json
Response Format
All responses are JSON. Successful responses include the requested data:Error Handling
The API uses standard HTTP status codes:
Error responses carry a structured
error envelope alongside the legacy detail field (see Conventions for the full list of error types):
detail:
Processing Flow
Document processing is asynchronous:- Upload — Submit your document via
POST /documentsorPOST /e/{slug} - Queue — Document enters the processing queue (
PENDING) - Process — Document is being converted or extracted (
PROCESSING) - Complete — Results are ready for download (
COMPLETED)
GET /documents/{id} to check status, or provide a callback_url to receive webhook notifications.
Webhooks
Provide acallback_url when creating a document to receive a POST notification when processing completes:
Rate Limits
API requests are rate-limited based on your plan. If you exceed the limit, requests return429 Too Many Requests. Wait and retry with exponential backoff.
Support
- Email: support@doctly.ai
- GitHub: github.com/doctly/doctly/issues

