---
title: "The reading of this collection's documents in progress, and the last one's counts"
method: GET
path: "/api/v0/knowledge-bases/{kb_id}/graph/reading"
tags: ["Knowledge Base Graph"]
---

# The reading of this collection's documents in progress, and the last one's counts

`GET /api/v0/knowledge-bases/{kb_id}/graph/reading`

## Request

- Base URL: `https://api.outerport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outerport.com/api/v0/knowledge-bases/{kb_id}/graph/reading`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/outerport/apis/outerport-api/docs/api/v0/knowledge-bases/:kb_id/graph/reading/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the job of the run still in progress, so a page opened while a run is going can follow it instead of offering to start another, what the last completed run read and wrote, and how many documents the graph holds no reading of under the collection's current classes.

## Path parameters

- `kb_id` string, uuid, required

## Response `200`

Successful Response

- CollectionReadStateResponse: The reading in progress over this collection, and what the last one did.
  - `job_status_id` string, uuid, nullable: Poll this job for progress; null when no run is in progress.
  - `last_run` CollectionRunReport: What the last completed reading of the collection read and wrote.
    - `completed_at` string, date-time, nullable
    - `documents` integer
    - `conversations` integer
    - `messages` integer
    - `documents_read` integer
    - `conversations_read` integer
    - `documents_unchanged` integer
    - `documents_without_text` integer
    - `documents_deferred` integer
    - `model_refused` integer
    - `model_failed` integer
    - `nothing_usable` integer
    - `nodes` integer
    - `edges` integer
    - `entities` integer
    - `problems` integer
    - `faqs` integer
    - `similar_pairs` integer
    - `kept_for_statements` integer
    - `merged` integer
    - `written` ReadCount[]: What the collection's readings write, in the order to show: the support package's problems and FAQs on a collection that subscribes it, then the instances of the collection's own classes when it has any or does not subscribe the package.
      - `kind` 'problems' | 'faqs' | 'entities', required
      - `count` integer, required
  - `documents_to_read` integer: Documents the graph holds no reading of under the current classes, relationships and desk terms, the support package's included: every document after any of them changes, and each document added since the last run. On a support collection with no class of its own, only its emails and their attachments are read.
  - `blocked_by` 'no_class' | 'source_bindings' | 'no_documents' | 'package_not_allowed', nullable: Why a reading cannot start now, the same check the POST refuses on; null when one can. `no_class`: the collection has no domain class of its own (a package class it edited is not one) and does not subscribe the support package. `source_bindings`: the email sources set on its classes do not fit together. `no_documents`: it holds no documents. `package_not_allowed`: it subscribes the support package and the caller's tier does not include it.
  - `email_documents` integer: Emails (.eml/.msg) in the collection. A reading writes one instance per email, sender, thread and attachment only into classes given an email source binding; with none, the model reads each thread as a whole.

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-09** `ecd5b922e78a`: 7 info
  - added the optional property `blocked_by` to the response with the `200` status
  - added the optional property `last_run/anyOf[subschema #1: CollectionRunReport]/faqs` to the response with the `200` status
  - added the optional property `last_run/anyOf[subschema #1: CollectionRunReport]/messages` to the response with the `200` status
  - added the optional property `last_run/anyOf[subschema #1: CollectionRunReport]/model_failed` to the response with the `200` status
  - …3 more
- **2026-10-23** `a982f74233e9`: 1 info
  - added the optional property `email_documents` to the response with the `200` status
- **2026-10-22** `762a02693cbb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outerport/apis/outerport-api/changes/api/v0/knowledge-bases/:kb_id/graph/reading/get.md)

---

[API](https://skmtc.dev/outerport/apis/outerport-api.md) - [All operations](https://skmtc.dev/outerport/apis/outerport-api/llms.txt) - [OpenAPI document](https://skmtc.dev/outerport/apis/outerport-api/revisions/08b5bf6f7f18?raw)
