Send a drawing set or specification PDF. You get back a document_id that every analysis uses. Start here: every analysis needs an uploaded document.
Returns a document_idthat you pass to every detection and parsing endpoint. Documents are stored for the duration of your tier's retention window and then are automatically deleted.
Returns
A document ID201 Created · document_id
Body
Your PDFmultipart form data
Next step
Start an analysisany drawing or spec endpoint
Auth
API keyX-API-Key header
Request
Send the PDF as multipart form data along with your X-API-Key header. Body must be multipart/form-data — do not JSON-encode it. Only PDF files are accepted.
Field
Description
filebinaryRequired
The PDF file. Filename is preserved in original_filename. Maximum size depends on your tier — see Size limits & retention below.
Header
Description
X-API-KeyRequired
Your API key. A missing or invalid key returns 401.
Content-TypeRequired
multipart/form-data — most HTTP clients set this automatically when you attach a file.
This endpoint does not accept a JSON body. Set Content-Type to multipart/form-data (most HTTP clients handle this automatically when you attach a file).
Response
201 Created. Returns the document object immediately. Save the document_id — it is the only way to reference this document in subsequent API calls.
Field
Description
document_idstring · UUID
Stable identifier for the uploaded document. Pass this to detection and parsing endpoints.
original_filenamestring
The filename sent with the upload.
file_size_bytesinteger
Size of the stored PDF in bytes.
page_countinteger
Number of pages in the PDF. Use this to build valid page_numbers arrays for detection calls.
mime_typestring
Always application/pdf.
tierstring
Your account tier at the time of upload (free, developer, pro, enterprise).
uploaded_atstring · ISO 8601
When the document was stored.
expires_atstring · ISO 8601
When the document will be deleted. Retention window is tier-dependent.
download_urlstring
Presigned URL for downloading the original PDF. Valid for 15 minutes.
download_url_expires_in_secondsinteger
Always 900. Re-fetch via GET /v1/documents/{id} for a fresh URL.
Size limits & retention
Plan
Maximum file size
Retention
free
50 MB
30 days
developer
100 MB
30 days
pro
150 MB
90 days
enterprise
200 MB
Custom
Status
What it means
413PDF_TOO_LARGE
File exceeds the maximum for your tier. Compress or split the PDF before re-uploading.
422PDF_ENCRYPTED
Password-protected PDFs cannot be processed. Remove the password and re-upload.