---
title: "Join Room"
method: POST
path: "/api/v1/memory/rooms/join"
tags: ["memory"]
---

# Join Room

`POST /api/v1/memory/rooms/join`

## Request

- Base URL: `https://core.mnemoverse.com`
- URL: `https://core.mnemoverse.com/api/v1/memory/rooms/join`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP bearer

Redeem an invite code — you become a member of its room with the invite's
role. The joiner is YOUR authenticated org (from the key), never the body;
only the code is supplied. Idempotent: if you are already a member you get a
no-op success (``already_member: true``), no use is consumed.

## Request body

- JoinRoomRequestSchema: Body for redeeming an invite code — the joiner becomes a member of the invite's room with the invite's role. The joiner is derived from the caller's key, never the body; only the code is supplied.
  - `code` string, required: The invite code (mnvr_...).

## Response `200`

Successful Response

- JoinedRoomSchema: Response after redeeming — the room is now usable at ``address``.
  - `room_id` string, required: The room's public id.
  - `address` string, required: Ready-to-use domain address: xroom:<room_id>.
  - `name` string, required: The room name.
  - `scope` string, required: Your role in the room.
  - `already_member` boolean, required: True if you were already a member (no-op).
  - `next_steps` string, required: How to use the room now.

## Other responses

- `400`: Validation error
- `401`: Caller org not identified
- `403`: Forbidden
- `404`: Invite code not found
- `409`: Invite expired/revoked/used
- `422`: Validation Error
- `429`: Rate limited
- `500`: Internal server error
- `503`: Service unavailable

---

[API](https://skmtc.dev/mnemoverse/apis/mnemoverse-core.md) · [All operations](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/revisions/1f5e0048f017?raw)
