---
title: "The document's staged candidates (audit view)"
method: GET
path: "/v1/documents/{id}/candidates"
tags: ["Documents"]
---

# The document's staged candidates (audit view)

`GET /v1/documents/{id}/candidates`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/documents/{id}/candidates`
- Auth: HTTP bearer

Every extraction candidate staged against the document, over all runs. `object`/`clause` of fact candidates whose predicate requires a scope the caller lacks are redacted; the row stays visible for the audit trail. Part of the document pipeline — answers `503 feature_disabled` until `DOCUMENT_INGEST_ENABLED=1`.

Required scope: `brain:read`.

## Path parameters

- `id` string, required

## Response `200`

The candidates.

- DocumentCandidatesResponse
  - `candidates` Candidate[], required
    - `chunkSeq` integer, required
    - `commitRef` string
    - `confidence` number, required
    - `id` string, required
    - `kind` 'entity' | 'fact' | 'relation' | 'scene' | 'state_delta', required
    - `payload` object, required: Extraction payload. `object`/`clause` of scope-gated fact candidates are redacted for callers without the required predicate scope. scene/state_delta payloads (0110) are default-deny: content fields open only under brain:read_pii; other callers see structural fields plus `redacted: true`.
    - `runId` string, required
    - `status` string, required
    - `statusReason` string
  - `documentId` string, required

## Other responses

- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.
- `404`: No such resource in this tenant.
- `503`: The document pipeline is dark (DOCUMENT_INGEST_ENABLED off).

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
