---
title: "GET /api/v1/{context_id}/documents"
method: GET
path: "/api/v1/{context_id}/documents"
---

# GET /api/v1/{context_id}/documents

`GET /api/v1/{context_id}/documents`

Lists Layer 0 knowledge documents

## Path parameters

- `context_id` string, required

## Query parameters

- `status` string
- `mimeType` string
- `page` integer
- `pageSize` integer

## Response `200`

Documents

- DocumentPageJson
  - `documents` DocumentJson[], required
    - `contentHash` string, required
    - `createdAt` string, date-time, required
    - `error` string, nullable
    - `id` string, required
    - `mimeType` string, required
    - `processingCompletedAt` string, date-time, nullable
    - `processingStartedAt` string, date-time, nullable
    - `sizeBytes` integer, required
    - `source` string, required
    - `status` 'queued' | 'extracting' | 'chunking' | 'embedding' | 'keywording' | 'extracting_nodes' | 'ready' | 'failed', required — Lifecycle state of a [`Document`] in the ingestion pipeline. Matches the SurrealQL `ASSERT $value IN [...]` on `document.status` in `V1__schema.surql`. The `Keywording` state is reserved for Phase C; in Phase A the pipeline transitions straight from `Embedding` to `Ready`.
    - `title` string, required
    - `updatedAt` string, date-time, required
    - `version` integer, required
  - `page` integer, required
  - `pageSize` integer, required
  - `total` integer, required

## Other responses

- `401` — Unauthorized
- `422` — Invalid context id
- `500` — Unexpected error

---

[API](https://skmtc.net/surrealdb/apis/spectron.md) · [All operations](https://skmtc.net/surrealdb/apis/spectron/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/surrealdb/spectron/versions/52b41ab517b6/schema)
