Skip to main content
Ingestion is the only call that makes uploaded files searchable. Outcomes are per file: one corrupt document in a folder does not fail the whole run. A valid raw Parquet file with zero rows is reported as skipped_empty, counted in files_empty, and left without a searchable table representation.

Selection

Pass one of these selectors, or omit both to ingest the whole workspace: The result separates files that were imported (files_ingested), already current (files_skipped), valid but contained no rows (files_empty), and invalid (files_failed). Empty Parquet is informational; corrupt Parquet still appears as a failed per-file outcome. stale_only=True and reingest_unchanged=True can be combined with path_prefix. Combining file_ids with path_prefix is invalid_request.

Reconcile

Reconcile compares the storage tree to the file ledger. Detection only: discovered, stale, and orphan rows. auto_ingest=True chains an ingestion and returns result.ingestion_job_id only when reconcile found files to discover or mark stale. Otherwise no ingestion starts and result.ingestion_job_id is None.
When the workspace policy is ledger_understanding.trigger=auto and the ingest landed a journal-line table, the run chains a ledger-understanding job. IngestionResult.ledger_understanding_job_id names it; poll with jobs.wait. See Ledger understanding.

Errors

  • file_not_ingested — a tool ran before ingest finished
  • invalid_request — both file_ids and path_prefix on one call
See File lifecycle.