The Speak AI API exposes 4 meeting assistant endpoints under the base URL https://api.speakai.co/v1. Every request needs the x-speakai-key and x-access-token headers described in Authentication.
Manage Meeting Assistant Events.
Fetch all your scheduled, complete or pending meeting assistant events.
What can you do with the meeting assistant endpoints?
Speak AI groups these 4 endpoints under the meeting assistant resource. Each entry below links to the full reference for that endpoint further down this page.
Events List
/meeting-assistant/eventsGet All the Meeting Assistants Events.
You can have more flexibily by passing query params.
page - Page number. Default is 0.
pageSize - Total records per page. Default is 25.
platformType - Default value is ""
Please ensure to pass the correct platformType from the list below:
googleMeet
zoom
microsoftTeams
webexmeetingStatus - Default value is ""
Please ensure to pass the correct meetingStatus from the list below:
willJoin
scheduled
cancelled
ready
joiningCall
inCallRecording
callEndedParameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
platformType |
query | string | No | |
meetingStatus |
query | string | No | |
page |
query | integer | No | |
pageSize |
query | integer | No |
curl -X GET 'https://api.speakai.co/v1/meeting-assistant/events?page=0&pageSize=25' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.totalCount |
integer |
data.events |
object[] |
Deeper nested fields are not listed. See the example response below for the full shape.
Example response (Events List), application/json. Arrays are shortened to one entry and long strings are cut.
{
"status": "success",
"data": {
"totalCount": 1,
"events": [
{
"source": "instant",
"_id": "64d2633e0d3c560cd10c73fd",
"currentStatus": "callEnded",
"companyId": "5e21xxxxx772xxxxxxx",
"userId": "5d0xxxxxxbca272xxxxxx",
"platform": "zoom",
"title": "Speak Ai Test Meeting",
"meetingURL": "ZOOM_MEETING_LINK",
"startTime": "2023-08-08T15:45:41.629Z",
"meetingAssistantEventId": "84f8f7d1cb13",
"attendees": [],
"history": [
{
"status": "joiningCall",
"createdAt": "2023-08-08T15:46:10.004Z"
}
],
"createdAt": "2023-08-08T15:46:06.570Z",
"updatedAt": "2023-08-08T16:31:15.046Z",
"__v": 0
}
]
}
}Delete Scheduled Assistant
/meeting-assistant/eventsDelete scheduled assistant for an event.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
meetingAssistantEventId |
query | string | Yes | required field |
curl -X DELETE 'https://api.speakai.co/v1/meeting-assistant/events?meetingAssistantEventId=7c583b090b1f' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.status |
string |
data.data |
string |
Example response (Delete a Scheduled Meeting Assistant), application/json.
{
"status": "success",
"data": {
"status": "success",
"data": "Event Deleted Successfully"
}
}Remove Assistant from Meeting
/meeting-assistant/events/removeRemove the assistant from a meeting. POST with meetingAssistantEventId in the JSON body.
Request body
Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.
| Field | Type |
|---|---|
meetingAssistantEventId |
string |
curl -X POST 'https://api.speakai.co/v1/meeting-assistant/events/remove' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
-H 'Content-Type: application/json' \
-d '{
"meetingAssistantEventId": "your_event_id_here"
}'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.status |
string |
data.data |
string |
Example response (Remove a Assistant From Meeting), application/json.
{
"status": "success",
"data": {
"status": "success",
"data": "Meeting Assistant Removed Successfully"
}
}Schedule Event
/meeting-assistant/events/scheduleSchedule Meeting Event
This endpoint allows you to schedule a meeting event by providing the meeting details.
Request Body
-
meetingDate(optional): The date and time for the scheduled meeting. If not provided, the meeting will be joined instantly. -
meetingLanguage(optional): The language for the meeting. Default is en-US. -
meetingURL(required): The URL of the meeting. -
title(required): The title of the meeting. -
tags(optional): You can pass comma seprated values to store as tags for your media files.
Response
-
status: The status of the response. -
data: An object containing details of the scheduled meeting event, including the company ID, user ID, meeting assistant ID, platform, source, meeting URL, start time, title, meeting language, current status, event ID, attendees, history, chat messages, creation and update timestamps, and version.
Request body
Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.
| Field | Type |
|---|---|
title |
string |
meetingURL |
string |
meetingLanguage |
string |
meetingDate |
string (date-time) |
curl -X POST 'https://api.speakai.co/v1/meeting-assistant/events/schedule' \
-H 'x-speakai-key: sk_test_speak_0000000000000000' \
-H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
-H 'Content-Type: application/json' \
-d '{
"title": "Team Standup",
"meetingURL": "https://meet.google.com/abc-defg-hij",
"meetingLanguage": "en-US",
"meetingDate": "2026-06-01T10:00:00.000Z"
}'200 OK
Response body, application/json.
| Field | Type |
|---|---|
status |
string |
data |
object |
data.companyId |
string |
data.userId |
string |
data.platform |
string |
data.source |
string |
data.meetingURL |
string |
data.startTime |
string (date-time) |
data.title |
string |
data.meetingLanguage |
string |
data.currentStatus |
string |
data._id |
string |
data.meetingAssistantEventId |
string |
data.attendees |
any[] |
data.history |
any[] |
data.createdAt |
string (date-time) |
data.updatedAt |
string (date-time) |
data.__v |
integer |
data.message |
string |
Example response (Schedule Event), application/json.
{
"status": "success",
"data": {
"companyId": "5e28dd2d77242c222222222",
"userId": "5d03a9d225d42a272e9c229",
"platform": "googleMeet",
"source": "instant",
"meetingURL": "https://meet.google.com/ctg-wcqv-xxxx",
"startTime": "2023-12-19T20:20:06.823Z",
"title": "Meeting Title",
"meetingLanguage": "en-US",
"currentStatus": "scheduled",
"_id": "6581faf3e7435ce0e78ad6b0",
"meetingAssistantEventId": "89c69e5afcc3",
"attendees": [],
"history": [],
"createdAt": "2023-12-19T20:20:03.208Z",
"updatedAt": "2023-12-19T20:20:03.208Z",
"__v": 0,
"message": "Meeting scheduled Successfully"
}
}Related pages
- API reference for the base URL, authentication, and the error format.
- Authenticate with the Speak AI API using access tokens
- Upload audio and video to Speak AI and read insights
- Create and update live transcription sessions in Speak AI
- Analyze text notes with the Speak AI text endpoints
Get an API key on the Speak AI developer page.