Skip to main content

List your vaults

See all vaults in your organization.
Endpoint
Response

Get vault details

Get storage usage, document count, indexing status, and GraphRAG status for a specific vault.
Endpoint

Move vault to a group

Assign a vault to a group, move it between groups, or remove it from a group.
Endpoint
API keys scoped to specific groups cannot remove a vault from its group (groupId: null returns 403). See Groups → Scoped API keys for details.

List documents in a vault

See all files you’ve uploaded.
Endpoint
Response

Download a file

Get the original file you uploaded.
Endpoint

Get extracted text

Get the OCR’d or transcribed text from a document.
Endpoint

Get text by page

Get page-level text from a processed PDF or plain text object. Use start and end to request an inclusive 1-indexed page range, up to 500 pages per request.
Endpoint
cURL
Response
PDFs must finish ingestion before pages are available. metadata.source is ocr for PDF OCR text and txt for plain text fallback.

Update a document

Update a document’s filename, folder path, or custom metadata. Use this endpoint to rename files, organize them into virtual folders, or attach custom key-value metadata for filtering and categorization.
Endpoint

Update custom metadata

Attach custom key-value pairs to documents for filtering, categorization, or integration with your systems. Metadata is merged with existing values—only the fields you specify are updated.
Metadata is merged, not replaced. When you update metadata, your new fields are merged with existing metadata. To remove a field, set it to null.

Rename or move a document

Request body

Response
Virtual folders. The path field creates a virtual folder hierarchy stored in metadata. Use this to organize documents without affecting their storage location. Build folder trees by grouping objects with the same path prefix.

Create a merged PDF

POST /vault/:vaultId/objects/merge creates a new PDF from one or more ordered PDF objects. It returns 202 immediately; listen for vault.object.merge.completed or vault.object.merge.failed. Source objects are unchanged.
cURL
202 Response
Every source must have completed ingestion. Missing searchable renditions are generated on demand (via OCR) before combining; the operation does not fall back to the original file. Set sourceRendition to original to merge stored PDFs without generating OCR renditions; the output is searchable only if those originals already contain text. Requests support 1–20 unique sources, up to 5,000 pages and 1 GiB total. Bates numbering is continuous across every output page. Reusing an idempotency key with different inputs returns 409.

Append PDF objects onto an existing object

Append up to 20 PDF vault objects to the end of an existing PDF object. The target is overwritten in place: sizeBytes, pageCount, and checksum change, while id, filename, and ingestionStatus stay the same. Appended pages are not searchable.
Endpoint
cURL

Request body

All inputs must be PDFs. The append operation processes source objects sequentially to reduce peak memory use, but very large merges can still fail if the function runtime runs out of memory while serializing the merged PDF. The request fails while the target object is processing or deleting. When rewriteLinks is true, a link is rewritten only if it contains exactly one appendObjectIds value as a full decoded query parameter value or full decoded path segment, plus a valid page or pageNumber. Substring matches are ignored.
Back links use standard internal PDF destinations, not PDF JavaScript. Pages reached by a rewritten link point back to the citing target page; other appended pages point back to the first target page.

Delete a document

Remove a single file and all its search data.
Endpoint

Force delete stuck documents

If a document gets stuck in processing status (e.g., due to an OCR timeout), you can force delete it:
When to use force delete. Use force=true only when a document is stuck in “processing” status and won’t complete. This can happen in rare cases like OCR timeouts. The force option bypasses the safety check that prevents deletion during active ingestion.
Permanent. This deletes the file, extracted text, and all search vectors. Cannot be undone.

Delete a vault

Remove an entire vault and everything in it.
Endpoint
For large vaults (100+ documents), use async deletion:
Permanent. This deletes all documents, search indexes, knowledge graphs, and storage. Cannot be undone.