---
title: "Get capabilities for a room"
method: GET
path: "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/capabilities"
tags: ["room"]
---

# Get capabilities for a room

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

See "Capability handling in federated conversations" in https://github.com/nextcloud/spreed/issues/10680 to learn which capabilities should be considered from the local server or from the remote server.

## Path parameters

- `apiVersion` 'v4', required
- `token` string, required

## Headers

- `x-nextcloud-federation` string
- `OCS-APIRequest` boolean, required

## Response `200`

Get capabilities successfully

- object
  - `ocs` object, required
    - `meta` OCSMeta, required
      - `status` string, required
      - `statuscode` integer, required
      - `message` string
      - `totalitems` string
      - `itemsperpage` string
    - `data` union, required
      - Capabilities
        - `features` string[], required — List of features available on the server
        - `features-local` string[], required — List of features only available locally (not for federated conversations)
        - `config` object, required
          - `attachments` object, required
            - `allowed` boolean, required — Whether file sharing is allowed in conversations
            - `folder` string — User's attachment folder (only available for logged in users)
            - `conversation-subfolders` boolean, required — Whether per-conversation subfolders are used for attachments
          - `call` object, required
            - `enabled` boolean, required — Whether calls are enabled
            - `breakout-rooms` boolean, required — Whether breakout rooms are enabled
            - `recording` boolean, required — Whether call recording is enabled
            - `recording-consent` integer, required — Whether recording consent is required (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#recording-consent-required))
            - `supported-reactions` string[], required — List of supported reaction emojis during calls
            - `predefined-backgrounds` string[], required — List of file names relative to the spreed/img/backgrounds/ web path, e.g. `2_home.jpg`
            - `predefined-backgrounds-v2` string[], required — List of file paths relative to the server web root with leading slash, e.g. `/apps/spreed/img/backgrounds/2_home.jpg`
            - `can-upload-background` boolean, required — Whether the user can upload custom virtual backgrounds
            - `sip-enabled` boolean, required — Whether SIP is enabled on the server
            - `sip-dialout-enabled` boolean, required — Whether SIP dial-out is enabled on the server
            - `default-phone-region` string, required — Default phone region of the server
            - `can-enable-sip` boolean, required — Whether the user can enable SIP for conversations
            - `start-without-media` boolean, required — Whether calls start without media by default
            - `max-duration` integer, required — Maximum duration of a call in seconds, `0` means unlimited
            - `blur-virtual-background` boolean, required — Whether the blur virtual background is available
            - `end-to-end-encryption` boolean, required — Whether end-to-end encryption is available
            - `live-transcription` boolean, required — Whether live transcription is available
            - `live-translation` boolean, required — Whether live translation is available
            - `live-transcription-target-language-id` string, required — The default target language for live transcription
            - `play-sounds` boolean, required — Whether to play sounds for call events
            - `grid-limit` integer, required — Maximum number of participants shown in the grid view
            - `grid-limit-enforced` boolean, required — Whether the grid limit is enforced by the server
            - `external-call-service` string — URL of an external call service if one is used
          - `chat` object, required
            - `max-length` integer, required — Maximum length of a chat message
            - `read-privacy` integer, required — Read privacy setting for the user (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-read-status-privacy))
            - `has-translation-providers` boolean, required — Whether translation providers are available
            - `has-translation-task-providers` boolean, required — Whether translation task providers are available
            - `typing-privacy` integer, required — Typing privacy setting for the user (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-typing-privacy))
            - `summary-threshold` integer, required — Minimum number of chat messages before a summary can be generated
            - `style` 'split' | 'unified', required — Chat message rendering style (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#chat-style))
            - `matterbridge-enabled` boolean, required — Whether Matterbridge is enabled
          - `conversations` object, required
            - `can-create` boolean, required — Whether the user can create conversations
            - `force-passwords` boolean, required — Whether passwords are enforced for public conversations
            - `list-style` 'two-lines' | 'compact', required — Conversation list style (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#conversation-list-style))
            - `description-length` integer, required — Maximum length of a conversation description
            - `retention-event` integer, required — Retention period for event conversations in seconds, `0` means no retention
            - `retention-phone` integer, required — Retention period for phone conversations in seconds, `0` means no retention
            - `retention-instant-meetings` integer, required — Retention period for instant meetings in seconds, `0` means no retention
            - `retention-classified` integer, required — Retention period for classified conversations after a call in seconds, `0` means no retention
            - `sort-order` 'activity' | 'alphabetical', required — User selected sort order for conversations (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#conversations-sort-options))
            - `group-mode` 'none' | 'group-first' | 'private-first', required — User selected grouping mode for conversations (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#conversations-group-mode))
          - `federation` object, required
            - `enabled` boolean, required — Whether federation is enabled
            - `incoming-enabled` boolean, required — Whether incoming federation is enabled
            - `outgoing-enabled` boolean, required — Whether outgoing federation is enabled
            - `only-trusted-servers` boolean, required — Whether only trusted servers are allowed for federation
          - `previews` object, required
            - `max-gif-size` integer, required — Maximum GIF file size in bytes for previews
          - `signaling` object, required
            - `session-ping-limit` integer, required — Maximum number of sessions that can be pinged in a single request
            - `mode` 'internal' | 'external', required — Signaling mode (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#signaling-modes))
            - `hello-v2-token-key` string — Public key for hello v2 authentication
          - `experiments` object, required
            - `enabled` integer, required — Bit-flag of enabled experiments
          - `feature-hints` object, required
            - `current` integer, required
            - `hidden` integer, required
          - `permissions` object, required
            - `max-default` integer, required — Maximum default permissions (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
            - `max-custom` integer, required — Maximum custom permissions (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
            - `default` integer, required — Server default permissions (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))
        - `config-local` object, required — Map of config keys that are only available locally (not for federated conversations)
        - `version` string, required — Version of the Talk app
      - object

## Changes

- **2026-07-27** `53e9f9caf40b` — 1 info
  - removed the `conversation_cluster` enum value from the `ocs/data/anyOf[#/components/schemas/Capabilities]/config/signaling/mode` response property for the response status `200`
- **2026-07-18** `0ce0facd31e9` — 1 warning
  - added the new `conversation_cluster` enum value to the `ocs/data/anyOf[#/components/schemas/Capabilities]/config/signaling/mode` response property for the response status `200`
- **2026-07-16** `a2b2faeb5c3f` — 1 info
  - added the required property `ocs/data/anyOf[#/components/schemas/Capabilities]/config/conversations/retention-classified` to the response with the `200` status
- **2026-07-14** `f0a947e2df66` — 1 info
  - removed the `conversation_cluster` enum value from the `ocs/data/anyOf[#/components/schemas/Capabilities]/config/signaling/mode` response property for the response status `200`
- **2026-06-25** `018858441ae8` — 1 info
  - added the optional property `ocs/data/anyOf[#/components/schemas/Capabilities]/config/call/external-call-service` to the response with the `200` status

[Full history](https://skmtc.dev/nextcloud/apis/spreed-full/changes/ocs/v2.php/apps/spreed/api/:apiVersion/room/:token/capabilities/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/41d6458d6d6e/schema)
