Skip to main content
GET
Get a single topic-extraction run

Headers

x-project-id
string
required

Project ID to specify the project context

Path Parameters

runId
string<uuid>
required

UUID of the run to retrieve.

Response

id
string
required

Run UUID.

Example:

"019dd32e-b19e-7956-88f6-4b9a877f3697"

status
enum<string>
required

Lifecycle status of the run.

Available options:
pending,
running,
completed,
failed
Example:

"running"

totalSources
number
required

Total sources (jobs) enqueued for this run.

Example:

100

processed
number
required

Sources processed so far (vectorized + skippedNoMeta + skippedPreMeta + failed). Use processed / totalSources for a progress bar.

Example:

64

vectorized
number
required

Sources whose metadata was embedded + stored.

Example:

41

skippedNoMeta
number
required

Sources skipped because no metadata sidecar was cached.

Example:

18

skippedPreMeta
number
required

Sources skipped because the snapshot predates metadata caching.

Example:

4

failed
number
required

Sources whose job failed terminally (retries exhausted).

Example:

1

params
object | null
required

Snapshot of the filters that produced this run.

Example:
createdAt
string<date-time>
required

When the run was created.

Example:

"2026-06-25T13:35:29.000Z"

updatedAt
string<date-time>
required

When the run last changed.

Example:

"2026-06-25T13:38:02.000Z"

completedAt
string<date-time> | null
required

When the run finished (null while still running).

Example:

"2026-06-25T13:40:11.000Z"

topicsStatus
enum<string>
required

Topic-clustering lifecycle, independent of embedding status. pending while embedding; clustering once the topic job runs; ready when topics are available; failed on clustering error. Poll until ready, then GET /source-topics/runs/{runId}/topics.

Available options:
pending,
clustering,
ready,
failed
Example:

"ready"

topicsCompletedAt
string<date-time> | null
required

When topic clustering finished (null until ready/failed).

Example:

"2026-06-25T13:41:02.000Z"