---
title: "Release a claim this session holds (T879)"
method: POST
path: "/api/goal/nodes/release"
tags: ["Goal"]
---

# Release a claim this session holds (T879)

`POST /api/goal/nodes/release`

## Request

- Base URL: `http://localhost:38200`
- URL: `http://localhost:38200/api/goal/nodes/release`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `token`

Conditional on the caller being the holder, so a session cannot free another session's claim. Releasing a node you do not hold reports `released: false` rather than failing — idempotent for the caller.

## Request body

- object
  - `id` integer, required
  - `session_id` integer, required: Must be the session holding the claim

## Response `200`

Release resolved.

- object
  - `node` object
  - `released` boolean
  - `heldBy` integer, nullable

## Other responses

- `400`: Request body/query failed Zod validation.
- `401`: Missing or invalid credentials.
- `404`: Node not found.

---

[API](https://skmtc.dev/contextq/apis/contextq-api.md) · [All operations](https://skmtc.dev/contextq/apis/contextq-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contextq/apis/contextq-api/revisions/7afc44056a22?raw)
