id in document_ids when creating a quote.
Direct upload
Send the file as multipart form data. Processing is synchronous — the response returns statusready:
Ingest by URL
Send a JSON body with aurl and we download it in the background. The response
is 202 with status pending:
- Webhooks — subscribe to
file.ready/file.failed(recommended). - Polling —
GET /v1/files/{id}untilstatusisreadyorfailed(failure_messageexplains failures).
File states
Rules
- Supported types: PDFs, images (JPEG/PNG/HEIC/TIFF), Microsoft Office documents, text, RTF, and ZIP archives. Maximum size 150 MB.
- Single use: attaching a file to a quote consumes it. To use the same document on another quote, upload it again.
- Files must be
readyand unconsumed when referenced indocument_ids, otherwise quote creation returns a422validation error for that entry. - You can also skip the files API entirely and pass
document_urlsdirectly when creating a quote.