Insert text
For short content that fits in a JSON body (< ~1MB):InsertOptions
| Field | Type | Default | Description |
|---|---|---|---|
content | string | required | The text to ingest. |
title | string | — | Human-readable title. Shown in source citations. |
tags | string[] | — | Tags for later filtering (future). |
metadata | Record<string, unknown> | — | Free-form metadata stored with the document. |
wait | boolean | true | If true, block until the extraction job completes. |
Upload a file
PDFs, CSVs, markdown, plain text. Images are extracted from PDFs automatically.- Node
- Browser / Blob
- Bun
Supported file types
- PDF (text + tables + images)
- CSV
- Markdown
- Plain text (.txt)
- DOCX
Poll async jobs manually
If you setwait: false and want to poll yourself:
waitForJob:
JobStatus values
status | Meaning |
|---|---|
pending | Job accepted, not started. |
chunking | Splitting content into chunks. |
extracting | LLM extracting facts + entities. |
storing | Writing to Neptune + OpenSearch. |
completed | Done. Content is now queryable. |
failed | See error_details. |
Upload polling
Uploads have their own status endpoint because the pipeline goes: upload → file processor → fact extraction → ready.wait: true handles polling automatically; to do it manually: