Skip to main content

Tasks API

The task endpoints expose the River job queue: the 7-stage ingestion pipeline plus annotation jobs.

List repo jobs

GET /api/v1/repositories/{repoID}/tasks

Permission: task:read. Returns jobs for the repository with pagination + filters.

Query params:

  • stateavailable|running|retryable|pending|scheduled|completed|cancelled|discarded
  • kind — job kind (e.g. retrieve_source, source_decomposition, embed_facts, deduplicate_facts, extract_concepts, synthesize_concept)
  • limit, offset

System-level task routes

MethodPathPermissionDescription
GET/api/v1/taskstask:readList all jobs (system-wide)
GET/api/v1/tasks/statstask:readAggregate job stats (counts by state/kind)
GET/api/v1/tasks/{jobID}task:readGet a single job's details
GET/api/v1/admin/tasks/{jobID}task:readAdmin job detail (when task DB configured)
POST/api/v1/admin/tasks/{jobID}/canceltask:cancelCancel a job
POST/api/v1/admin/tasks/rescuetask:manageRescue stuck jobs

The pipeline job kinds

KindStageFan-out
retrieve_source11 per source
source_decomposition21 per source
embed_facts31 per source batch
deduplicate_facts41 per source
extract_concepts51 per fact batch
embed_concepts6a1 per concept batch
cleanup_factsterminal1 per source
summarize_concepts6b1 per concept
synthesize_concept71 per concept group
refresh_concept_relationsmatview1 per database (deduped)
annotate_reportoff-chain1 per report

A single source fans out into many jobs (one per fact for embed/dedup/extract, one per concept for summarize/synthesize). 100 sources can produce thousands of jobs and take an hour to fully drain. See Architecture > Task Manager.