Skip to main content
When you POST /v1/documents/ingest, Knowledge Stack starts a durable Temporal workflow that prepares, converts, chunks, enriches, and embeds the file. The endpoint returns immediately with a workflow_id you can poll. Files become searchable as soon as the workflow completes.
Looking for the request/response schema? See /v1/documents/ingest in the API Reference.

Ingest a document

Response (truncated):

Pipeline stages

Supported formats

PDF, DOCX, PPTX, XLSX, Markdown, plaintext. Hard limits: 100 MB per file, 150 pages per document.

Watch a workflow

Each ingest returns a workflow_id. Poll it via /v1/workflows:

Reliability model

  • Durable — each step runs as a Temporal activity with timeout + retry policy. The workflow survives worker crashes and infrastructure restarts.
  • Idempotent — chunking clears prior content before re-creating; storage uploads overwrite at the same paths; identical content is deduplicated per-tenant.
  • Observable — every step emits structured logs, metrics, and a span tree visible in the Temporal UI.

Retry classification

Per-step timeouts

Specialized task queues

Each stage is dispatched to its own queue so heavy work doesn’t block lighter work:

Re-embedding a folder

Switching embedding models? Trigger a folder-wide re-embed:
Recursive — applies to every document under the folder’s subtree.

Recipes

Bulk ingest from S3

Stream a whole bucket through /documents/ingest with backpressure.

CI ingest pipeline

Re-ingest changed docs on every PR using kscli.