---
title: "Update chat session metadata"
method: PATCH
path: "/chat/sessions/{session_id}"
tags: ["Chat"]
---

# Update chat session metadata

`PATCH /chat/sessions/{session_id}`

## Request

- Base URL: `https://api-docs.jackhamr.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.jackhamr.ai/chat/sessions/{session_id}`
- Auth: none declared

Update a chat session's metadata.

Updatable: ``title``, ``is_favorite``. Uses ``exclude_unset`` so
omitted fields are left untouched. An empty title is rejected with a
422 (matches the internal rename endpoint's non-empty rule).

## Path parameters

- `session_id` string, required

## Request body

- ChatSessionUpdate: Request body for ``PATCH /api/v1/chat/sessions/{id}``. Mirrors the updatable surface of the internal chat router's ``PATCH /sessions/{id}`` (title) and ``PATCH /sessions/{id}/favorite`` endpoints. All fields optional — omitted fields are left untouched (handler uses ``exclude_unset``).
  - `title` string, nullable
  - `is_favorite` boolean, nullable

## Response `200`

Successful Response

- ChatSessionOut: A chat session as returned by ``GET/POST /api/v1/chat/sessions``.
  - `id` string, required
  - `agent_id` string, required
  - `user_id` string, required
  - `title` string, required
  - `token_used` integer
  - `token_max` integer
  - `tool_call_count` integer
  - `is_favorite` boolean
  - `active_orchestrator_skill_id` string, nullable
  - `preferred_model_id` string, nullable
  - `runtime_id` string, nullable
  - `runtime_model` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

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