Wazo Rooms API

The rooms API from Wazo — 3 operation(s) for rooms.

Operations 5

POST /users/me/rooms Create room #
GET /users/me/rooms Get room #
GET /users/me/rooms/messages List rooms messages #
POST /users/me/rooms/{room_uuid}/messages Create room messages #
GET /users/me/rooms/{room_uuid}/messages List room messages #

Documentation

Specifications

Other Resources

🔗
Console
https://api.wazo.io/documentation/console/authentication/
🔗
SourceCode
https://github.com/wazo-platform/wazo-auth
🔗
ChangeLog
https://github.com/wazo-platform/wazo-auth/blob/master/CHANGELOG.md
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/conventions/wazo-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/errors/wazo-problem-types.yml
🔗
Console
https://api.wazo.io/documentation/console/configuration/
🔗
SourceCode
https://github.com/wazo-platform/wazo-confd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-confd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/application/
🔗
SourceCode
https://github.com/wazo-platform/wazo-calld
🔗
ChangeLog
https://github.com/wazo-platform/wazo-calld/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/cdr/
🔗
SourceCode
https://github.com/wazo-platform/wazo-call-logd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-call-logd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/contact/
🔗
SourceCode
https://github.com/wazo-platform/wazo-dird
🔗
ChangeLog
https://github.com/wazo-platform/wazo-dird/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/webhook/
🔗
SourceCode
https://github.com/wazo-platform/wazo-webhookd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-webhookd/blob/master/CHANGELOG.md
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/asyncapi/wazo-events-webhooks.yml
🔗
Console
https://api.wazo.io/documentation/console/plugins/
🔗
SourceCode
https://github.com/wazo-platform/wazo-plugind
🔗
ChangeLog
https://github.com/wazo-platform/wazo-plugind/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/agent/
🔗
SourceCode
https://github.com/wazo-platform/wazo-agentd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-agentd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/chat/
🔗
SourceCode
https://github.com/wazo-platform/wazo-chatd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-chatd/blob/master/CHANGELOG.md
🔗
SourceCode
https://github.com/wazo-platform/wazo-phoned
🔗
ChangeLog
https://github.com/wazo-platform/wazo-phoned/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/setup/
🔗
SourceCode
https://github.com/wazo-platform/wazo-setupd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-setupd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/amid/
🔗
SourceCode
https://github.com/wazo-platform/wazo-amid
🔗
ChangeLog
https://github.com/wazo-platform/wazo-amid/blob/master/CHANGELOG.md

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wazo-rooms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wazo-rooms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-chatd Rooms API
  description: Control your message and presence from a REST API
  version: 1.0.0
  contact:
    name: Wazo Dev Team
    url: https://wazo-platform.org/
    email: dev@wazo.community
  x-logo:
    url: https://wazo-platform.org/images/logo-black.svg
    backgroundColor: '#FAFAFA'
    altText: Wazo Logo
