Daily rooms API
The rooms API from Daily — 22 operation(s) for rooms.
The rooms API from Daily — 22 operation(s) for rooms.
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