---
title: "Update a knowledge graph node"
method: PATCH
path: "/knowledgeGraph/nodes/{node_id}"
tags: ["KnowledgeGraph"]
---

# Update a knowledge graph node

`PATCH /knowledgeGraph/nodes/{node_id}`

Updates an existing knowledge graph node. Mandatory If-Match header for optimistic locking. Re-embeds atomically when name, summary, or content changes. On Vertex 5xx, returns 503 with Retry-After.

## Path parameters

- `node_id` string, required

## Query parameters

- `workspace_id` string, required
- `application_id` string

## Headers

- `If-Match` string

## Request body

- UpdateKnowledgeGraphNodeRequest — Request body for updating a knowledge graph node. PATCH uses merge semantics: only fields present in the request body with a non-null value are updated; fields that are absent or explicitly null are preserved at their existing stored value. To clear a nullable field, the workflow is to update the node with a non-null replacement value. Immutable identity fields (workspace_id, node_id, application_id, label) cannot be changed via PATCH and any attempt to do so returns 400.
  - `name` string — Updated name (preserves existing value if absent or null; triggers re-embedding when changed)
  - `summary` string — Updated summary (preserves existing value if absent or null; triggers re-embedding when changed)
  - `content` string — Updated content (preserves existing value if absent or null; triggers re-embedding when changed; max 20K chars before fallback)
  - `status` 'ACTIVE' | 'ARCHIVED' — Status of a knowledge graph node
  - `confidence` number, double — Updated confidence score (preserves existing value if absent or null)
  - `provenance_summary` string — Updated provenance summary (preserves existing value if absent or null)
  - `properties` object — Updated additional structured properties (preserves existing value if absent or null)
  - `agent_type` string — Agent type performing the update (preserves existing value if absent or null)
  - `agent_version` string — Agent version performing the update (preserves existing value if absent or null)

## Response `200`

The updated node

- KnowledgeGraphNode — A node in the knowledge graph representing a concept (Page, Workflow, Feature, KnowledgeDoc, Pattern)
  - `node_id` string — Unique identifier for the node (server-generated, suffix -kgn)
  - `workspace_id` string — The workspace this node belongs to
  - `application_id` string — The application this node is associated with
  - `label` 'Page' | 'Workflow' | 'Feature' | 'KnowledgeDoc' | 'Pattern' — Label for a knowledge graph node indicating its concept type
  - `name` string — The name of the concept
  - `summary` string — A short summary of the concept
  - `content` string — Detailed content for this node (max 20K chars before embedding fallback)
  - `status` 'ACTIVE' | 'ARCHIVED' — Status of a knowledge graph node
  - `confidence` number, double — Confidence score (0.0-1.0) mapped from tier (high=1.0, medium=0.6, low=0.3)
  - `provenance_summary` string — Free-text provenance summary for this concept
  - `properties` object — Additional structured properties for this node
  - `embedding_input_is_summary` boolean — True if embedding was computed from summary rather than content (content exceeded 20K chars)
  - `version` integer — Monotonic edit counter (server-managed, readOnly)
  - `u_version_` string — ETag for optimistic locking (server-managed, readOnly)
  - `last_updated_by` string — Principal who last updated this node (server-managed, readOnly)
  - `agent_type` string — Agent type that wrote this node (e.g. AMA-Bootstrap, RAA-Enrichment)
  - `agent_version` string — Agent version that wrote this node
  - `created_by` string — Principal who created this node (server-managed, readOnly)
  - `created_at` string, date-time — Creation timestamp
  - `updated_at` string, date-time — Last update timestamp

## Other responses

- `400` — Invalid or missing parameter
- `401` — User not authenticated
- `403` — User not authorized
- `404` — Entity not found
- `412` — Unknown error
- `428` — Unknown error
- `503` — Unknown error
- `default` — Unknown error

---

[API](https://skmtc.net/mabl/apis/mabl-api.md) · [All operations](https://skmtc.net/mabl/apis/mabl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mabl/mabl-api/revisions/d0fc0114da66/schema)
