v1

latestOpenAPI 3.0.3MIT OR Apache-2.02026-07-17203670.3 KB
ingestion

Ingest raw text or Markdown

Enqueue plain text or Markdown content for background ingestion. The content will be chunked, organized into a tree structure, and optionally summarized by the LLM.

Returns a job_id. Poll GET /v1/jobs/{job_id} for status and the resulting document ID.

post/v1/tables/{table_name}/ingest/text

Path parameters

table_namestring required
Example:legal_contracts

Table name or slug

Request body

titlestring required

Document title

contentstring required

Document content (plain text or Markdown)

generate_summariesboolean

Whether to generate LLM summaries (default: true)

tagsstring[]

Document tags for filtering

metadataobject

Custom metadata (author, contract_type, etc.)

Example request

{
  "title": "My Research Notes",
  "content": "# Introduction\n\nThis document covers...",
  "tags": [
    "nda",
    "confidential"
  ],
  "metadata": {
    "author": "Legal Team",
    "contract_type": "nda",
    "value_usd": 50000
  }
}

Response

Ingestion job queued

job_idstring

Unique job ID

status'queued' | 'processing' | 'completed' | 'failed'

Current job status

progressstring

Progress message (only present when status is 'processing')

errorstring

Error message (only present when status is 'failed')

created_atstring date-time

Job creation timestamp

updated_atstring date-time

Last status update timestamp

Example response

{
  "job_id": "job_abc123",
  "status": "queued",
  "progress": "Building document tree...",
  "result": {
    "document_id": "doc_abc123",
    "title": "Machine Learning Fundamentals",
    "total_nodes": 42,
    "max_depth": 4,
    "stats": {
      "chars_extracted": 50000,
      "chunks_created": 25,
      "nodes_created": 42,
      "summaries_generated": 42,
      "total_time_ms": 5230
    }
  },
  "error": "Failed to parse document",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:05Z"
}