POST
/
bots
/
start
curl --request POST \
  --url https://api.daily.co/v1/bots/start \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "bot_profile": "voice_2024_10",
  "services": {
    "stt": "deepgram",
    "llm": "anthropic",
    "tts": "cartesia"
  },
  "service_options": {},
  "recording_settings": {
    "type": "cloud",
    "recordings_bucket": {
      "allow_api_access": true,
      "allow_streaming_from_bucket": true,
      "assume_role_arn": "<string>",
      "bucket_name": "<string>",
      "bucket_region": "<string>"
    }
  },
  "max_duration": 200,
  "config": [
    "<any>"
  ],
  "api_keys": {},
  "dialin_settings": {
    "call_id": "<string>",
    "call_domain": "<string>"
  },
  "dialout_settings": {},
  "webhook_tools": {}
}'
{
  "room_url": "https://YOURDOMAIN.daily.co/YOURROOM",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyIjoiT0ZJcEdGWFZhMUxLWGNwbTlqY0MiLCJvIjp0cnVlLCJleHAiOjE3MjQxNjY3MzUsImQiOiJmNjE0NTVmMS1mODlhLTQxODEtYTczMi00M2Y4MDY0OWRlOWMiLCJpYXQiOjE3MjQxNjU4MzV9.I7V4K1q3DXryJkvfUfDY5-M6vdyWXCbdqmHQjU_8ago"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your DAILY_API_KEY.

Body

application/json
bot_profile
enum<string>
required

Profile name of the bot.

Available options:
voice_2024_10,
voice_2024_08,
vision_2024_10,
vision_2024_08,
openai_realtime_beta_2024_10,
natural_conversation_2024_11,
twilio_ws_voice_2024_09
services
object
required

Services associated with the bot. See supported services for more the most up-to-date options.

service_options
object

Optional service options for the services provided in the "services" section. The keys should match a service name provided in the "services" section. Each service can have either a single options object or an array of options objects. e.g. {"openai_tts": {"sample_rate": 24000}} or {"some_service": [{"option1": "value1"}, {"option2": "value2"}]}. See Service Options for more information.

recording_settings
object

Optional recording settings to specify what type of recording is created and where it is stored. See the Recording guide for more information.

max_duration
integer
default:
600

Maximum duration for the bot's operation in seconds.

Required range: 60 < x < 86400
config
any[]

Array of configurations for the services provided in the "services" section. The values should match a key provided in the "services" section. e.g. "llm", "tts", "stt" or a pre-defined service provided by they bot. e.g. `"vad". See Configurations for more information and see each service page from the Supported Services for available configuration options.

api_keys
object

Optional set of API keys for the bot use for the given services. The key values should match a service name provided in the "services" section. e.g. {"cartesia": YOUR_CARTESIA_API_KEY}. See BYO API keys for more information.

dialin_settings
object

Dial-in settings for the bot. See Dial-in for more information.

dialout_settings
object

Optional dial-out settings. See Dial-out for more information.

webhook_tools
object

Used to configure webhook handlers for LLM function calls. See Webhooks for more information.

Response

200
application/json
Successful response
room_url
string

The Daily room for your client to connect to.

token
string

The Daily meeting token to include when your client joins the room.