servers:
- url: /1.0
security:
- wazo_auth_token: []
tags:
- name: rooms
paths:
  /users/me/rooms:
    post:
      operationId: create_room
      summary: Create room
      description: '**Required ACL:** `chatd.users.me.rooms.create`


        **Warning**: **>=22.16**: If a room with the same participants exists,

        it will be returned instead of creating new one. In this case, no other

        parameter will be taken into account and the return code will be 201.

        This behaviour will disappear in the future and a 409 error will be

        raised.

        '
      tags:
      - rooms
      responses:
        '201':
          description: Room created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Room'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '409':
          description: 'Either a participant is unreachable via any registered connector

            (`unreachable-participant`) or no connector type is shared by all

            participants (`no-common-connector`).

            '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Room'
        description: room to create
        required: true
    get:
      operationId: get_room
      summary: Get room
      description: '**Required ACL:** `chatd.users.me.rooms.read`'
      tags:
      - rooms
      parameters:
      - $ref: '#/components/parameters/user_uuid_query'
      responses:
        '200':
          description: Room
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rooms'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /users/me/rooms/messages:
    get:
      operationId: list_rooms_messages
      summary: List rooms messages
      description: '**Required ACL:** `chatd.users.me.rooms.messages.read`'
      tags:
      - rooms
      parameters:
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search_distinct'
      - $ref: '#/components/parameters/distinct'
      responses:
        '200':
          description: Messages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Messages'
        '400':
          $ref: '#/components/responses/InvalidRequest'
  /users/me/rooms/{room_uuid}/messages:
    post:
      operationId: create_room_message
      summary: Create room messages
      description: '**Required ACL:** `chatd.users.me.rooms.{room_uuid}.messages.create`'
      tags:
      - rooms
      parameters:
      - $ref: '#/components/parameters/room_uuid'
      responses:
        '201':
          description: Message created (no outbound delivery)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
        '202':
          description: Message created, outbound delivery accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          description: sender_identity_uuid is required but missing, or identity is not reachable
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserMessagePOST'
        description: message to create
        required: true
    get:
      operationId: list_room_message
      summary: List room messages
      description: '**Required ACL:** `chatd.users.me.rooms.{room_uuid}.messages.read`'
      tags:
      - rooms
      parameters:
      - $ref: '#/components/parameters/room_uuid'
      - $ref: '#/components/parameters/from_date'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Messages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Messages'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    APIError:
      type: object
      allOf:
      - $ref: '#/components/schemas/Error'
      - properties:
          resource:
            description: Resource name of the error
            type: string
    Messages:
      title: UserItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Message'
        filtered:
          type: integer
        total:
          type: integer
    RoomRelationBase:
      properties:
        uuid:
          type: string
          description: The UUID of the room
          readOnly: true
    UserMessagePOST:
      properties:
        content:
          type: string
          description: The content of the message
        alias:
          type: string
          description: Alias/nickname of the sender
        sender_identity_uuid:
          type: string
          format: uuid
          description: The UUID of the sender's identity to use for outbound delivery. Required when the room contains external participants.
      required:
      - content
    RoomUser:
      properties:
        uuid:
          type: string
        tenant_uuid:
          type: string
          description: The tenant of the user_uuid. Default to the same tenant as the token owner
        wazo_uuid:
          type: string
          description: The wazo of the tenant_uuid. Default to the same wazo as the token owner
        identity:
          type: string
          description: The external identity of this participant (e.g. a phone number for SMS). When set, the participant is reachable via the matching connector backend.
      required:
      - uuid
    Rooms:
      title: Rooms
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Room'
        filtered:
          type: integer
        total:
          type: integer
    Message:
      properties:
        uuid:
          type: string
          description: The UUID of the message
          readOnly: true
        content:
          type: string
          description: The content of the message
        alias:
          type: string
          description: Alias/nickname of the sender
        delivery:
          $ref: '#/components/schemas/MessageDelivery'
          readOnly: true
        user_uuid:
          type: string
          description: user uuid of the sender
        tenant_uuid:
          type: string
          description: tenant uuid of the sender
        wazo_uuid:
          type: string
          description: wazo uuid of the sender
        created_at:
          type: string
          description: The date of the message's creation
          readOnly: true
        room:
          $ref: '#/components/schemas/RoomRelationBase'
    Room:
      title: Room
      allOf:
      - $ref: '#/components/schemas/RoomRelationBase'
      - properties:
          name:
            type: string
            description: The name of the room
          users:
            type: array
            maxItems: 100
            items:
              $ref: '#/components/schemas/RoomUser'
        required:
        - users
    MessageRecipient:
      properties:
        identity:
          type: string
          description: The recipient's external address (e.g. phone number)
          readOnly: true
        status:
          type: string
          description: 'Current delivery state for this recipient. One of: pending,

            retrying, accepted, sent, delivered, failed, dead_letter.

            '
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of the latest status transition for this recipient
          readOnly: true
    MessageDelivery:
      description: 'Delivery metadata for the message. Always present on the response.

        Internal messages report `type=internal`, `backend=null`, and an empty

        `recipients` array. External messages carry the channel info and one

        recipient per outbound leg.

        '
      properties:
        type:
          type: string
          description: The messaging type (e.g. 'internal', 'sms')
          readOnly: true
        backend:
          type: string
          description: The connector backend name (e.g. 'twilio'). Null for internal messages.
          readOnly: true
        recipients:
          type: array
          description: Per-recipient delivery state. Empty for internal messages.
          readOnly: true
          items:
            $ref: '#/components/schemas/MessageRecipient'
    Error:
      title: Error
      description: Error message for the client
      properties:
        message:
          description: Human readable explanation of the error
          type: string
        error_id:
          description: Identifier of the type of error. It is more precise than the HTTP status code.
          type: string
        details:
          description: Additional information about the error. The keys are specific to each error.
          type: object
        timestamp:
          description: Time when the error occured
          type: number
          format: timestamp
  responses:
    NotFoundError:
      description: The resource requested was not found on the server
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    InvalidRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
  parameters:
    room_uuid:
      name: room_uuid
      in: path
      description: The UUID of the room
      required: true
      schema:
        type: string
    from_date:
      name: from_date
      in: query
      description: 'The date and time from which to retrieve messages. Example: 2019-06-12T10:00:00.000+00:00'
      schema:
        type: string
        format: date-time
    offset:
      required: false
      name: offset
      in: query
      description: Number of items to skip over in the list. Useful for pagination.
      schema:
        type: integer
    order:
      required: false
      name: order
      in: query
      description: Name of the field to use for sorting the list of items returned.
      schema:
        type: string
    user_uuid_query:
      required: false
      name: user_uuid
      in: query
      description: Filter by user_uuid. Many uuid can be specified. A logical AND is used for filtering. Each uuid MUST be separated by a comma (,).
      schema:
        type: array
        items:
          type: string
    direction:
      required: false
      name: direction
      in: query
      description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order
      schema:
        type: string
        enum:
        - asc
        - desc
    search:
      required: false
      name: search
      in: query
      description: Search term for filtering a list of items. Only items with a field containing the search term will be returned. Required if `distinct` is not specified.
      schema:
        type: string
    search_distinct:
      required: false
      name: search
      in: query
      description: Search term for filtering a list of items. Only items with a field containing the search term will be returned.
      schema:
        type: string
    distinct:
      required: false
      name: distinct
      in: query
      description: Distinct list results by field. Always picks the latest entry. Required if `search` is not specified.
      schema:
        type: string
        enum:
        - room_uuid
    limit:
      required: false
      name: limit
      in: query
      description: Maximum number of items to return in the list
      schema:
        type: integer
  securitySchemes:
    wazo_auth_token:
      type: apiKey
      name: X-Auth-Token
      in: header
x-xivo-port: 9304
x-xivo-name: chatd
x-apievangelist-source:
  harvested_from: https://github.com/wazo-platform/wazo-chatd
  assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/chatd/1.0/api/api.yml (see wazo_chatd/plugins/api/http.py — xivo.chain_map.ChainMap)
  spec_version: Swagger 2.0 (as published by Wazo)
  harvested: '2026-08-17'