---
title: "Get all currently existent rooms which the user has joined"
method: GET
path: "/ocs/v2.php/apps/spreed/api/{apiVersion}/room"
tags: ["room"]
---

# Get all currently existent rooms which the user has joined

`GET /ocs/v2.php/apps/spreed/api/{apiVersion}/room`

## Path parameters

- `apiVersion` 'v4', required

## Query parameters

- `noStatusUpdate` 0 | 1
- `includeStatus` boolean
- `modifiedSince` integer
- `includeLastMessage` boolean

## Headers

- `OCS-APIRequest` boolean, required

## Response `200`

Return list of rooms

- object
  - `ocs` object, required
    - `meta` OCSMeta, required
      - `status` string, required
      - `statuscode` integer, required
      - `message` string
      - `totalitems` string
      - `itemsperpage` string
    - `data` Room[], required
      - `actorId` string, required — The unique identifier for the given actor type
      - `invitedActorId` string — The cloud id of the invited user
      - `actorType` string, required — Actor type of the current user (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-types))
      - `attendeeId` integer, required — Unique attendee id
      - `attendeePermissions` integer, required — Dedicated permissions for the current participant, if not `Custom` this are not the resulting permissions (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
      - `attendeePin` string, nullable, required — Unique dial-in authentication code for this user, when the conversation has SIP enabled (see `sipEnabled` attribute)
      - `avatarVersion` string, required — Version of conversation avatar used to easier expiration of the avatar in case a moderator updates it, since the avatar endpoint should be cached for 24 hours. (only available with `avatar` capability)
      - `breakoutRoomMode` integer, required — Breakout room configuration mode (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#breakout-room-modes)) (only available with `breakout-rooms-v1` capability)
      - `breakoutRoomStatus` integer, required — Breakout room status (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#breakout-room-status)) (only available with `breakout-rooms-v1` capability)
      - `callFlag` integer, required — Combined flag of all participants in the current call (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-in-call-flag), only available with `conversation-call-flags` capability)
      - `callPermissions` integer, required — Call permissions, if not `Custom` this are not the resulting permissions, if set they will reset after the end of the call (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
      - `callRecording` 0 | 1 | 2 | 3 | 4 | 5, required — Type of call recording (see [Constants - Call recording status](https://nextcloud-talk.readthedocs.io/en/latest/constants#call-recording-status)) (only available with `recording-v1` capability)
      - `callStartTime` integer, required — Timestamp when the call was started (only available with `recording-v1` capability)
      - `canDeleteConversation` boolean, required — Flag if the user can delete the conversation for everyone (not possible without moderator permissions or in one-to-one conversations)
      - `canEnableSIP` boolean, required — Whether the given user can enable SIP for this conversation. Note that when the token is not-numeric only, SIP can not be enabled even if the user is permitted and a moderator of the conversation
      - `canLeaveConversation` boolean, required — Flag if the user can leave the conversation (not possible for the last user with moderator permissions)
      - `canStartCall` boolean, required — Flag if the user can start a new call in this conversation (joining is always possible) (only available with `start-call-flag` capability)
      - `defaultPermissions` integer, required — Default permissions for new participants (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
      - `description` string, required — Description of the conversation (can also be empty) (only available with `room-description` capability)
      - `displayName` string, required — `name` if non-empty, otherwise it falls back to a list of participants
      - `hasCall` boolean, required — Flag if the conversation has an active call
      - `hasPassword` boolean, required — Flag if the conversation has a password
      - `id` integer, required — Numeric identifier of the conversation
      - `isCustomAvatar` boolean, required — Flag if the conversation has a custom avatar (only available with `avatar` capability)
      - `isFavorite` boolean, required — Flag if the conversation is favorited by the user
      - `lastActivity` integer, required — Timestamp of the last activity in the conversation, in seconds and UTC time zone
      - `lastCommonReadMessage` integer, required — ID of the last message read by every user that has read privacy set to public in a room. When the user themself has it set to private the value is `0` (only available with `chat-read-status` capability)
      - `lastMessage` union
        - ChatMessage
          - `actorDisplayName` string, required
          - `actorId` string, required
          - `actorType` string, required
          - `expirationTimestamp` integer, required
          - `message` string, required
          - `messageParameters` object, required
          - `messageType` string, required
          - `systemMessage` string, required
          - `deleted` true
          - `id` integer, required
          - `isReplyable` boolean, required
          - `markdown` boolean, required
          - `reactions` object, required
          - `reactionsSelf` string[]
          - `referenceId` string, required
          - `timestamp` integer, required
          - `token` string, required
          - `lastEditActorDisplayName` string
          - `lastEditActorId` string
          - `lastEditActorType` string
          - `lastEditTimestamp` integer
          - `silent` boolean
          - `threadId` integer
          - `isThread` boolean
          - `threadTitle` string
          - `threadReplies` integer
          - `metaData` ChatMessageMetaData
            - `pinnedActorType` string — Actor type of the attendee that pinned the message - Required capability: `pinned-messages`
            - `pinnedActorId` string — Actor ID of the attendee that pinned the message - Required capability: `pinned-messages`
            - `pinnedActorDisplayName` string — Display name of the attendee that pinned the message - Required capability: `pinned-messages`
            - `pinnedAt` integer — Timestamp when the message was pinned - Required capability: `pinned-messages`
            - `pinnedUntil` integer — Timestamp until when the message is pinned. If missing the message is pinned infinitely - Required capability: `pinned-messages`
        - ChatProxyMessage
          - `actorDisplayName` string, required
          - `actorId` string, required
          - `actorType` string, required
          - `expirationTimestamp` integer, required
          - `message` string, required
          - `messageParameters` object, required
          - `messageType` string, required
          - `systemMessage` string, required
      - `lastPing` integer, required — Timestamp of the user's session making the request
      - `lastReadMessage` integer, required — ID of the last read message in a room (only available with `chat-read-marker` capability)
      - `listable` integer, required — Listable scope for the room (only available with `listable-rooms` capability)
      - `liveTranscriptionLanguageId` string, required — ID of the language to use for live transcriptions in the room,
      - `lobbyState` integer, required — Webinar lobby restriction (0-1), if the participant is a moderator they can always join the conversation (only available with `webinary-lobby` capability) (See [Webinar lobby states](https://nextcloud-talk.readthedocs.io/en/latest/constants#webinar-lobby-states))
      - `lobbyTimer` integer, required — Timestamp when the lobby will be automatically disabled (only available with `webinary-lobby` capability)
      - `mentionPermissions` 0 | 1, required — Whether all participants can mention using `@all` or only moderators (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#mention-permissions)) (only available with `mention-permissions` capability)
      - `messageExpiration` integer, required — The message expiration time in seconds in this chat. Zero if disabled. (only available with `message-expiration` capability)
      - `name` string, required — Name of the conversation (can also be empty)
      - `notificationCalls` integer, required
      - `notificationLevel` integer, required — The notification level for the user (See [Participant notification levels](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-notification-levels))
      - `objectId` string, required — See [Object types](https://nextcloud-talk.readthedocs.io/en/latest/constants#object-types) documentation for explanation
      - `objectType` string, required — The type of object that the conversation is associated with (See [Object types](https://nextcloud-talk.readthedocs.io/en/latest/constants#object-types))
      - `participantFlags` integer, required — "In call" flags of the user's session making the request (only available with `in-call-flags` capability)
      - `participantType` integer, required — Permissions level of the current user
      - `permissions` integer, required — Combined final permissions for the current participant, permissions are picked in order of attendee then call then default and the first which is `Custom` will apply (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
      - `readOnly` integer, required — Read-only state for the current user (only available with `read-only-rooms` capability)
      - `recordingConsent` integer, required — Whether recording consent is required before joining a call (Only 0 and 1 will be returned, see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#recording-consent-required)) (only available with `recording-consent` capability)
      - `remoteServer` string
      - `remoteToken` string
      - `sessionId` string, required — `'0'` if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via [Get list of participants in a conversation](https://nextcloud-talk.readthedocs.io/en/latest/participant/#get-list-of-participants-in-a-conversation)
      - `sipEnabled` integer, required — SIP enable status (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#sip-states))
      - `status` string — Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status
      - `statusClearAt` integer, nullable — Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status
      - `statusIcon` string, nullable — Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status
      - `statusMessage` string, nullable — Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status
      - `token` string, required — Token identifier of the conversation which is used for further interaction
      - `type` integer, required — See list of conversation types in the [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants/#conversation-types)
      - `unreadMention` boolean, required — Flag if the user was mentioned since their last visit
      - `unreadMentionDirect` boolean, required — Flag if the user was mentioned directly (ignoring `@all` mentions) since their last visit (only available with `direct-mention-flag` capability)
      - `unreadMessages` integer, required — Number of unread chat messages in the conversation (only available with `chat-v2` capability)
      - `isArchived` boolean, required — Flag if the conversation is archived by the user (only available with `archived-conversations-v2` capability)
      - `isImportant` boolean, required — Required capability: `important-conversations`
      - `isSensitive` boolean, required — Required capability: `sensitive-conversations`
      - `lastPinnedId` integer, required — Required capability: `pinned-messages`
      - `hiddenPinnedId` integer, required — Required capability: `pinned-messages`
      - `hasScheduledMessages` integer, required — Required capability: `scheduled-messages` (local)

## Other responses

- `401` — Current user is not logged in

## Changes

- **2025-12-09** `e33f2a9ba885` — 1 breaking
  - the `ocs/data/items/hasScheduledMessages` response's property type/format changed from `boolean`/`` to `integer`/`int64` for status `200`
- **2025-11-08** `6ef64fbefde3` — 1 info
  - added the required property `ocs/data/items/hasScheduledMessages` to the response with the `200` status

[Change history](https://skmtc.dev/nextcloud/apis/spreed-full/changes/ocs/v2.php/apps/spreed/api/:apiVersion/room/get.md)

---

[API](https://skmtc.dev/nextcloud/apis/spreed-full.md) · [All operations](https://skmtc.dev/nextcloud/apis/spreed-full/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nextcloud/spreed-full/revisions/e33f2a9ba885/schema)
