Skip to main content
POST
Create vector database ingestion job
Submit file IDs and chunking configuration to start a vector database ingestion job. The system converts files, generates embeddings, and indexes them in the specified database. The response includes a file_records array with per-file tracking. Each record contains the file’s status, timestamps for each state transition, and error diagnostics if a failure occurs. Ingestion also captures source tracing metadata for every chunk — line numbers, character offsets, heading hierarchy, and source page number — stored alongside the embedding. This enables full provenance tracing from model output back to the original uploaded file via the chunk endpoint. For job states, error codes, and SDK examples, see Monitor ingestion. To get started with vector databases, see Create and populate a vector database.

Authorizations

Authorization
string
header
required

Your Seekr API key, sent in the Authorization header with no 'Bearer' prefix.

Path Parameters

database_id
string
required

Body

application/json
file_ids
string[]
required

List of file ids to use for alignment

method
string | null
default:accuracy-optimized

Document extraction strategy used to convert raw files into clean markdown before chunking. accuracy-optimized (default) — runs the full Seekr extraction pipeline: tries up to 12 conversion methods in priority order (bookmark-aware hybrid extraction, Seekr-SaaS OCR, LLM post-processing, PyMuPDF, and more) with no word-count restrictions, selecting the highest-quality result for each document. Best for complex PDFs, tables, and documents where retrieval accuracy matters. speed-optimized — uses the same pipeline but skips methods that exceed per-method word-count thresholds, dramatically reducing processing time on large documents while still producing high-quality output.

Example:

"accuracy-optimized"

chunking_method
string | null
default:markdown

Strategy used to split the extracted markdown into chunks before embedding. markdown (default) — parses the heading hierarchy (#######) to identify section boundaries, groups subsections into token-bounded chunks, and intelligently handles tables by repeating table headers across continuation chunks so every chunk is self-contained. Best for structured documents (reports, policies, manuals). semantic — uses spaCy sentence detection, generates paragraph-level embeddings, then applies Ward hierarchical clustering to group paragraphs by meaning rather than position. Produces topically coherent chunks even in poorly structured documents — ideal for improving answer quality on complex question-answering workloads. sliding — fixed-size overlapping windows with no structural awareness. Fast and predictable; best for plain-text or homogeneous content where document structure is absent.

Example:

"markdown"

token_count
integer
default:800

Target maximum tokens per chunk.

overlap_tokens
integer
default:100

Number of tokens repeated at the start of each chunk from the end of the previous one, preserving context across chunk boundaries.

metadata
Metadata · object | null

Optional flat JSON object attached to every chunk produced by this ingestion job. Constraints: (1) must be a flat object — no nested objects or arrays; (2) values must be string, number, boolean, or datetime (null is rejected); (3) maximum 20 fields; (4) string values are trimmed of leading/trailing whitespace and newlines are replaced with spaces. Example: {"year": 2024, "doc_type": "policy", "is_confidential": false}

Example:

Response

Success

id
string
required
vector_database_id
string
required
status
string
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
error_message
string | null
required
file_ids
string[]
required
metaflow_run_id
string | null
required
file_records
VectorDatabaseFileResponse · object[] | null
Last modified on June 18, 2026