Daily rooms API

The rooms API from Daily — 22 operation(s) for rooms.

OpenAPI Specification

daily-rooms-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Daily batch/ rooms API
  description: "The Daily REST API offers the ability to manage the following: \n- Overall Domain Configuration\n- Individual Room creation and config management \n- Meeting token creation and validation\n- Recording and compositing management \n- Meeting analytics\n- Logs and metrics\n- Real-time presence\n\nPlease reach out to help@daily.co if we can help with anything"
  version: 1.1.1
  contact:
    name: Daily
    url: https://docs.daily.co
    email: help@daily.co
servers:
- url: https://api.daily.co/v1
security:
- bearerAuth: []
tags:
- name: rooms
paths:
  /rooms:
    get:
      summary: /rooms
      description: List rooms
      operationId: ListRooms
      parameters:
      - name: limit
        in: query
        description: Sets the number of rooms listed
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
      - name: ending_before
        in: query
        description: Returns room objects created before a provided room  id
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: starting_after
        in: query
        description: Returns room objects created after a provided room id
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                    example: 2
                    default: 0
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 5e3cf703-5547-47d6-a371-37b1f0b4427f
                        name:
                          type: string
                          example: w2pp2cf4kltgFACPKXmX
                        api_created:
                          type: boolean
                          example: false
                          default: true
                        privacy:
                          type: string
                          example: public
                        url:
                          type: string
                          example: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                        created_at:
                          type: string
                          example: '2019-01-26T09:01:22.000Z'
                        config:
                          type: object
                          properties:
                            start_video_off:
                              type: boolean
                              example: true
                              default: true
              examples:
                Result:
                  value:
                    total_count: 2
                    data:
                    - id: 5e3cf703-5547-47d6-a371-37b1f0b4427f
                      name: w2pp2cf4kltgFACPKXmX
                      api_created: false
                      privacy: public
                      url: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                      created_at: '2019-01-26T09:01:22.000Z'
                      config:
                        start_video_off: true
                    - id: d61cd7b2-a273-42b4-89bd-be763fd562c1
                      name: hello
                      api_created: false
                      privacy: public
                      url: https://your-domain.daily.co/hello
                      created_at: '2019-01-25T23:49:42.000Z'
                      config: {}
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
    post:
      summary: /rooms
      description: Create a room
      operationId: CreateRoom
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                name:
                  type: string
                privacy:
                  type: string
                properties:
                  $ref: '#/components/schemas/room-properties'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: d61cd7b2-a273-42b4-89bd-be763fd562c1
                  name:
                    type: string
                    example: w2pp2cf4kltgFACPKXmX
                  api_created:
                    type: boolean
                    example: true
                    default: true
                  privacy:
                    type: string
                    example: public
                  url:
                    type: string
                    example: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                  created_at:
                    type: string
                    example: '2019-01-26T09:01:22.000Z'
                  config:
                    $ref: '#/components/schemas/rooms-room_name-get-res'
              examples:
                Result:
                  value:
                    id: d61cd7b2-a273-42b4-89bd-be763fd562c1
                    name: w2pp2cf4kltgFACPKXmX
                    api_created: true
                    privacy: public
                    url: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                    created_at: '2019-01-26T09:01:22.000Z'
                    config:
                      start_video_off: true
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}:
    get:
      summary: rooms/:name
      description: Get info about a room
      operationId: GetRoomConfig
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rooms-room_name-get-res'
              examples:
                Result:
                  value:
                    id: d61cd7b2-a273-42b4-89bd-be763fd562c1
                    name: w2pp2cf4kltgFACPKXmX
                    api_created: false
                    privacy: public
                    url: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                    created_at: '2019-01-26T09:01:22.000Z'
                    config:
                      start_video_off: true
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
    post:
      summary: rooms/:name
      description: Set a room's privacy and config properties
      operationId: SetRoomConfig
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                privacy:
                  type: string
                properties:
                  $ref: '#/components/schemas/room-properties'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    id: d61cd7b2-a273-42b4-89bd-be763fd562c1
                    name: w2pp2cf4kltgFACPKXmX
                    api_created: false
                    privacy: public
                    url: https://api-demo.daily.co/w2pp2cf4kltgFACPKXmX
                    created_at: '2019-01-26T09:01:22.000Z'
                    config:
                      start_video_off: true
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
    delete:
      summary: rooms/:name
      description: Delete a room
      operationId: DeleteRoom
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                  name:
                    type: string
              examples:
                Result:
                  value:
                    deleted: true
                    name: my-room
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/presence:
    get:
      summary: rooms/:name/presence
      description: Get a presence snapshot for a room
      operationId: GetRoomPresence
      parameters:
      - name: room_name
        in: path
        description: The name of the room
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: limit
        in: query
        description: Sets the number of participants returned.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
      - name: userId
        in: query
        description: Returns presence for the user with the given userId, if available. The userId is specified via a [meeting token](/products/rest-api/meeting-tokens/config#user_id).
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: userName
        in: query
        description: Returns presence for the user with the given name, if available.
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rooms-room_name_presence-get-res'
              examples:
                Result:
                  value:
                    total_count: 1
                    data:
                    - room: w2pp2cf4kltgFACPKXmX
                      id: d61cd7b2-a273-42b4-89bd-be763fd562c1
                      userId: pbZ+ismP7dk=
                      userName: Moishe
                      mtgSessionId: 16e9701a-93e0-4933-83c9-223e7c40d552
                      joinTime: '2023-01-01T20:53:19.000Z'
                      duration: 2312
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/send-app-message:
    post:
      summary: rooms/:name/send-app-message
      description: Send a message to participants in a room
      operationId: SendAppMessage
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                data:
                  type: object
                  description: A javascript object that can be serialized into JSON. Data sent must be within the 4kb size limit.
                recipient:
                  type: string
                  description: Determines who will recieve the message. It can be either a participant session_id, or `*`. The `*` value is the default, and means that the message is a "broadcast" message intended for all participants.
                  default: '*'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/get-session-data:
    get:
      summary: rooms/:name/get-session-data
      description: Gets meeting session data
      operationId: GetSessionData
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      hello: world
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/set-session-data:
    post:
      summary: rooms/:name/set-session-data
      description: Sets meeting session data
      operationId: SetSessionData
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                data:
                  type: object
                  description: A javascript object that can be serialized into JSON. Defaults to `{}`.
                mergeStrategy:
                  type: string
                  enum:
                  - replace
                  - shallow-merge
                  description: '`replace` to replace the existing meeting session data object or `shallow-merge` to merge with it.'
                  default: replace
                keysToDelete:
                  type: array
                  items:
                    type: string
                  description: Optional list of keys to delete from the existing meeting session data object when using `shallow-merge`.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/eject:
    post:
      summary: rooms/:name/eject
      description: Ejects participants from a room
      operationId: Eject
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                ids:
                  type: array
                  items:
                    type: string
                  description: List of participant ids (max 100) to eject from the existing meeting session.
                user_ids:
                  type: array
                  items:
                    type: string
                  description: List of user_ids (max 100) to eject from the existing meeting session.
                ban:
                  type: boolean
                  default: false
                  description: If true, participants are prevented from (re)joining with the given user_ids.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  ejectedIds:
                    type: array
                    items:
                      type: string
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/update-permissions:
    post:
      summary: rooms/:name/update-permissions
      description: Modifies permissions for one or more participants in a room
      operationId: UpdatePermissions
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                data:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      hasPresence:
                        type: boolean
                      canSend:
                        oneOf:
                        - type: boolean
                        - type: array
                          items:
                            type: string
                      canReceive:
                        type: object
                      canAdmin:
                        oneOf:
                        - type: boolean
                        - type: array
                          items:
                            type: string
                    description: Permissions to modify for a given participant id or '*'.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: sent
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/recordings/start:
    post:
      summary: rooms/:name/recordings/start
      description: Start a recording in a room
      operationId: RoomRecordingsStart
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingStreamingOptions'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: sent
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/recordings/update:
    post:
      summary: rooms/:name/recordings/update
      description: Update a recording in a room
      operationId: RoomRecordingsUpdate
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DailyStreamingOptions'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: sent
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/recordings/stop:
    post:
      summary: rooms/:name/recordings/stop
      description: Stop a recording in a room
      operationId: RoomRecordingsStop
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: sent
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/live-streaming/start:
    post:
      summary: rooms/:name/live-streaming/start
      description: Start a live stream in a room
      operationId: RoomLivestreamingStart
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DailyLiveStreamingOptions'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/live-streaming/update:
    post:
      summary: rooms/:name/live-streaming/update
      description: Update a live stream in a room
      operationId: RoomLivestreamingUpdate
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DailyLiveStreamingOptions'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/live-streaming/stop:
    post:
      summary: rooms/:name/live-streaming/stop
      description: Stop a live stream in a room
      operationId: RoomLivestreamingStop
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/transcription/start:
    post:
      summary: rooms/:name/transcription/start
      description: Start a transcription in a room
      operationId: RoomTranscriptionStart
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/transcription-properties'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/transcription/update:
    post:
      summary: rooms/:name/transcription/update
      description: Update the set of participants being transcribed
      operationId: RoomTranscriptionUpdate
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                instanceId:
                  type: string
                  description: instanceId to be updated.
                participants:
                  description: A list of participant IDs to be transcribed. Only the participant IDs included in this array will be processed
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/transcription/stop:
    post:
      summary: rooms/:name/transcription/stop
      description: Stop a transcription in a room
      operationId: RoomTranscriptionStop
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                instanceId:
                  type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    sent: 'true'
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/dialOut/start:
    post:
      summary: rooms/:name/dialOut/start
      description: Start a dial-out in a room
      operationId: RoomDialOutStart
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/dialout-properties'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    ok: 'true'
                    sessionId: UUID of the dial-out session
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/dialOut/sendDTMF:
    post:
      summary: rooms/:name/dialOut/sendDTMF
      description: send DTMF digits on the dialout
      operationId: RoomDialOutSendDTMF
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                sessionId:
                  type: string
                  description: The participant ID of the dialOut session
                tones:
                  type: string
                  description: Combined string of DTMF tones to send (e.g., "1234#"). Maximum 20 characters.
                digitDurationMs:
                  type: integer
                  description: Duration in milliseconds, represents the duration between each DTMF digit. Must be between 50 and 2000. The default duration is 500ms.
                  minimum: 50
                  maximum: 2000
              required:
              - sessionId
              - tones
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    ok: 'true'
                    sessionId: UUID of the dial-out session
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/dialOut/stop:
    post:
      summary: rooms/:name/dialOut/stop
      description: Stop a dial out in a room
      operationId: RoomDialOutStop
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                sessionId:
                  type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: sent
        '400':
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/sipCallTransfer:
    post:
      summary: rooms/:name/sipCallTransfer
      description: transfer sip/pstn call
      operationId: RoomSipCallTransfer
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                sessionId:
                  type: string
                toEndPoint:
                  type: string
                  description: the SIP/phoneNumber endpoint to transfer the call to.
                callerId:
                  type: string
                  description: determine the phone number used for outbound call (i.e. phone number displayed on the called phone). [purchased phone](/products/rest-api/phone-numbers/purchased-phone-numbers)
                waitBeforeExtensionDialSec:
                  type: integer
                  description: number of seconds to wait before dialing the extension, once dialed number is connected.
                  default: 0
                  minimum: 0
                  maximum: 60
                extension:
                  type: string
                  description: the extension to dial after dialed number is connected. e.g. `1234`
                  maxLength: 20
                  minLength: 1
                  example: '1234'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    ok: 'true'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
  /rooms/{room_name}/sipRefer:
    post:
      summary: rooms/:name/sipRefer
      description: refer a sip call to other sip endpoint
      operationId: RoomSipRefer
      parameters:
      - name: room_name
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                sessionId:
                  type: string
                toEndPoint:
                  type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    ok: 'true'
          $ref: '#/components/responses/400'
      deprecated: false
      tags:
      - rooms
      security:
      - bearerAuth: []
components:
  schemas:
    transcription-properties:
      pro

# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/daily/refs/heads/main/openapi/daily-rooms-api-openapi.yml