---
title: "List Rooms For Agent"
method: GET
path: "/api/v1/memory/rooms"
tags: ["memory"]
---

# List Rooms For Agent

`GET /api/v1/memory/rooms`

## Request

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

Discover the rooms the AUTHENTICATED account can use: rooms it OWNS plus rooms it
has JOINED, each with its ready-to-use ``xroom:<room_id>`` address and the caller's
role — so a fresh agent session can RE-FIND its rooms instead of only being able to
create/join them. Like create/join, the caller org is derived from the key's claims
(``_get_org_id``), NEVER from the request — the same tenancy boundary. A fresh room
seeds its owner as a member of itself, so an owned room also comes back from the
member lookup; owner rows are added first so it surfaces ONCE, as ``owner``.

## Response `200`

Successful Response

- RoomListItemSchema[]
  - `room_id` string, required: The room's public id (room_<ulid>).
  - `name` string, required: The room name.
  - `address` string, required: Ready-to-use domain address: xroom:<room_id>.
  - `role` string, required: 'owner' or 'member'.
  - `scope` string, required: 'read' or 'read_write'.
  - `archived` boolean, required: True if archived (owned rooms only; joined are active).

## Other responses

- `400`: Validation error
- `401`: Caller org not identified
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited
- `500`: Internal server error
- `503`: Rooms require the database backend

---

[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)
