Skip to main content
POST
Send an agent to a meeting

Authorizations

Authorization
string
header
required

Your Wixzel Voice API key: Authorization: Bearer wv_live_.... Keys are scoped; grant only what the integration needs.

Body

application/json
agent_id
string
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

meeting_url
string<uri>
required

The join link: a Zoom, Google Meet or Teams meeting URL, passcode included where the link carries one.

Maximum string length: 2000
Example:

"https://meet.google.com/abc-defg-hij"

bot_name
string

The name shown in the meeting. Defaults to the agent's name.

Required string length: 1 - 100
lead_id
string

Existing lead to attribute the meeting to; merge fields resolve from it.

Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

metadata
object

Your own identifiers, kept verbatim on the call and echoed in its callCompleted webhook. Never sent to the model.

max_duration_seconds
integer

Hard cap on the agent's time in the meeting, from when it is let in. Defaults to 3600; at most 14400 (4 hours).

Required range: 60 <= x <= 14400
Example:

3600

waiting_room_timeout_seconds
integer

How long the bot waits to be admitted before giving up. Defaults to 600.

Required range: 30 <= x <= 3600
respond_when
enum<string>

addressed (the default): the agent speaks only after someone says its name, and for a short follow-up window after it last spoke; anything else it would have said is not played. always: it answers whatever it hears, for a one-to-one meeting.

Available options:
addressed,
always
signed_in
boolean

Sign the bot in before it joins (Google Meet and Teams). Defaults to the integration's signed_in_bots setting for the meeting's platform. true on a Zoom link is refused.

wake_names
string[]

Extra names that address the agent besides bot_name and the agent's name, e.g. how people shorten it.

Maximum array length: 5
Required string length: 2 - 60

Response

The meeting, with its bot joining

id
string
required

The meeting's call id: GET /v1/calls/{id} returns the same call, with its transcript.

Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

object
enum<string>
required
Available options:
meeting
session_id
string
required
Example:

"mt-5b0c7c0e-9d1f-4c52-8a9e-2f0d3a4b6c7d"

status
enum<string>
required

joining until the bot is in or waiting, waiting_room while it waits to be admitted, in_meeting while it is in, then ended, or failed when it never got in or nothing was said.

Available options:
joining,
waiting_room,
in_meeting,
ended,
failed
agent_id
string
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

lead_id
string | null
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

meeting_url
string
required
platform
enum<string>
required

Worked out from the meeting link.

Available options:
zoom,
google_meet,
teams
bot_name
string
required
bot_id
string | null
required

The bot's id at your Attendee.

bot_state
string | null
required

Attendee's own last state for the bot, e.g. waiting_room, joined_recording, ended.

respond_when
enum<string>
required
Available options:
addressed,
always
signed_in
boolean
required

Whether the bot was sent signed in.

end_reason
string | null
required

Why it ended, e.g. meeting_ended, client, max_duration, could_not_join_meeting.

error
string | null
required
duration_seconds
integer | null
required

Billed seconds: from when the bot was in the meeting to the end.

cost_micros
integer | null
required

Micro-USD. 1_000_000 = $1.00.

Example:

194000

metadata
object | null
required
created_at
string<date-time>
required

ISO 8601, always UTC.

Example:

"2026-09-01T12:00:00.000Z"

joined_at
string<date-time> | null
required

ISO 8601, always UTC.

Example:

"2026-09-01T12:00:00.000Z"

ended_at
string<date-time> | null
required

ISO 8601, always UTC.

Example:

"2026-09-01T12:00:00.000Z"