---
title: "POST /api/v1/{context_id}/consolidate"
method: POST
path: "/api/v1/{context_id}/consolidate"
---

# POST /api/v1/{context_id}/consolidate

`POST /api/v1/{context_id}/consolidate`

Phase 11b: pool recent facts and consolidate into observations

## Path parameters

- `context_id` string, required

## Request body

- ConsolidateRequestJson
  - `dryRun` boolean
  - `factLimit` integer, nullable
  - `observationLimit` integer, nullable

## Response `200`

- ConsolidateResponseJson
  - `created` integer, required
  - `dryRun` boolean, required
  - `outcomes` ConsolidateOutcomeJson[], required
    - `entityName` string, required
    - `key` string, required
    - `kind` 'create' | 'update' | 'supersede', required — Bounded enum for the writer to dispatch on. Serializes as the `create` / `update` / `supersede` wire strings so it can stand in for the public `/consolidate` response `kind` field.
    - `observationId` string, nullable
    - `proofCount` integer, required
    - `rationale` string, nullable
    - `value` string, required
  - `superseded` integer, required
  - `traceId` string, required
  - `updated` integer, required

## Other responses

- `401` — Unauthorized
- `422` — Invalid context id

---

[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/revisions/52b41ab517b6/schema)
