Skip to main content

Daily REST API Documentation

For complete Daily REST API reference and additional details

Classes

DailyRoomSipParams

Configuration for SIP (Session Initiation Protocol) parameters.
display_name
string
default:"sw-sip-dialin"
Display name for the SIP endpoint
video
boolean
default:false
Whether video is enabled for SIP
sip_mode
string
default:"dial-in"
SIP connection mode
num_endpoints
integer
default:1
Number of SIP endpoints

RecordingsBucketConfig

Configuration for storing Daily recordings in a custom S3 bucket.
bucket_name
string
required
Name of the S3 bucket for storing recordings
bucket_region
string
required
AWS region where the S3 bucket is located
assume_role_arn
string
required
ARN of the IAM role to assume for S3 access
allow_api_access
boolean
default:false
Whether to allow API access to the recordings

DailyRoomProperties

Properties that configure a Daily room’s behavior and features.
exp
float
Room expiration time as Unix timestamp (e.g., time.time() + 300 for 5 minutes)
enable_chat
boolean
default:false
Whether chat is enabled in the room
enable_prejoin_ui
boolean
default:false
Whether the prejoin lobby UI is enabled
enable_emoji_reactions
boolean
default:false
Whether emoji reactions are enabled
eject_at_room_exp
boolean
default:false
Whether to eject participants when room expires
enable_dialout
boolean
Whether dial-out is enabled
enable_recording
string
Recording settings (“cloud”, “cloud-audio-only”, “local”, or “raw-tracks”)
geo
string
Geographic region for room
max_participants
number
Maximum number of participants allowed in the room
recordings_bucket
RecordingsBucketConfig
Configuration for custom S3 bucket recordings
sip
DailyRoomSipParams
SIP configuration parameters
sip_uri
dict
SIP URI configuration (returned by Daily)
start_video_off
boolean
default:false
Whether the camera video is turned off by default
The class also includes a sip_endpoint property that returns the SIP endpoint URI if available. enable_recording also supports cloud-audio-only, which records the call server-side and produces an audio-only MPEG-4 file with .m4a file extension and content type as audio/mp4. This recording setting behaves like cloud, except the layout options do not apply because there are no video tracks. Note: you can retrieve the resulting .m4a recordings via the Daily REST API, in the same way you fetch cloud recording assets.
If you’re already using enable_recording="cloud" and want to switch to audio-only without changing your code, you can set force_audio_only_recording: 1 on your Daily domain. This forces all cloud recordings to be audio-only (.m4a instead of .mp4) and skips recording video tracks even if they are present. This is useful when you want to transition to audio-only recordings immediately while avoiding an application redeploy. Switching force_audio_only_recording: 0 will allow recording video tracks.

DailyRoomParams

Parameters for creating a new Daily room.
name
string
Room name (if not provided, one will be generated)
privacy
string
default:"public"
Room privacy setting (“private” or “public”)
properties
DailyRoomProperties
Room configuration properties

DailyRoomObject

Response object representing a Daily room.
id
string
Unique room identifier
name
string
Room name
api_created
boolean
Whether the room was created via API
privacy
string
Room privacy setting
url
string
Complete room URL
created_at
string
Room creation timestamp in ISO 8601 format
config
DailyRoomProperties
Room configuration

DailyMeetingTokenProperties

Properties for configuring a Daily meeting token.
room_name
string
The room this token is valid for. If not set, token is valid for all rooms.
eject_at_token_exp
boolean
Whether to eject user when token expires
eject_after_elapsed
integer
Eject user after this many seconds
nbf
integer
“Not before” timestamp - users cannot join before this time
exp
integer
Expiration timestamp - users cannot join after this time
is_owner
boolean
Whether token grants owner privileges
user_name
string
User’s display name in the meeting
user_id
string
Unique identifier for the user (36 char limit)
enable_screenshare
boolean
Whether user can share their screen
start_video_off
boolean
Whether to join with video off
start_audio_off
boolean
Whether to join with audio off
enable_recording
string
Recording settings (“cloud”, “cloud-audio-only”, “local”, or “raw-tracks”)
enable_prejoin_ui
boolean
Whether to show prejoin UI
start_cloud_recording
boolean
Whether to start cloud recording when user joins
permissions
dict
Initial default permissions for a non-meeting-owner participant

DailyMeetingTokenParams

Parameters for creating a Daily meeting token.
properties
DailyMeetingTokenProperties
Token configuration properties
Recording type: cloud will produce files with a .mp4 extension, while cloud-audio-only will produce files with a .m4a extension.

Initialize DailyRESTHelper

Create a new instance of the Daily REST helper.
daily_api_key
string
required
Your Daily API key
daily_api_url
string
default:"https://api.daily.co/v1"
The Daily API base URL
aiohttp_session
aiohttp.ClientSession
required
An aiohttp client session for making HTTP requests

Create Room

Creates a new Daily room with specified parameters.
params
DailyRoomParams
required
Room configuration parameters including name, privacy, and properties

Get Room From URL

Retrieves room information using a Daily room URL.
room_url
string
required
The complete Daily room URL

Get Token

Generates a meeting token for a specific room.
room_url
string
required
The complete Daily room URL
expiry_time
float
default:"3600"
Token expiration time in seconds
eject_at_token_exp
bool
default:"False"
Whether to eject user when token expires
owner
bool
default:"True"
Whether the token should have owner privileges (overrides any setting in params)
params
DailyMeetingTokenParams
Additional token configuration. Note that room_name, exp, eject_at_token_exp, and is_owner will be set based on the other function parameters.

Delete Room By URL

Deletes a room using its URL.
room_url
string
required
The complete Daily room URL

Delete Room By Name

Deletes a room using its name.
room_name
string
required
The name of the Daily room

Get Name From URL

Extracts the room name from a Daily room URL.
room_url
string
required
The complete Daily room URL