Create Bot

Create a new bot.

The base rate limit for this endpoint is:

  • 120 requests per min per workspace
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Use this endpoint to:

  • Schedule a bot to join planned meetings and capture recordings, transcripts, and meeting data.
  • Join ad-hoc meetings when a bot can't be scheduled in advance.
  • Stream real-time video and audio from a meeting to your app.
  • Create interactive agents that join calls to answer questions, guide workflows, or respond in real time.
❗️

In production, use scheduled bots by setting the join_at parameter to a time at least 10 minutes in the future to guarantee your bot will join on time.

You should use ad-hoc bots sparingly, only when your use case requires it (e.g. for spontaneous meetings). You can create ad-hoc bots by omitting the join_at or setting it to a time that is less than 10 minutes in the future.

📘

Bot status change events

To track bot lifecycle/status changes, listen for bot status change webhook events. Do not poll the API for bot status changes. Polling for bot status changes is an anti-pattern and must not be used in production integrations.

Bot status change events are delivered through the webhook configured in the Recall webhook dashboard. They cannot be subscribed to through recording_config.realtime_endpoints.

See Status Change Webhooks for setup and verification details, and Bot Webhooks for the list of available bot status changes.

Body Params
string
required

The url of the meeting. For example, https://zoom.us/j/123?pwd=456. This field will be cleared a few days after the bot has joined a call.

string
length between 1 and 100
Defaults to Meeting Notetaker

The name of the bot that will be displayed in the call.
(Note: Authenticated Google Meet bots will use the Google account name and this field will be ignored.)

date-time | null

The time at which the bot will join the call, formatted in ISO 8601. This field can only be read from scheduled bots that have not yet joined a call.

recording_config
object | null

Configure the recording generated by the bot. Includes options for getting meeting transcript, the layout of the recorded video, when to start recording and more.

output_media
object | null

Settings for the bot output media.

automatic_video_output
object | null

Settings for the bot to output video. Image should be 16:9. Read more about this here: https://docs.recall.ai/docs/output-video-in-meetings

automatic_audio_output
object | null

Settings for the bot to output audio.

chat
object | null

Settings for the bot to send chat messages.
(Note: Chat functionality is only supported for Zoom, Google Meet and Microsoft Teams currently.)

automatic_leave
object | null
variant
object | null

Configure bot variants per meeting platforms, e.g. {"zoom": "web_4_core"}.

zoom
object | null

Zoom specific parameters

google_meet
object | null

Google Meet specific parameters

webex
object | null

Webex specific parameters

breakout_room
object | null

Configure how the bot handles breakout rooms. Currently, Zoom is supported.Examples: {"mode": "join_main_room"} | {"mode": "join_specific_room", "room_id": ""} | {"mode": "auto_accept_all_invites"} (default).

metadata
object
Headers
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Responses

400

No response body

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json