---
title: "Claims the room. `200` with `owned: false` means somebody else holds it and the caller must withdraw — that is not an error condition and is not reported as one."
method: POST
path: "/api/chat/rooms/{roomId}/genai-owner"
tags: ["GenAiChatOwnership"]
---

# Claims the room. \`200\` with \`owned: false\` means somebody else holds it and the caller must withdraw — that is not an error condition and is not reported as one.

`POST /api/chat/rooms/{roomId}/genai-owner`

## Request

- Base URL: `https://api.infoset.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infoset.app/api/chat/rooms/{roomId}/genai-owner`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
- TypeScript: <https://skmtc.dev/infoset/apis/infoset-rest-api/docs/api/chat/rooms/:roomId/genai-owner/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `roomId` integer, required

## Query parameters

- `accountId` integer
- `departmentId` integer

## Request body

- GenAiOwnershipRequestDto: Wire body for `POST /api/chat/rooms/{roomId}/genai-owner`, the assistant's ownership claim. `accountId` and `departmentId` travel as query parameters, so the body carries only the caller's identity.
  - `aiBotId` integer

## Response `200`

OK

- GenAiOwnershipResponseDto: Wire response for the ownership claim. `owned: false` is a normal outcome, not an error: it means somebody else holds the room — typically a human agent assigned between the caller's last check and this call — and the caller must withdraw, publish nothing, and leave the conversation alone.
  - `owned` boolean
  - `roomId` integer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

---

[API](https://skmtc.dev/infoset/apis/infoset-rest-api.md) - [All operations](https://skmtc.dev/infoset/apis/infoset-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/infoset/apis/infoset-rest-api/revisions/709c8123f593?raw)
