# Table of Contents - [Avoma APIs](#avoma-apis) - [Unknown](#unknown) --- # Avoma APIs * Introduction * Units * Glossary * Authorization * Rate Limits * Meetings * getGet Meeting segments * getList meetings * getGet Meeting Insights * getGet Meeting * postDrop Meeting * Recording * getGet Recording * getGet Recording using recording uuid * Transcriptions * getList Transcriptions * getGet Transcription * Smart Category * getList Smart Categories * postCreate the smart category settings * getGet Smart Categories * patchUpdate the smart category settings * Templates * getList Templates * postCreate Template * getGet Templates * putUpdate Template * Notes * getList Notes * Meetings Sentiments * getGet Meeting Sentiments * Users * getList users * getGet User * Calls * getList calls * postCreate Call * getGet Call * patchUpdate Call * Custom Category * getList Custom Categories * getGet Custom Category * Scorecards * getList Scorecard Templates * getRetrieve a Specific Scorecard Template * Scorecard Evaluations * getList Scorecard Evaluations * Webhooks * postAINote * postMEETING\_BOOKED\_VIA\_SCHEDULER * postMEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED * postMEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED * Meeting Types * getList Meeting Types * postCreate Meeting Type * getGet Meeting Type * patchUpdate Meeting Type * delDelete Meeting Type * Meeting Outcomes * getList Meeting Outcomes * postCreate Meeting Outcome * getGet Meeting Outcome * patchUpdate Meeting Outcome * delDelete Meeting Outcome * Engagement Analytics * getList Engagement Metrics for All Users * getGet Engagement Metrics for Specific User * getGet Overall Engagement Summary for All Users * getGet Engagement Summary for Specific User's Participants [![redocly logo](https://cdn.redoc.ly/redoc/logo-mini.svg)API docs by Redocly](https://redocly.com/redoc/) Avoma APIs (1.0.0) ================== Download OpenAPI specification:[Download](https://dev.avoma.com/openapi.yml) Avoma Help Center: [help@avoma.com](mailto:help@avoma.com) [](https://dev.avoma.com/#section/Introduction) Introduction ============================================================ Welcome to Avoma's developer hub. Our platform API documentation will help you to explore Avoma's data for your organization. Avoma API empowers you to create tailored solutions that redefine how you interact with and extract value from your conversational data, interact with meetings, capture recordings, and extract essential insights. [](https://dev.avoma.com/#section/Introduction/Units) Units ----------------------------------------------------------- All date-times are UTC and in [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.6) format. [](https://dev.avoma.com/#section/Introduction/Glossary) Glossary ----------------------------------------------------------------- Below is the list of entities used in Avoma and details about their relationships to each other. | Entity | Definition | | --- | --- | | **Meeting** | A meeting in Avoma created by the user or synced from third party sources (calendar, CRM, etc). | | **Recording** | A recording is Audio and Video information of the meeting. | | **Transcription** | A transcription generated for a meeting's recording. Transcriptions and meetings have a one-to-one relationship. The transcription object will be available once the recording for a meeting has been processed. | | **Meeting Purpose and Outcome** | Purposes and Outcomes are tags that help categorise meetings. | | **Template** | A template is format created using categories to extract AI-generated notes. | | **Notes** | AI-generated conversation summary with action items. | | **Sentiments** | Sentiments provide deeper understanding of the emotional tone through out the meeting. The emotional tone can be positive, negative or neutral. | | **Call** | A Call in Avoma can be created by the user or synced from third party sources. | | **Scorecards** | Scorecards provide an opportunity to share feedback with call participants, helping them understand areas of excellence and opportunities for improvement. | | **Scorecards Evaluations** | Scorecard Evaluations can be used by any Avoma user that participated in that call to share feedback. This scoring can take place all at once or at any time during the call. | | **Webhooks** | Avoma Webhooks notify users about the successful occurrence of events within the Avoma application. Instead of polling or calling APIs to detect events, Avoma sends webhook events as HTTP POST requests, with a JSON payload, to your specified endpoint URL. | | **Engagements** | Avoma Engagements API allows you to manage and retrieve engagement data, including participant information, engagement metrics, and interaction details for calls and meetings within the Avoma platform. | [](https://dev.avoma.com/#section/Introduction/Authorization) Authorization --------------------------------------------------------------------------- You will need an API key to access Avoma APIs. You can follow the steps in the `Avoma API Integration guide` to generate your API Key. ([https://help.avoma.com/api-integration-for-avoma](https://help.avoma.com/api-integration-for-avoma) ) Once generated, you will receive your Client Key, Client Secret. If you wish to use Zapier, you will need the `Client Key` and `Client Secret` to connect Zapier to Avoma. Once you have the key, you can send the key as a part of HTTP Authorization header as shown in below example. `Authorization: Bearer ` [](https://dev.avoma.com/#section/Introduction/Rate-Limits) Rate Limits ----------------------------------------------------------------------- To ensure fair usage and prevent abuse, our API is subject to rate limits. These limits define the number of requests you can make within a specific time period. We Rate Limit our APIs to 60 request in 1 minute period. ### Fair Use In an ideal setup, meetings would be spread across time and our platform is capable of handling reasonable loads and surges. We request intimating our engineering team in advance if you expect a sudden spike in number of meetings to be recorded during a specific period of time so that we can tweak the service to handle the unexpected loads accordingly. [](https://dev.avoma.com/#tag/Meetings) Meetings ================================================ Meetings are the foundation and starting point of the flow in Avoma. You can fetch recordings , transcriptions , ai notes , sentiments and coaching once the meeting is recorded and finished processing. [](https://dev.avoma.com/#tag/Meetings/paths/~1v1~1meeting_segments~1/get) Get Meeting segments ----------------------------------------------------------------------------------------------- Returns segments of the meeting for a given `uuid`. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting. | ### Responses **200** OK **404** Not Found. get/v1/meeting\_segments/ Avoma APIs https://api.avoma.com/v1/meeting\_segments/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "demo": [ * [ * 1275.9276, * 1383.3668 ] ], * "intro": [ * [ * 158.78497, * 207.5937 ] ], * "next_steps": [ * [ * 1383.3768, * 1437.3767 ] ], * "pricing": [ * [ * 222.02473, * 258.75413000000003 ] ] }` [](https://dev.avoma.com/#tag/Meetings/paths/~1v1~1meetings~1/get) List meetings -------------------------------------------------------------------------------- Returns all meetings from the organization with paginated response. If none of the query parameters are provided, it gives response for all meetings from the organization in descending order of `start_at`. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | page\_size | integer <= 100

Default: 10

Number of records returned per response. | | recording\_duration\_\_gte | number \>= 0

To retrieve meetings with recording duration(in seconds) greater than or equal to given value. Sending this filter will by default exclude meetings without recordings. | | from\_date

required | string

To retrieve meetings started at or started after given date-time(UTC). | | to\_date

required | string

To retrieve meetings started at or started before given date-time(UTC). | | is\_call | boolean

* `true`: Get only voice call meetings.
* `false`: Get only video call meetings. | | is\_internal | boolean

* `true`: Get meetings where no attendee is from outside the organization.
* `false`: Get meetings where there are attendees from outside the organization. | | attendee\_emails | string

Example: attendee\_emails=john.doe@example.com,kelly@acme.com

Comma-separated list of attendee emails to filter meetings by.
Meetings with _**any**_ of the attendees will be returned. | | crm\_account\_ids | string

Comma-separated list of CRM account external IDs to filter by. | | crm\_opportunity\_ids | string

Comma-separated list of CRM opportunity external IDs to filter by. | | crm\_contact\_ids | string

Comma-separated list of CRM contact external IDs to filter by. | | crm\_lead\_ids | string

Comma-separated list of CRM lead external IDs to filter by. | | include\_crm\_associations | boolean

Default: false

Whether to include CRM associations in the response. | | o | string

Default: "-start\_at"

Enum: "start\_at" "-start\_at"

To specify the ordering of the meetings list. Default is descending order. Ordering by modified is deprecated | ### Responses **200** OK **400** Invalid query params get/v1/meetings/ Avoma APIs https://api.avoma.com/v1/meetings/ ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "attendees": [ * { * "email": "user@example.com", * "name": "FirstName LastName", * "response_status": "needsaction", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "audio_ready": true, * "call_details": { * "external_id": "string", * "frm": "string", * "to": "string" }, * "created": "2019-08-24T14:15:22Z", * "crm_association": [ * { * "crm_obj_id": "102721358755", * "crm_obj_type": "contact" }, * { * "crm_obj_id": "30447071570", * "crm_obj_type": "account" }, * { * "crm_obj_id": "34202467419", * "crm_obj_type": "oppo" } ], * "duration": 4309.1, * "end_at": "2019-08-24T14:15:22Z", * "is_call": true, * "is_internal": true, * "is_private": true, * "modified": "2019-08-24T14:15:22Z", * "notes_ready": true, * "organizer_email": "user@example.com", * "outcome": { * "label": "Closed", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "processing_status": "transcription_available", * "purpose": { * "label": "Demo", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_uuid": "3e256a03-2cdd-4fe9-823b-2b61bb25d916", * "start_at": "2019-08-24T14:15:22Z", * "state": "scheduled", * "subject": "Daily Syncup", * "transcript_ready": true, * "transcription_uuid": "4753c6bf-25a6-45a1-8d86-0af7c8bde615", * "type": { * "label": "Demo", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "url": "[https://meet.google.com/abc-def](https://meet.google.com/abc-def) ", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "video_ready": true } ] }` [](https://dev.avoma.com/#tag/Meetings/paths/~1v1~1meetings~1{meeting_uuid}~1insights~1/get) Get Meeting Insights ----------------------------------------------------------------------------------------------------------------- Returns a insights for a meeting with given `meeting_uuid`. `state` of the meeting must be `completed` in order to get insights. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | meeting\_uuid

required | string

Unique ID of the meeting | ### Responses **200** OK **404** Not Found get/v1/meetings/{meeting\_uuid}/insights/ Avoma APIs https://api.avoma.com/v1/meetings/{meeting\_uuid}/insights/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "ai_notes": [ * { * "end": 0, * "note_type": "string", * "speaker_id": 0, * "start": 0, * "text": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "keywords": { * "occurrences": [ * { * "category": "Filler Words", * "count": 0, * "is_rep": true, * "keywords": [ * { * "count": 0, * "word": "Competitor" } ], * "speaker_id": 0 } ], * "popular": [ * { * "count": 0, * "score": 0, * "word": "Competitor" } ] }, * "speakers": [ * { * "email": "user@example.com", * "id": 0, * "is_rep": true, * "name": "FirstName LastName" } ] }` [](https://dev.avoma.com/#tag/Meetings/paths/~1v1~1meetings~1{uuid}~1/get) Get Meeting -------------------------------------------------------------------------------------- Returns a single meeting for a given `uuid`. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting. | ##### query Parameters | | | | --- | --- | | include\_crm\_associations | boolean

Default: false

Whether to include CRM associations in the response. | ### Responses **200** OK **404** Not Found. get/v1/meetings/{uuid}/ Avoma APIs https://api.avoma.com/v1/meetings/{uuid}/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "attendees": [ * { * "email": "user@example.com", * "name": "FirstName LastName", * "response_status": "needsaction", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "audio_ready": true, * "call_details": { * "external_id": "string", * "frm": "string", * "to": "string" }, * "created": "2019-08-24T14:15:22Z", * "crm_association": [ * { * "crm_obj_id": "102721358755", * "crm_obj_type": "contact" }, * { * "crm_obj_id": "30447071570", * "crm_obj_type": "account" }, * { * "crm_obj_id": "34202467419", * "crm_obj_type": "oppo" } ], * "duration": 4309.1, * "end_at": "2019-08-24T14:15:22Z", * "is_call": true, * "is_internal": true, * "is_private": true, * "modified": "2019-08-24T14:15:22Z", * "notes_ready": true, * "organizer_email": "user@example.com", * "outcome": { * "label": "Closed", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "processing_status": "transcription_available", * "purpose": { * "label": "Demo", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_uuid": "3e256a03-2cdd-4fe9-823b-2b61bb25d916", * "start_at": "2019-08-24T14:15:22Z", * "state": "scheduled", * "subject": "Daily Syncup", * "transcript_ready": true, * "transcription_uuid": "4753c6bf-25a6-45a1-8d86-0af7c8bde615", * "type": { * "label": "Demo", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "url": "[https://meet.google.com/abc-def](https://meet.google.com/abc-def) ", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "video_ready": true }` [](https://dev.avoma.com/#tag/Meetings/paths/~1v1~1meetings~1{uuid}~1drop~1/post) Drop Meeting ---------------------------------------------------------------------------------------------- Drop a meeting with given `uuid`. Bot must be in the meeting in order to drop meeting. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting | ### Responses **202** Accepted **400** Invalid query params **403** Permission Denied. **406** Not Acceptable post/v1/meetings/{uuid}/drop/ Avoma APIs https://api.avoma.com/v1/meetings/{uuid}/drop/ ### Response samples * 202 * 400 * 403 * 406 Content type application/json Copy `{ * "message": "Dropping meeting." }` [](https://dev.avoma.com/#tag/Recording) Recording ================================================== Recordings contain Audio and Video information for a completed meeting. Once recording is available you should be able to download the same using the pre-signed url. The url will be valid for 5 days. To check whether the recordings for a particular meeting are ready , you can invoke get meeting api and verify `audio_ready` and `video_ready` parameters in the response. [](https://dev.avoma.com/#tag/Recording/paths/~1v1~1recordings~1/get) Get Recording ----------------------------------------------------------------------------------- Returns a Video and Audio recording for a given meeting `uuid`. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | meeting\_uuid

required | string

Unique ID of the meeting. | ### Responses **200** OK **202** OK **403** Permission Denied. **404** Not Found **429** Too many requests get/v1/recordings/ Avoma APIs https://api.avoma.com/v1/recordings/ ### Response samples * 200 * 202 * 403 * 404 * 429 Content type application/json Copy `{ * "audio_url": "string", * "meeting_uuid": "65fb768c-30b9-4a9a-999f-5dab85e66635", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "valid_till": "2019-08-24T14:15:22Z", * "video_url": "string" }` [](https://dev.avoma.com/#tag/Recording/paths/~1v1~1recordings~1{uuid}~1/get) Get Recording using recording uuid ---------------------------------------------------------------------------------------------------------------- Returns a Video and Audio recording for a given recording `uuid`. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the recording. | ### Responses **200** OK **202** OK **404** Not Found **429** Too many requests get/v1/recordings/{uuid}/ Avoma APIs https://api.avoma.com/v1/recordings/{uuid}/ ### Response samples * 200 * 202 * 404 * 429 Content type application/json Copy `{ * "audio_url": "string", * "meeting_uuid": "string", * "message": "string", * "valid_till": "2019-08-24T14:15:22Z", * "video_url": "string" }` [](https://dev.avoma.com/#tag/Transcriptions) Transcriptions ============================================================ Transcription is generated for meeting's recording. This is available once the meeting recording is processed. Availability of transcription can be verified using `transcript_ready` parameter in get meeting response. [](https://dev.avoma.com/#tag/Transcriptions/paths/~1v1~1transcriptions~1/get) List Transcriptions -------------------------------------------------------------------------------------------------- Returns list of transcriptions. If meeting\_uuid is provided, returns transcription for that meeting directly. Otherwise returns paginated response of all transcriptions. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve transcriptions for meetings started at or started after given date-time(UTC). Not required when \`meeting\_uuid' is provided | | to\_date

required | string

To retrieve transcriptions for meetings started at or started before given date-time(UTC). Not required when \`meeting\_uuid' is provided | | meeting\_uuid | string

Unique ID of the meeting for which transcriptions will be fetched. | | page | integer \>= 1

Page number for pagination (only used when meeting\_uuid is not provided) | | page\_size | integer \[ 1 .. 100 \]

Number of items per page (max 100, only used when meeting\_uuid is not provided) | | attendee\_emails | string

Example: attendee\_emails=john.doe@example.com,kelly@acme.com

Comma-separated list of attendee emails to filter meetings by.
Meetings with _**any**_ of the attendees will be returned. | | crm\_account\_ids | string

Comma-separated list of CRM account external IDs to filter by. | | crm\_opportunity\_ids | string

Comma-separated list of CRM opportunity external IDs to filter by. | | crm\_contact\_ids | string

Comma-separated list of CRM contact external IDs to filter by. | | crm\_lead\_ids | string

Comma-separated list of CRM lead external IDs to filter by. | ### Responses **200** OK, returns transcription object when meeting\_uuid is provided, otherwise returns paginated response. get/v1/transcriptions/ Avoma APIs https://api.avoma.com/v1/transcriptions/ ### Response samples * 200 Content type application/json Example Single TranscriptionPaginated TranscriptionsSingle Transcription Copy Expand all Collapse all `[ * { * "meeting_uuid": "123e4567-e89b-12d3-a456-426614174000", * "speakers": [ * { * "email": "user@example.com", * "id": 0, * "is_rep": true, * "name": "FirstName LastName" } ], * "transcript": [ * { * "speaker_id": 0, * "timestamps": [ * 0.77, * 0.89, * 1.04, * 1.19 ], * "transcript": "Hey, how are you?" } ], * "transcription_vtt_url": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ]` [](https://dev.avoma.com/#tag/Transcriptions/paths/~1v1~1transcriptions~1{uuid}~1/get) Get Transcription -------------------------------------------------------------------------------------------------------- Returns a single transcription for a given `uuid`. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the transcription. | ### Responses **200** OK **404** Not Found get/v1/transcriptions/{uuid}/ Avoma APIs https://api.avoma.com/v1/transcriptions/{uuid}/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "meeting_uuid": "65fb768c-30b9-4a9a-999f-5dab85e66635", * "speakers": [ * { * "email": "user@example.com", * "id": 0, * "is_rep": true, * "name": "FirstName LastName" } ], * "transcript": [ * { * "speaker_id": 0, * "timestamps": [ * 0.77, * 0.89, * 1.04, * 1.19 ], * "transcript": "Hey, how are you?" } ], * "transcription_vtt_url": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Smart-Category) Smart Category ============================================================ Smart Categories can help organize your meeting notes into logical groupings, making it effortless to navigate and extract specific information from large volumes of conversational data. [](https://dev.avoma.com/#tag/Smart-Category/paths/~1v1~1smart_categories~1/get) List Smart Categories ------------------------------------------------------------------------------------------------------ Returns all smart categories from the organization. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | o | string

Default: "-start\_at"

Enum: "start\_at" "-start\_at" "modified" "-modified" "name" "-name" "background\_color" "-background\_color"

To specify the ordering of the custom category list. Default is descending order. | ### Responses **200** OK **400** Invalid query params get/v1/smart\_categories/ Avoma APIs https://api.avoma.com/v1/smart\_categories/ ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "is_default": true, * "key": "string", * "keywords": [ * { * "created": "2019-08-24T14:15:22Z", * "custom_category": "2e50f994-3965-4448-bd69-ff76f445ef3f", * "is_primary": true, * "label": "Competitor", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "variations": [ * "Competitor" ] } ], * "name": "string", * "prompts": [ * { * "created": "2019-08-24T14:15:22Z", * "custom_category": "2e50f994-3965-4448-bd69-ff76f445ef3f", * "label": "How did you hear about us", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "variations": [ * "How did you hear about us" ] } ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "keyword_tracking_enabled": true, * "prompt_extract_length": "string", * "prompt_extract_strategy": "string", * "prompt_notes_enabled": true }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ] }` [](https://dev.avoma.com/#tag/Smart-Category/paths/~1v1~1smart_categories~1/post) Create the smart category settings -------------------------------------------------------------------------------------------------------------------- Creates the smart category and settings ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | keywords

required | Array of strings

Keywords of the smart category | | name

required | string

Name of the smart category | | prompts

required | Array of strings

Prompts of the smart category | | settings

required | object

Settings of the smart category | ### Responses **200** **400** Invalid query params post/v1/smart\_categories/ Avoma APIs https://api.avoma.com/v1/smart\_categories/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "keywords": [ * "string" ], * "name": "string", * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "prompt_extract_length": "short", * "prompt_extract_strategy": "after" } }` ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "keywords": [ * "string" ], * "name": "string", * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "prompt_extract_length": "short", * "prompt_extract_strategy": "after", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } }` [](https://dev.avoma.com/#tag/Smart-Category/paths/~1v1~1smart_categories~1{uuid}~1/get) Get Smart Categories ------------------------------------------------------------------------------------------------------------- Returns smart categories from given uuid. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the smart category. | ### Responses **200** OK **400** Invalid query params get/v1/smart\_categories/{uuid}/ Avoma APIs https://api.avoma.com/v1/smart\_categories/{uuid}/ ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "is_default": true, * "key": "string", * "keywords": [ * { * "created": "2019-08-24T14:15:22Z", * "custom_category": "2e50f994-3965-4448-bd69-ff76f445ef3f", * "is_primary": true, * "label": "Competitor", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "variations": [ * "Competitor" ] } ], * "name": "string", * "prompts": [ * { * "created": "2019-08-24T14:15:22Z", * "custom_category": "2e50f994-3965-4448-bd69-ff76f445ef3f", * "label": "How did you hear about us", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "variations": [ * "How did you hear about us" ] } ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "keyword_tracking_enabled": true, * "prompt_extract_length": "string", * "prompt_extract_strategy": "string", * "prompt_notes_enabled": true }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Smart-Category/paths/~1v1~1smart_categories~1{uuid}~1/patch) Update the smart category settings ----------------------------------------------------------------------------------------------------------------------------- Updates the smart category and settings ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the Smart Category | ##### Request Body schema: application/json | | | | --- | --- | | keywords | Array of strings

Keywords of the smart category | | prompts | Array of strings

Prompts of the smart category | | settings | object

Settings of the smart category | ### Responses **200** patch/v1/smart\_categories/{uuid}/ Avoma APIs https://api.avoma.com/v1/smart\_categories/{uuid}/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "keywords": [ * "string" ], * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "prompt_extract_length": "short", * "prompt_extract_strategy": "after" } }` ### Response samples * 200 Content type application/json Copy Expand all Collapse all `{ * "keywords": [ * "string" ], * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "prompt_extract_length": "short", * "prompt_extract_strategy": "after" } }` [](https://dev.avoma.com/#tag/Templates) Templates ================================================== `Templates` help in extraction of AI-generated notes based on mentioned categories. A template will be automatically inserted into the meeting notes page, if the `meeting type` is set and has a template associated with a `meeting type`. [](https://dev.avoma.com/#tag/Templates/paths/~1v1~1template~1/get) List Templates ---------------------------------------------------------------------------------- Returns all templates from the organization. ##### Authorizations: _bearerAuth_ ### Responses **200** OK get/v1/template/ Avoma APIs https://api.avoma.com/v1/template/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `[ * { * "email": "user@example.com", * "is_default": true, * "meeting_types": [ * { * "label": "Stand Up", * "uuid": "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7" }, * { * "label": "Check-in", * "uuid": "b321142f-8084-4c69-a04f-0049f36cad9d" }, * { * "label": "Negotiation", * "uuid": "dd24f4ab-0424-44b9-a5f8-0cd69942d988" } ], * "name": "string", * "privacy": "private", * "text_slate": "[{\"type\": \"header-2\", \"children\": [{\"text\": \"Referral Source\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.642791\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_referral_source\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Action Items\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.643488\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_action_item\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Background\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644071\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_background\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Pain Point\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644757\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_pain_point\"}}]", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ]` [](https://dev.avoma.com/#tag/Templates/paths/~1v1~1template~1/post) Create Template ------------------------------------------------------------------------------------ Create a new template ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | categories

required | Array of strings

List of custom category uuids. | | email | string

Email of the user. If email user is part of organization, template will be associated with the user or it will be associated with the oldest admin user. | | is\_default | boolean

Is default template. | | meeting\_type\_uuids

required | Array of strings

List of meeting type uuids. | | name

required | string

Name of the template. | | privacy | string

Enum: "private" "organization"

Privacy of the template. | ### Responses **200** **400** Bad Request. Could be due to invalid input data or a duplicate template (based on external\_id). post/v1/template/ Avoma APIs https://api.avoma.com/v1/template/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "categories": [ * "edf84cad-6301-475b-9dfb-14d1d7302778", * "92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca", * "6cb8cd55-7044-4443-aa02-bc37168caf24" ], * "email": "user@example.com", * "is_default": true, * "meeting_type_uuids": [ * "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7", * "b321142f-8084-4c69-a04f-0049f36cad9d", * "dd24f4ab-0424-44b9-a5f8-0cd69942d988" ], * "name": "string", * "privacy": "private" }` ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "email": "user@example.com", * "is_default": true, * "meeting_types": [ * { * "label": "Stand Up", * "uuid": "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7" }, * { * "label": "Check-in", * "uuid": "b321142f-8084-4c69-a04f-0049f36cad9d" }, * { * "label": "Negotiation", * "uuid": "dd24f4ab-0424-44b9-a5f8-0cd69942d988" } ], * "name": "string", * "privacy": "private", * "text_slate": "[{\"type\": \"header-2\", \"children\": [{\"text\": \"Referral Source\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.642791\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_referral_source\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Action Items\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.643488\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_action_item\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Background\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644071\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_background\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Pain Point\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644757\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_pain_point\"}}]", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Templates/paths/~1v1~1template~1{uuid}~1/get) Get Templates ----------------------------------------------------------------------------------------- Returns templates from given uuid. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the template. | ### Responses **200** OK **404** Not Found. get/v1/template/{uuid}/ Avoma APIs https://api.avoma.com/v1/template/{uuid}/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "email": "user@example.com", * "is_default": true, * "meeting_types": [ * { * "label": "Stand Up", * "uuid": "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7" }, * { * "label": "Check-in", * "uuid": "b321142f-8084-4c69-a04f-0049f36cad9d" }, * { * "label": "Negotiation", * "uuid": "dd24f4ab-0424-44b9-a5f8-0cd69942d988" } ], * "name": "string", * "privacy": "private", * "text_slate": "[{\"type\": \"header-2\", \"children\": [{\"text\": \"Referral Source\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.642791\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_referral_source\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Action Items\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.643488\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_action_item\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Background\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644071\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_background\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Pain Point\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644757\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_pain_point\"}}]", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Templates/paths/~1v1~1template~1{uuid}~1/put) Update Template ------------------------------------------------------------------------------------------- Update a template, the update will replace the existing template. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the Template | ##### Request Body schema: application/json | | | | --- | --- | | categories

required | Array of strings

List of custom category uuids. | | email | string

Email of the user. If email user is part of organization, template will be associated with the user or it will be associated with the oldest admin user. | | is\_default | boolean

Is default template. | | meeting\_type\_uuids

required | Array of strings

List of meeting type uuids. | | name

required | string

Name of the template. | | privacy | string

Enum: "private" "organization"

Privacy of the template. | ### Responses **200** **400** Bad Request. Could be due to invalid input data or a duplicate template (based on external\_id). put/v1/template/{uuid}/ Avoma APIs https://api.avoma.com/v1/template/{uuid}/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "categories": [ * "edf84cad-6301-475b-9dfb-14d1d7302778", * "92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca", * "6cb8cd55-7044-4443-aa02-bc37168caf24" ], * "email": "user@example.com", * "is_default": true, * "meeting_type_uuids": [ * "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7", * "b321142f-8084-4c69-a04f-0049f36cad9d", * "dd24f4ab-0424-44b9-a5f8-0cd69942d988" ], * "name": "string", * "privacy": "private" }` ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "email": "user@example.com", * "is_default": true, * "meeting_types": [ * { * "label": "Stand Up", * "uuid": "9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7" }, * { * "label": "Check-in", * "uuid": "b321142f-8084-4c69-a04f-0049f36cad9d" }, * { * "label": "Negotiation", * "uuid": "dd24f4ab-0424-44b9-a5f8-0cd69942d988" } ], * "name": "string", * "privacy": "private", * "text_slate": "[{\"type\": \"header-2\", \"children\": [{\"text\": \"Referral Source\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.642791\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_referral_source\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Action Items\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.643488\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_action_item\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Background\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644071\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_background\"}}, {\"type\": \"header-2\", \"children\": [{\"text\": \"Pain Point\"}], \"data\": {\"block_created\": \"2023-11-28 07:58:47.644757\", \"highlight_notes_title\": true, \"block_key\": \"highlight_category_pain_point\"}}]", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Notes) Notes ========================================== Avoma's AI takes notes so that you can focus on engaging in the conversation. These notes are intelligently categorised using Avoma's Smart Categories feature, which employs natural language processing and machine learning to identify and label key themes, action items, decisions, and other pertinent topics discussed during the meeting. AI Notes are generated and available once the meeting recording and transcription are processed. Availability of ai notes can be verified using `notes_ready` parameter in get meeting response. [](https://dev.avoma.com/#tag/Notes/paths/~1v1~1notes~1/get) List Notes ----------------------------------------------------------------------- Returns all notes from the organization if no params are passed. If `meeting` is passed, returns all notes for that meeting. If `custom_category` is passed, returns all notes for that custom category. If `output_format` is passed, returns all notes for that output format. Choices are `json`,`html`,`markdown` ordering can be done by `created` or `modified` by passing `o=` in params ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | page\_size | integer <= 20

Default: 5

Number of records returned per response. | | from\_date

required | string

To retrieve notes for meetings started at or started after given date-time(UTC). | | to\_date

required | string

To retrieve notes for meetings started at or started before given date-time(UTC). | | o | string

Default: "-start\_at"

Enum: "start\_at" "-start\_at" "modified" "-modified"

To specify the ordering of the notes list. Default is descending order. | | output\_format | string

Default: "json"

Enum: "json" "html" "markdown"

To specify format of notes. Default is json. | | meeting\_uuid | string

Unique ID of the meeting for which notes will be fetched. | | custom\_category | string

Unique ID of the custom category. Only part of notes belonging to this custom category will be fetched. | ### Responses **200** OK **204** No content data found **400** Invalid query params get/v1/notes/ Avoma APIs https://api.avoma.com/v1/notes/ ### Response samples * 200 * 204 * 400 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "created": "2019-08-24T14:15:22Z", * "data": { }, * "modified": "2019-08-24T14:15:22Z" } ] }` [](https://dev.avoma.com/#tag/Meetings-Sentiments) Meetings Sentiments ====================================================================== Avoma's meeting sentiment feature is a powerful tool designed to provide end users with a deeper understanding of the emotional tone and dynamics within their meetings. By analyzing the content of conversations, vocal nuances, and contextual cues, Avoma's AI can accurately determine the overall sentiment of the meeting, whether it's positive, negative, or neutral. [](https://dev.avoma.com/#tag/Meetings-Sentiments/paths/~1v1~1meeting_sentiments~1/get) Get Meeting Sentiments -------------------------------------------------------------------------------------------------------------- Returns meeting sentiments. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | meeting\_uuid

required | string

Unique ID of the meeting for which sentiments will be fetched. | ### Responses **200** OK **400** Invalid query params **404** Not Found. get/v1/meeting\_sentiments/ Avoma APIs https://api.avoma.com/v1/meeting\_sentiments/ ### Response samples * 200 * 400 * 404 Content type application/json Copy Expand all Collapse all `[ * { * "sentiment": 0, * "sentiment_ranges": [ * { * "score": 0.3118, * "time_range": [ * 230.71687, * 474.23322 ] }, * { * "score": 0.3816, * "time_range": [ * 496.08014, * 597.6144 ] }, * { * "score": -0.2702, * "time_range": [ * 605.5101, * 723.9923 ] } ] } ]` [](https://dev.avoma.com/#tag/Users) Users ========================================== [](https://dev.avoma.com/#tag/Users/paths/~1v1~1users~1/get) List users ----------------------------------------------------------------------- ##### Authorizations: _bearerAuth_ ### Responses **200** get/v1/users/ Avoma APIs https://api.avoma.com/v1/users/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `[ * { * "active": "string", * "is_admin": true, * "position": "string", * "role": { * "description": "string", * "display_name": "string", * "name": "admin", * "role_type": "sys", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "status": "string", * "teams": "string", * "user": { * "email": "user@example.com", * "first_name": "string", * "is_active": true, * "job_function": "string", * "last_name": "string", * "position": "string", * "profile_pic": "string" }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ]` [](https://dev.avoma.com/#tag/Users/operation/Get%20User) Get User ------------------------------------------------------------------ ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string | ### Responses **200** get/v1/users/{uuid}/ Avoma APIs https://api.avoma.com/v1/users/{uuid}/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `{ * "active": "string", * "is_admin": true, * "position": "string", * "role": { * "description": "string", * "display_name": "string", * "name": "admin", * "role_type": "sys", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "status": "string", * "teams": "string", * "user": { * "email": "user@example.com", * "first_name": "string", * "is_active": true, * "job_function": "string", * "last_name": "string", * "position": "string", * "profile_pic": "string" }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Calls) Calls ========================================== [](https://dev.avoma.com/#tag/Calls/paths/~1v1~1calls~1/get) List calls ----------------------------------------------------------------------- Returns all calls from the organization. 12344 ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve calls started at or started after given date-time(UTC). | | to\_date

required | string

To retrieve calls started at or started before given date-time(UTC). | | direction | string

* `inbound`: Get only inbound calls.
* `outbound`: Get only outbound calls. | ### Responses **200** OK get/v1/calls/ Avoma APIs https://api.avoma.com/v1/calls/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "additional_details": "string", * "answered": "true", * "direction": "Outbound", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "frm": "+11234567890", * "frm_name": "string", * "is_voicemail": false, * "meeting": { * "created": "2019-08-24T14:15:22Z", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "id": 0, * "is_call": true, * "is_disclaimer_added": true, * "is_dummy": true, * "is_impromptu": true, * "is_internal": true, * "is_original": true, * "is_private": true, * "is_split_processed": true, * "location": "string", * "meeting_url": "string", * "modified": "2019-08-24T14:15:22Z", * "org_not_found": true, * "organization": 0, * "organizer_email": "user@example.com", * "original_meeting": 0, * "original_model_counts": { }, * "original_org_count": -2147483648, * "recurring_master": 0, * "start_at": "2019-08-24T14:15:22Z", * "state": "tentative", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "organization": { * "created": "2019-08-24T14:15:22Z", * "domain": "string", * "id": 0, * "is_marked_for_deletion": true, * "modified": "2019-08-24T14:15:22Z", * "name": "string", * "timezone": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_url": "[https://example.com/recording.mp3](https://example.com/recording.mp3) ", * "source": "ringcentral", * "start_at": "2019-08-24T14:15:22Z", * "state": "created", * "to": "+12234567890", * "to_name": "string", * "user_email": "user@example.com", * "subject": "Sales Call with John Doe", * "meeting_purpose_uuid": "123e4567-e89b-12d3-a456-426614174000", * "meeting_outcome_uuid": "123e4567-e89b-12d3-a456-426614174001" } ] }` [](https://dev.avoma.com/#tag/Calls/operation/createExtCall) Create Call ------------------------------------------------------------------------ Creates a new call ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/jsonapplication/x-www-form-urlencodedmultipart/form-dataapplication/json | | | | --- | --- | | additional\_details | string or null

Additional details of the call. This should be a JSON object. | | answered | boolean or null

Whether the call was answered, e.g true, false | | associations | object | | direction

required | string or null <= 255 characters

Direction of the call, e.g. Inbound, Outbound | | end\_at | string or null

End time of the call. | | external\_id

required | string <= 255 characters

Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. | | frm

required | string or null <= 255 characters

Phone number from which call was made. | | frm\_name | string or null <= 255 characters

Name of the caller who made the call. | | is\_voicemail | boolean

Default: false

Indicates if the call is a voicemail. | | participants

required | Array of objects

List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. | | recording\_url

required | string or null

URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. | | source

required | string or null <= 255 characters

Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. | | start\_at

required | string or null

Start time of the call. | | to

required | string or null <= 255 characters

Phone number to which call was made. | | to\_name | string or null <= 255 characters

Name of the person to whom call was made. | | user\_email

required | string <= 254 characters

Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. | ### Responses **201** **400** Bad Request. Could be due to invalid input data, a duplicate call (based on external\_id and source), or issues with the provided user\_email (user not found, user not in the organization, user inactive, or user lacks the required dialer feature). post/v1/calls/ Avoma APIs https://api.avoma.com/v1/calls/ ### Request samples * Payload Content type application/jsonapplication/x-www-form-urlencodedmultipart/form-dataapplication/json Copy Expand all Collapse all `{ * "additional_details": "string", * "answered": "true", * "associations": { * "object": [ * { * "id": "string", * "type": "string" } ], * "system": "string" }, * "direction": "Outbound", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "frm": "+11234567890", * "frm_name": "string", * "is_voicemail": false, * "participants": [ * { * "associations": { * "object": [ * { * "id": "string", * "type": "string" } ], * "system": "string" }, * "email": "user@example.com", * "name": "string" } ], * "recording_url": "[https://example.com/recording.mp3](https://example.com/recording.mp3) ", * "source": "ringcentral", * "start_at": "2019-08-24T14:15:22Z", * "to": "+12234567890", * "to_name": "string", * "user_email": "user@example.com" }` ### Response samples * 201 * 400 Content type application/json Copy Expand all Collapse all `{ * "additional_details": "string", * "answered": "true", * "direction": "Outbound", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "frm": "+11234567890", * "frm_name": "string", * "is_voicemail": false, * "meeting": { * "created": "2019-08-24T14:15:22Z", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "id": 0, * "is_call": true, * "is_disclaimer_added": true, * "is_dummy": true, * "is_impromptu": true, * "is_internal": true, * "is_original": true, * "is_private": true, * "is_split_processed": true, * "location": "string", * "meeting_url": "string", * "modified": "2019-08-24T14:15:22Z", * "org_not_found": true, * "organization": 0, * "organizer_email": "user@example.com", * "original_meeting": 0, * "original_model_counts": { }, * "original_org_count": -2147483648, * "recurring_master": 0, * "start_at": "2019-08-24T14:15:22Z", * "state": "tentative", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "organization": { * "created": "2019-08-24T14:15:22Z", * "domain": "string", * "id": 0, * "is_marked_for_deletion": true, * "modified": "2019-08-24T14:15:22Z", * "name": "string", * "timezone": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_url": "[https://example.com/recording.mp3](https://example.com/recording.mp3) ", * "source": "ringcentral", * "start_at": "2019-08-24T14:15:22Z", * "state": "created", * "to": "+12234567890", * "to_name": "string", * "user_email": "user@example.com" }` [](https://dev.avoma.com/#tag/Calls/paths/~1v1~1calls~1{external_id}~1/get) Get Call ------------------------------------------------------------------------------------ Returns a single call for a given `external_id`. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | external\_id

required | string | ### Responses **200** **404** Not Found. get/v1/calls/{external\_id}/ Avoma APIs https://api.avoma.com/v1/calls/{external\_id}/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "additional_details": "string", * "answered": "true", * "direction": "Outbound", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "frm": "+11234567890", * "frm_name": "string", * "is_voicemail": false, * "meeting": { * "created": "2019-08-24T14:15:22Z", * "end_at": "2019-08-24T14:15:22Z", * "external_id": "string", * "id": 0, * "is_call": true, * "is_disclaimer_added": true, * "is_dummy": true, * "is_impromptu": true, * "is_internal": true, * "is_original": true, * "is_private": true, * "is_split_processed": true, * "location": "string", * "meeting_url": "string", * "modified": "2019-08-24T14:15:22Z", * "org_not_found": true, * "organization": 0, * "organizer_email": "user@example.com", * "original_meeting": 0, * "original_model_counts": { }, * "original_org_count": -2147483648, * "recurring_master": 0, * "start_at": "2019-08-24T14:15:22Z", * "state": "tentative", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "organization": { * "created": "2019-08-24T14:15:22Z", * "domain": "string", * "id": 0, * "is_marked_for_deletion": true, * "modified": "2019-08-24T14:15:22Z", * "name": "string", * "timezone": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_url": "[https://example.com/recording.mp3](https://example.com/recording.mp3) ", * "source": "ringcentral", * "start_at": "2019-08-24T14:15:22Z", * "state": "created", * "to": "+12234567890", * "to_name": "string", * "user_email": "user@example.com" }` [](https://dev.avoma.com/#tag/Calls/paths/~1v1~1calls~1{external_id}~1/patch) Update Call ----------------------------------------------------------------------------------------- Updates call fields that are allowed after meeting processing is complete. Only allows updating call-specific metadata fields. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | external\_id

required | string

External ID of the call to update | ##### Request Body schema: application/json Any of objectobjectobjectobjectobjectobjectobjectobjectobject | | | | --- | --- | | additional\_details | string

Additional call metadata in JSON format | ### Responses **200** Call updated successfully **400** Invalid request data **404** Call not found **500** Internal server error patch/v1/calls/{external\_id}/ Avoma APIs https://api.avoma.com/v1/calls/{external\_id}/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "associations": { * "system": "string", * "object": [ * { * "type": "string", * "id": "string" } ] } }` ### Response samples * 200 * 400 * 404 * 500 Content type application/json Copy Expand all Collapse all `{ * "external_id": "string", * "user_email": "user@example.com", * "organization": { * "id": 0, * "created": "2019-08-24T14:15:22Z", * "modified": "2019-08-24T14:15:22Z", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "name": "string", * "domain": "string", * "timezone": "string", * "is_marked_for_deletion": true }, * "state": "created", * "frm": "+11234567890", * "frm_name": "string", * "to": "+12234567890", * "to_name": "string", * "start_at": "2019-08-24T14:15:22Z", * "end_at": "2019-08-24T14:15:22Z", * "recording_url": "[https://example.com/recording.mp3](https://example.com/recording.mp3) ", * "direction": "Outbound", * "answered": "true", * "additional_details": "string", * "meeting": { * "id": 0, * "created": "2019-08-24T14:15:22Z", * "modified": "2019-08-24T14:15:22Z", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "subject": "string", * "organizer_email": "user@example.com", * "external_id": "string", * "state": "tentative", * "start_at": "2019-08-24T14:15:22Z", * "end_at": "2019-08-24T14:15:22Z", * "location": "string", * "meeting_url": "string", * "is_call": true, * "is_internal": true, * "is_dummy": true, * "is_impromptu": true, * "is_private": true, * "is_disclaimer_added": true, * "is_original": true, * "is_split_processed": true, * "original_model_counts": { }, * "original_org_count": -2147483648, * "org_not_found": true, * "organization": 0, * "recurring_master": 0, * "original_meeting": 0 }, * "is_voicemail": false, * "source": "ringcentral", * "subject": "Sales Call with John Doe", * "meeting_purpose_uuid": "123e4567-e89b-12d3-a456-426614174000", * "meeting_outcome_uuid": "123e4567-e89b-12d3-a456-426614174001", * "associations": { * "system": "string", * "object": [ * { * "id": "string", * "type": "string" } ] } }` [](https://dev.avoma.com/#tag/Custom-Category) Custom Category ============================================================== **Deprecated**: The "Custom Category" feature is deprecated and will be removed in future versions. We recommend using the "Smart Category" feature instead. [](https://dev.avoma.com/#tag/Custom-Category/paths/~1v1~1custom_categories~1/get) List Custom Categories --------------------------------------------------------------------------------------------------------- Returns all custom categories from the organization. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | o | string

Default: "-start\_at"

Enum: "start\_at" "-start\_at" "modified" "-modified" "name" "-name" "background\_color" "-background\_color"

To specify the ordering of the custom category list. Default is descending order. | ### Responses **200** OK **400** Invalid query params get/v1/custom\_categories/ Avoma APIs https://api.avoma.com/v1/custom\_categories/ ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "av_field_mapping": { }, * "background_color": "string", * "is_default": true, * "key": "string", * "keywords": [ * "string" ], * "name": "string", * "order": 0, * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "keyword_tracking_enabled": true, * "meeting_type_rule": 0, * "meeting_types_blacklisted": [ * "string" ], * "meeting_types_whitelisted": [ * "string" ], * "prompt_extract_length": "string", * "prompt_extract_strategy": "string", * "prompt_notes_enabled": true }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ] }` [](https://dev.avoma.com/#tag/Custom-Category/paths/~1v1~1custom_categories~1{uuid}~1/get) Get Custom Category -------------------------------------------------------------------------------------------------------------- Returns a single custom category for a given `uuid`. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the custom category. | ### Responses **200** OK **404** Not Found. get/v1/custom\_categories/{uuid}/ Avoma APIs https://api.avoma.com/v1/custom\_categories/{uuid}/ ### Response samples * 200 * 404 Content type application/json Copy Expand all Collapse all `{ * "av_field_mapping": { }, * "background_color": "string", * "is_default": true, * "key": "string", * "keywords": [ * "string" ], * "name": "string", * "order": 0, * "prompts": [ * "string" ], * "settings": { * "aug_notes_enabled": true, * "keyword_notes_enabled": true, * "keyword_tracking_enabled": true, * "meeting_type_rule": 0, * "meeting_types_blacklisted": [ * "string" ], * "meeting_types_whitelisted": [ * "string" ], * "prompt_extract_length": "string", * "prompt_extract_strategy": "string", * "prompt_notes_enabled": true }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Scorecards) Scorecards ==================================================== [](https://dev.avoma.com/#tag/Scorecards/operation/scorecards_list) List Scorecard Templates -------------------------------------------------------------------------------------------- Retrieve a list of available scorecard templates. ##### Authorizations: _bearerAuth_ ### Responses **200** Successful response containing a list of scorecard templates get/v1/scorecards/ Avoma APIs https://api.avoma.com/v1/scorecards/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `[ * { * "created": "2019-08-24T14:15:22Z", * "created_by": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "description": "string", * "is_ai": true, * "modified": "2019-08-24T14:15:22Z", * "modified_by": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "name": "string", * "questions": [ * { * "created": "2019-08-24T14:15:22Z", * "modified": "2019-08-24T14:15:22Z", * "order": 0, * "question": "string", * "question_choices": [ * { * "choice_text": "string", * "order": 0, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "question_type": "bool", * "tags": [ * { * "tag": "string" } ], * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "state": "draft", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ]` [](https://dev.avoma.com/#tag/Scorecards/operation/scorecards_retrieve) Retrieve a Specific Scorecard Template -------------------------------------------------------------------------------------------------------------- Get details of a specific scorecard template by its UUID. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

UUID of the scorecard template | ### Responses **200** Successful response containing details of the requested scorecard template get/v1/scorecards/{uuid}/ Avoma APIs https://api.avoma.com/v1/scorecards/{uuid}/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `{ * "created": "2019-08-24T14:15:22Z", * "created_by": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "description": "string", * "is_ai": true, * "modified": "2019-08-24T14:15:22Z", * "modified_by": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "name": "string", * "questions": [ * { * "created": "2019-08-24T14:15:22Z", * "modified": "2019-08-24T14:15:22Z", * "order": 0, * "question": "string", * "question_choices": [ * { * "choice_text": "string", * "order": 0, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "question_type": "bool", * "tags": [ * { * "tag": "string" } ], * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "state": "draft", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Scorecard-Evaluations) Scorecard Evaluations ========================================================================== [](https://dev.avoma.com/#tag/Scorecard-Evaluations/operation/scorecard_evaluations_list) List Scorecard Evaluations -------------------------------------------------------------------------------------------------------------------- Retrieve a list of scorecard evaluations for meetings. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | page\_size | integer <= 100

Default: 10

Number of results to return per page. | | from\_date | string

Start date for filtering scorecard evaluations (UTC) | | to\_date | string

End date for filtering scorecard evaluations (UTC) | | scorecard\_uuids | Array of strings

Array of scorecard template UUIDs to filter evaluations | | meeting\_uuid | string

UUID of the meeting for which to fetch scorecard evaluations. | | user\_emails | Array of strings

Array of user emails for who the scorecard evaluations are for. | ### Responses **200** Successful response containing a list of scorecard evaluations get/v1/scorecard\_evaluations/ Avoma APIs https://api.avoma.com/v1/scorecard\_evaluations/ ### Response samples * 200 Content type application/json Copy Expand all Collapse all `{ * "count": 0, * "next": "[https://example.com/api/v1/meeting/?page=2](https://example.com/api/v1/meeting/?page=2) ", * "previous": "[https://example.com/api/v1/meeting/?page=1](https://example.com/api/v1/meeting/?page=1) ", * "results": [ * { * "company_name": "string", * "created": "2019-08-24T14:15:22Z", * "deal_names": [ * "string" ], * "evaluations": [ * { * "answer_text": "string", * "answer_uuid": "d9396689-d6ea-4537-80d2-528ab5cc7b28", * "justification": "string", * "order": 0, * "question_text": "string", * "question_uuid": "3bd338c2-dc82-47c4-83c8-225049c14788" } ], * "meeting": { * "end_at": "2019-08-24T14:15:22Z", * "organizer_email": "user@example.com", * "start_at": "2019-08-24T14:15:22Z", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "modified": "2019-08-24T14:15:22Z", * "overall_score": 0, * "scorecard_template_name": "string", * "scorecard_uuid": "dfcb3a87-7f8e-445d-ba85-313e6995c210", * "scored_by": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "scored_for": { * "email": "user@example.com", * "first_name": "string", * "last_name": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ] }` [](https://dev.avoma.com/#tag/Webhooks) Webhooks ================================================ **Webhooks** Avoma Webhooks notify users about the successful occurrence of events within the Avoma application. Instead of polling or calling APIs to detect events, Avoma sends webhook events as HTTP POST requests, with a JSON payload, to your specified endpoint URL. **Subscribing to Webhooks** To subscribe to webhooks, please reach out to Avoma support and provide a public HTTPS endpoint URL. The URL must be secure (HTTPS). Your endpoint should respond with an HTTP **200** status code to acknowledge receipt of the webhook data. If no response or an error is returned, Avoma will retry the connection up to five times within 24 hours. To avoid retries and errors, always acknowledge the receipt of webhooks by responding with HTTP **200**. If persistent non-success responses are received more than five times in the last 24 hours, Avoma will unsubscribe your webhooks. **Supported Event Types** Currently, Avoma supports the following event types: * **AINOTE**: Emitted when notes are successfully generated for meetings or calls. * **MEETING\_BOOKED\_VIA\_SCHEDULER**: Emitted when a meeting is booked via one of your Avoma scheduling pages. * **MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED**: Emitted when a scheduled meeting is rescheduled. * **MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED**: Emitted when a meeting booked via the scheduling page is canceled. **Verify Webhooks (Optional)** You can optionally verify the authenticity of webhooks by checking the digital signature to ensure they came from Avoma. Each webhook includes an `X-Avoma-Signature` header with a signature that you can use to verify the webhook. To verify the signature: 1. Retrieve the payload from the received webhook event. 2. Obtain your Avoma API secret key (provided when you requested API/Webhooks access). 3. Compute the HMAC using the payload and your secret key, using the SHA256 digest algorithm. 4. Convert the result to a hexadecimal format. 5. Compare the computed value to the value in the `X-Avoma-Signature` header. If they match, the webhook is from Avoma. **Sample Code for Webhook Verification** _Node.js:_ const crypto = require('crypto'); const message = `${JSON.stringify(request.body)}`; const hashForVerify = crypto.createHmac('sha256', AVOMA_API_KEY).update(message).digest('hex'); const signature = `${hashForVerify}`; if (request.headers['x-avoma-signature'] === signature) { // Webhook request came from Avoma } else { // Webhook request did not come from Avoma } _Python:_ import hashlib import hmac import json request = "YOUR WEBHOOK REQUEST" secret_key = "YOUR_SECRET_KEY" body_unicode = request.body.decode("utf-8") h = hmac.new(secret_key.encode('utf-8'), body_unicode.encode('utf-8'), hashlib.sha256) # Compare the computed signature with the signature from the request lowercase_headers = {key.lower(): value for key, value in request.headers.items()} webhook_signature = lowercase_headers.get('x-avoma-signature') if webhook_signature != h.hexdigest(): print("Webhook signature does not match") [](https://dev.avoma.com/#tag/Webhooks/operation/postAinotes) AINote -------------------------------------------------------------------- Emitted to notify the successful generation of notes on Meetings or Calls. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | action\_items | Array of objects

List of action items extracted from the meeting. | | ai\_notes | string or null

AI-generated notes for the meeting in HTML format. | | ai\_notes\_txt | string or null

AI-generated notes for the meeting in markdown/text format. | | attendees | Array of objects

The attendees of the meeting. | | audio\_ready | boolean

Indicates if the audio is ready. | | audio\_url | string

The URL of the audio. | | created | string

The creation date-time (UTC). | | duration | number

The duration of the meeting. | | end\_at | string

The end time of the meeting. | | event\_type | string

Value: "AINOTE"

The event type of the meeting. | | insights | object

The insights of the meeting. | | is\_call | boolean

Indicates if the meeting is a voice call. | | is\_internal | boolean

Indicates if the meeting is internal. - `true`: Get meetings where no attendee is from outside the organization. - `false`: Get meetings where there are attendees from outside the organization. | | meeting\_url | string or null

Direct URL to the meeting in Avoma platform. | | modified | string

Last modification date-time(UTC). | | notes\_ready | boolean

Indicates if the notes are ready. | | organizer\_email | string

The email of the organizer. | | organizer\_name | string

The name of the organizer. | | privacy | string

Enum: "private" "organization"

The privacy of the meeting. | | processing\_status | string

The processing status of the meeting. | | purpose | object

The purpose of the meeting. | | recording\_uuid | string

The unique identifier of the recording. | | start\_at | string

The start time of the meeting. | | state | string

The state of the meeting. | | subject | string

The subject of the meeting. | | transcript\_ready | boolean

Indicates if the transcript is ready. | | transcription\_uuid | string

The unique identifier of the transcription. | | transcription\_vtt\_url | string

Signed url of the transcription vtt file. | | uuid | string

The unique identifier of the meeting. | | video\_ready | boolean

Indicates if the video is ready. | | video\_url | string

The URL of the video. | ### Responses **200** NO Response. post/v1/webhooks/ Avoma APIs https://api.avoma.com/v1/webhooks/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "action_items": [ * { * "action_item": "Follow up with client on project timeline", * "company": "Avoma", * "email": "john.doe@avoma.com", * "name": "John Doe" }, * { * "action_item": "Review and provide feedback on proposal", * "company": "Client Corp", * "email": "jane.smith@client.com", * "name": "Jane Smith" } ], * "ai_notes": "

Participants

  • Avoma: John Doe

", * "ai_notes_txt": "Participants: Avoma: John Doe", * "attendees": [ * { * "email": "user@example.com", * "name": "string", * "response_status": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } ], * "audio_ready": true, * "audio_url": "[http://example.com](http://example.com/) ", * "created": "2019-08-24T14:15:22Z", * "duration": 0, * "end_at": "2019-08-24T14:15:22Z", * "event_type": "AINOTE", * "insights": { * "filler_wpm": [ * { * "designation": "string", * "filler_wpm": 0, * "speaker_id": "string" } ], * "longest_monologue": { * "rep": { * "segments": [ * [ * 0 ] ], * "speaker_id": "string" } }, * "patience": [ * { * "designation": "string", * "patience": 0, * "speaker_id": "string" } ], * "sentiment": { * "sentiment": 0, * "sentiment_ranges": [ * { * "range": "string", * "sentiment_value": 0 } ] }, * "speaker_mapping": { * "email": "user@example.com", * "id": 0, * "name": "string" }, * "talk_stats": { * "talk_percentage": 0, * "total_talk_time": 0 }, * "wpm": [ * { * "designation": "string", * "speaker_id": "string", * "wpm": 0 } ] }, * "is_call": true, * "is_internal": true, * "meeting_url": "[https://app.avoma.com/meeting/aa380fc2-725d-4ef8-909c-c595c0e62bcd](https://app.avoma.com/meeting/aa380fc2-725d-4ef8-909c-c595c0e62bcd) ", * "modified": "2019-08-24T14:15:22Z", * "notes_ready": true, * "organizer_email": "user@example.com", * "organizer_name": "string", * "privacy": "private", * "processing_status": "string", * "purpose": { * "label": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }, * "recording_uuid": "3e256a03-2cdd-4fe9-823b-2b61bb25d916", * "start_at": "2019-08-24T14:15:22Z", * "state": "string", * "subject": "string", * "transcript_ready": true, * "transcription_uuid": "4753c6bf-25a6-45a1-8d86-0af7c8bde615", * "transcription_vtt_url": "[http://example.com](http://example.com/) ", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "video_ready": true, * "video_url": "[http://example.com](http://example.com/) " }` [](https://dev.avoma.com/#tag/Webhooks/operation/postMeetingBookedViaScheduler) MEETING\_BOOKED\_VIA\_SCHEDULER --------------------------------------------------------------------------------------------------------------- Emitted when a meeting is booked through one of your Avoma scheduling pages. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | booker\_email | string or null

The email of the booker. | | cancel\_reason | string or null

The reason for the cancellation. | | conference\_link | string

The conference link of the event. | | created | string

Timestamp when the meeting was created. | | event\_end\_time | string

The end time of the event. | | event\_start\_time | string

The start time of the event. | | event\_type | string

Value: "MEETING\_BOOKED\_VIA\_SCHEDULER"

The type of the event. | | invitee\_details | object

The details of the invitee. | | invitee\_responses | Array of objects

The responses of the invitee. | | meeting\_uuid | string

The unique identifier of the meeting created in Avoma. | | modified | string

Timestamp when the event was last modified. | | organizer\_email | string

The email of the organizer. | | organizer\_timezone | string

The timezone of the organizer. | | purpose | string or null

The purpose of the meeting. | | scheduling\_page\_link | string

The scheduling page link. | | subject | string

The subject of the meeting. | | uuid | string

The unique identifier of the event. | ### Responses **200** NO Response post/v1/webhooks/meeting\_booked\_via\_scheduler/ Avoma APIs https://api.avoma.com/v1/webhooks/meeting\_booked\_via\_scheduler/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "booker_email": "string", * "cancel_reason": "string", * "conference_link": "string", * "created": "2019-08-24T14:15:22Z", * "event_end_time": "2019-08-24T14:15:22Z", * "event_start_time": "2019-08-24T14:15:22Z", * "event_type": "MEETING_BOOKED_VIA_SCHEDULER", * "invitee_details": { * "email": "user@example.com", * "locale": "string", * "name": "string", * "tz": "string" }, * "invitee_responses": [ * { * "question": "string", * "response": "string" } ], * "meeting_uuid": "65fb768c-30b9-4a9a-999f-5dab85e66635", * "modified": "2019-08-24T14:15:22Z", * "organizer_email": "user@example.com", * "organizer_timezone": "string", * "purpose": "string", * "scheduling_page_link": "string", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Webhooks/operation/postMeetingBookedViaSchedulerCanceled) MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED --------------------------------------------------------------------------------------------------------------------------------- Emitted when a meeting that was booked through one of your Avoma scheduling pages is canceled. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | booker\_email | string or null

The email of the booker. | | cancel\_reason | string or null

The reason for the cancellation. | | conference\_link | string

The conference link of the event. | | created | string

Timestamp when the event was created. | | event\_end\_time | string

The end time of the event. | | event\_start\_time | string

The start time of the event. | | event\_type | string

Value: "MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED"

The type of the event. | | invitee\_details | object

The details of the invitee. | | invitee\_responses | Array of objects

The responses of the invitee. | | meeting\_uuid | string

The unique identifier of the meeting. | | modified | string

Timestamp when the event was last modified. | | organizer\_email | string

The email of the organizer. | | organizer\_timezone | string

The timezone of the organizer. | | purpose | string or null

The purpose of the event. | | scheduling\_page\_link | string

The scheduling page link. | | subject | string

The subject of the event. | | uuid | string

The unique identifier of the event. | ### Responses **200** NO Response post/v1/webhooks/meeting\_booked\_via\_scheduler\_canceled/ Avoma APIs https://api.avoma.com/v1/webhooks/meeting\_booked\_via\_scheduler\_canceled/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "booker_email": "string", * "cancel_reason": "string", * "conference_link": "string", * "created": "2019-08-24T14:15:22Z", * "event_end_time": "2019-08-24T14:15:22Z", * "event_start_time": "2019-08-24T14:15:22Z", * "event_type": "MEETING_BOOKED_VIA_SCHEDULER_CANCELED", * "invitee_details": { * "email": "user@example.com", * "locale": "string", * "name": "string", * "tz": "string" }, * "invitee_responses": [ * { * "question": "string", * "response": "string" } ], * "meeting_uuid": "65fb768c-30b9-4a9a-999f-5dab85e66635", * "modified": "2019-08-24T14:15:22Z", * "organizer_email": "user@example.com", * "organizer_timezone": "string", * "purpose": "string", * "scheduling_page_link": "string", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Webhooks/operation/postMeetingBookedViaSchedulerRescheduled) MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED --------------------------------------------------------------------------------------------------------------------------------------- Emitted when a meeting that was booked through one of your Avoma scheduling pages is rescheduled. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | booker\_email | string or null

The email of the booker. | | cancel\_reason | string or null

The reason for the cancellation. | | conference\_link | string

The conference link of the event. | | created | string

Timestamp when the event was created. | | event\_end\_time | string

The end time of the event. | | event\_start\_time | string

The start time of the event. | | event\_type | string

Value: "MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED"

The type of the event. | | invitee\_details | object

The details of the invitee. | | invitee\_responses | Array of objects

The responses of the invitee. | | meeting\_uuid | string

The unique identifier of the meeting. | | modified | string

Timestamp when the event was last modified. | | organizer\_email | string

The email of the organizer. | | organizer\_timezone | string

The timezone of the organizer. | | purpose | string or null

The purpose of the event. | | scheduling\_page\_link | string

The scheduling page link. | | subject | string

The subject of the event. | | uuid | string

The unique identifier of the event. | ### Responses **200** NO Response post/v1/webhooks/meeting\_booked\_via\_scheduler\_rescheduled/ Avoma APIs https://api.avoma.com/v1/webhooks/meeting\_booked\_via\_scheduler\_rescheduled/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ * "booker_email": "string", * "cancel_reason": "string", * "conference_link": "string", * "created": "2019-08-24T14:15:22Z", * "event_end_time": "2019-08-24T14:15:22Z", * "event_start_time": "2019-08-24T14:15:22Z", * "event_type": "MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED", * "invitee_details": { * "email": "user@example.com", * "locale": "string", * "name": "string", * "tz": "string" }, * "invitee_responses": [ * { * "question": "string", * "response": "string" } ], * "meeting_uuid": "65fb768c-30b9-4a9a-999f-5dab85e66635", * "modified": "2019-08-24T14:15:22Z", * "organizer_email": "user@example.com", * "organizer_timezone": "string", * "purpose": "string", * "scheduling_page_link": "string", * "subject": "string", * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }` [](https://dev.avoma.com/#tag/Meeting-Types) Meeting Types ========================================================== [](https://dev.avoma.com/#tag/Meeting-Types/paths/~1v1~1meeting_type~1/get) List Meeting Types ---------------------------------------------------------------------------------------------- Returns all meeting types for the organization. ##### Authorizations: _bearerAuth_ ### Responses **200** OK **401** Unauthorized get/v1/meeting\_type/ Avoma APIs https://api.avoma.com/v1/meeting\_type/ ### Response samples * 200 * 401 Content type application/json Copy Expand all Collapse all `[ * { * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" } ]` [](https://dev.avoma.com/#tag/Meeting-Types/paths/~1v1~1meeting_type~1/post) Create Meeting Type ------------------------------------------------------------------------------------------------ Creates a new meeting type for the organization. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | label

required | string <= 64 characters

Label/name of the meeting type. | | description

required | string

Description of the meeting type. | ### Responses **201** Created **400** Bad Request - Invalid data or duplicate label **401** Unauthorized post/v1/meeting\_type/ Avoma APIs https://api.avoma.com/v1/meeting\_type/ ### Request samples * Payload Content type application/json Copy `{ * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" }` ### Response samples * 201 * 400 * 401 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" }` [](https://dev.avoma.com/#tag/Meeting-Types/paths/~1v1~1meeting_type~1{uuid}~1/get) Get Meeting Type ---------------------------------------------------------------------------------------------------- Returns a specific meeting type by UUID. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting type. | ### Responses **200** OK **401** Unauthorized **404** Not Found get/v1/meeting\_type/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_type/{uuid}/ ### Response samples * 200 * 401 * 404 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" }` [](https://dev.avoma.com/#tag/Meeting-Types/paths/~1v1~1meeting_type~1{uuid}~1/patch) Update Meeting Type --------------------------------------------------------------------------------------------------------- Updates a specific meeting type by UUID. You can provide either label or description (or both). ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting type. | ##### Request Body schema: application/json | | | | --- | --- | | label | string <= 64 characters

Label/name of the meeting type. | | description | string

Description of the meeting type. | ### Responses **200** OK **400** Bad Request - Invalid data **401** Unauthorized **404** Not Found patch/v1/meeting\_type/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_type/{uuid}/ ### Request samples * Payload Content type application/json Copy `{ * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" }` ### Response samples * 200 * 400 * 401 * 404 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Discovery Call", * "description": "Initial discovery call with potential customers" }` [](https://dev.avoma.com/#tag/Meeting-Types/paths/~1v1~1meeting_type~1{uuid}~1/delete) Delete Meeting Type ---------------------------------------------------------------------------------------------------------- Deletes a specific meeting type by UUID. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting type. | ### Responses **204** No Content - Successfully deleted **401** Unauthorized **404** Not Found delete/v1/meeting\_type/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_type/{uuid}/ ### Response samples * 401 * 404 Content type application/json Copy `{ * "detail": "Not Found" }` [](https://dev.avoma.com/#tag/Meeting-Outcomes) Meeting Outcomes ================================================================ [](https://dev.avoma.com/#tag/Meeting-Outcomes/paths/~1v1~1meeting_outcome~1/get) List Meeting Outcomes ------------------------------------------------------------------------------------------------------- Returns all meeting outcomes for the organization. ##### Authorizations: _bearerAuth_ ### Responses **200** OK **401** Unauthorized get/v1/meeting\_outcome/ Avoma APIs https://api.avoma.com/v1/meeting\_outcome/ ### Response samples * 200 * 401 Content type application/json Copy Expand all Collapse all `[ * { * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" } ]` [](https://dev.avoma.com/#tag/Meeting-Outcomes/paths/~1v1~1meeting_outcome~1/post) Create Meeting Outcome --------------------------------------------------------------------------------------------------------- Creates a new meeting outcome for the organization. ##### Authorizations: _bearerAuth_ ##### Request Body schema: application/json | | | | --- | --- | | label

required | string <= 64 characters

Label/name of the meeting outcome. | | description

required | string

Description of the meeting outcome. | ### Responses **201** Created **400** Bad Request - Invalid data or duplicate label **401** Unauthorized post/v1/meeting\_outcome/ Avoma APIs https://api.avoma.com/v1/meeting\_outcome/ ### Request samples * Payload Content type application/json Copy `{ * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" }` ### Response samples * 201 * 400 * 401 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" }` [](https://dev.avoma.com/#tag/Meeting-Outcomes/paths/~1v1~1meeting_outcome~1{uuid}~1/get) Get Meeting Outcome ------------------------------------------------------------------------------------------------------------- Returns a specific meeting outcome by UUID. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting outcome. | ### Responses **200** OK **401** Unauthorized **404** Not Found get/v1/meeting\_outcome/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_outcome/{uuid}/ ### Response samples * 200 * 401 * 404 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" }` [](https://dev.avoma.com/#tag/Meeting-Outcomes/paths/~1v1~1meeting_outcome~1{uuid}~1/patch) Update Meeting Outcome ------------------------------------------------------------------------------------------------------------------ Updates a specific meeting outcome by UUID. You can provide either label or description (or both). ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting outcome. | ##### Request Body schema: application/json | | | | --- | --- | | label | string <= 64 characters

Label/name of the meeting outcome. | | description | string

Description of the meeting outcome. | ### Responses **200** OK **400** Bad Request - Invalid data **401** Unauthorized **404** Not Found patch/v1/meeting\_outcome/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_outcome/{uuid}/ ### Request samples * Payload Content type application/json Copy `{ * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" }` ### Response samples * 200 * 400 * 401 * 404 Content type application/json Copy `{ * "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", * "label": "Qualified", * "description": "Lead is qualified and ready for next steps" }` [](https://dev.avoma.com/#tag/Meeting-Outcomes/paths/~1v1~1meeting_outcome~1{uuid}~1/delete) Delete Meeting Outcome ------------------------------------------------------------------------------------------------------------------- Deletes a specific meeting outcome by UUID. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | uuid

required | string

Unique ID of the meeting outcome. | ### Responses **204** No Content - Successfully deleted **401** Unauthorized **404** Not Found delete/v1/meeting\_outcome/{uuid}/ Avoma APIs https://api.avoma.com/v1/meeting\_outcome/{uuid}/ ### Response samples * 401 * 404 Content type application/json Copy `{ * "detail": "Not Found" }` [](https://dev.avoma.com/#tag/Engagement-Analytics) Engagement Analytics ======================================================================== [](https://dev.avoma.com/#tag/Engagement-Analytics/paths/~1v1~1engagement~1/get) List Engagement Metrics for All Users ---------------------------------------------------------------------------------------------------------------------- Returns engagement analytics data for all users in the organization, showing metrics like conversations listened, snippets, shares, comments, etc. for each user. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve engagement data for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-01T00:00:00Z". | | to\_date

required | string

To retrieve engagement data for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-31T23:59:59Z". | | page | integer \>= 1

Default: 1

Page number for pagination | | page\_size | integer \[ 1 .. 100 \]

Default: 10

Number of items per page (max 100) | | o | string

Enum: "user\_email" "-user\_email" "conversations\_listened" "-conversations\_listened" "snippets\_listened" "-snippets\_listened" "conversations\_shared" "-conversations\_shared" "conversations\_commented" "-conversations\_commented" "total\_comments" "-total\_comments" "conversations\_listened\_duration" "-conversations\_listened\_duration" "conversations\_listened\_percent" "-conversations\_listened\_percent"

Field to order results by. Prefix with `-` for descending order. Example: `o=-conversations_listened` for descending order by conversations listened. | | user\_email | Array of strings

Filter by specific user email(s). Can be passed multiple times. | | is\_call | boolean

Filter by call type:

* `true`: Only voice calls
* `false`: Only video meetings | | is\_internal | boolean

Filter by meeting type:

* `true`: Only internal meetings (no external attendees)
* `false`: Only external meetings (has external attendees) | | meeting\_outcome\_uuid | Array of strings

Filter by meeting outcome UUID(s). Can be passed multiple times. | | meeting\_type\_uuid | Array of strings

Filter by meeting type UUID(s). Can be passed multiple times. | | recording\_duration\_\_gte | number \>= 0

Filter meetings with recording duration greater than or equal to specified seconds | | recording\_duration\_\_lte | number \>= 0

Filter meetings with recording duration less than or equal to specified seconds | | shared\_meetings\_only | boolean

If true, only include shared meetings | | is\_impromptu | boolean

Filter by impromptu meetings (unscheduled/ad-hoc) | ### Responses **200** OK **400** Invalid query params or email not found in organization **401** Unauthorized get/v1/engagement/ Avoma APIs https://api.avoma.com/v1/engagement/ ### Response samples * 200 * 400 * 401 Content type application/json Copy Expand all Collapse all `{ * "value": { * "count": 49, * "next": "[https://example.com/api/v1/engagement/?from_date=2025-10-04T18%3A30%3A00Z&page=2&page_size=10&to_date=2025-10-12T18%3A29%3A59Z](https://example.com/api/v1/engagement/?from_date=2025-10-04T18%253A30%253A00Z&page=2&page_size=10&to_date=2025-10-12T18%253A29%253A59Z) ", * "previous": null, * "results": [ * { * "user_email": "user1@company.com", * "conversations_listened": 18, * "snippets_listened": 0, * "conversations_shared": 1, * "conversations_commented": 1, * "total_comments": 1, * "conversations_listened_duration": 42006.72, * "conversations_listened_percent": 67.73 }, * { * "user_email": "user2@company.com", * "conversations_listened": 21, * "snippets_listened": 0, * "conversations_shared": 1, * "conversations_commented": 0, * "total_comments": 0, * "conversations_listened_duration": 14210.41, * "conversations_listened_percent": 26.62 } ] } }` [](https://dev.avoma.com/#tag/Engagement-Analytics/paths/~1v1~1engagement~1{user_uuid}~1/get) Get Engagement Metrics for Specific User -------------------------------------------------------------------------------------------------------------------------------------- Returns participant-level engagement metrics for a specific user, showing detailed interaction data with each participant (conversations listened, playback speed, etc.). ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | user\_uuid

required | string

UUID of the user to get engagement metrics for | ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve engagement data for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-01T00:00:00Z". | | to\_date

required | string

To retrieve engagement data for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-31T23:59:59Z". | | page | integer \>= 1

Default: 1

Page number for pagination | | page\_size | integer \[ 1 .. 100 \]

Default: 10

Number of items per page (max 100) | | o | string

Enum: "participant\_email" "-participant\_email" "conversations\_listened" "-conversations\_listened" "snippets\_listened" "-snippets\_listened" "conversations\_shared" "-conversations\_shared" "conversations\_commented" "-conversations\_commented" "total\_comments" "-total\_comments" "avg\_playback\_speed" "-avg\_playback\_speed" "conversations\_listened\_duration" "-conversations\_listened\_duration" "conversations\_listened\_percent" "-conversations\_listened\_percent"

Field to order results by. Prefix with `-` for descending order. Example: `o=-conversations_listened` for descending order by conversations listened. | | participant\_email | Array of strings

Filter by participant email(s). Can be passed multiple times. | | is\_call | boolean

Filter by call type:

* `true`: Only voice calls
* `false`: Only video meetings | | is\_internal | boolean

Filter by meeting type:

* `true`: Only internal meetings (no external attendees)
* `false`: Only external meetings (has external attendees) | | meeting\_outcome\_uuid | Array of strings

Filter by meeting outcome UUID(s). Can be passed multiple times. | | meeting\_type\_uuid | Array of strings

Filter by meeting type UUID(s). Can be passed multiple times. | | recording\_duration\_\_gte | number \>= 0

Filter meetings with recording duration greater than or equal to specified seconds | | recording\_duration\_\_lte | number \>= 0

Filter meetings with recording duration less than or equal to specified seconds | | shared\_meetings\_only | boolean

If true, only include shared meetings | | is\_impromptu | boolean

Filter by impromptu meetings (unscheduled/ad-hoc) | ### Responses **200** OK **400** Invalid query params or email not found in organization **401** Unauthorized get/v1/engagement/{user\_uuid}/ Avoma APIs https://api.avoma.com/v1/engagement/{user\_uuid}/ ### Response samples * 200 * 400 * 401 Content type application/json Copy Expand all Collapse all `{ * "value": { * "count": 49, * "next": "[https://example.com/api/v1/engagement/?from_date=2025-10-04T18%3A30%3A00Z&page=2&page_size=10&to_date=2025-10-12T18%3A29%3A59Z](https://example.com/api/v1/engagement/?from_date=2025-10-04T18%253A30%253A00Z&page=2&page_size=10&to_date=2025-10-12T18%253A29%253A59Z) ", * "previous": null, * "results": [ * { * "user_email": "user1@company.com", * "conversations_listened": 18, * "snippets_listened": 0, * "conversations_shared": 1, * "conversations_commented": 1, * "total_comments": 1, * "conversations_listened_duration": 42006.72, * "conversations_listened_percent": 67.73 }, * { * "user_email": "user2@company.com", * "conversations_listened": 21, * "snippets_listened": 0, * "conversations_shared": 1, * "conversations_commented": 0, * "total_comments": 0, * "conversations_listened_duration": 14210.41, * "conversations_listened_percent": 26.62 } ] } }` [](https://dev.avoma.com/#tag/Engagement-Analytics/paths/~1v1~1engagement~1summary~1/get) Get Overall Engagement Summary for All Users -------------------------------------------------------------------------------------------------------------------------------------- Returns aggregated summary statistics for engagement metrics across all users in the organization. Provides overall engagement overview including total conversations, shares, comments, etc. ##### Authorizations: _bearerAuth_ ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve engagement summary for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-01T00:00:00Z". | | to\_date

required | string

To retrieve engagement summary for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-31T23:59:59Z". | | user\_email | Array of strings

Filter by specific user email(s). Can be passed multiple times. | | is\_call | boolean

Filter by call type (true=voice calls, false=video meetings) | | is\_internal | boolean

Filter by meeting type (true=internal only, false=external only) | | meeting\_outcome\_uuid | Array of strings

Filter by meeting outcome UUID(s) | | meeting\_type\_uuid | Array of strings

Filter by meeting type UUID(s) | | recording\_duration\_\_gte | number \>= 0

Filter meetings with recording duration >= specified seconds | | recording\_duration\_\_lte | number \>= 0

Filter meetings with recording duration <= specified seconds | | shared\_meetings\_only | boolean

If true, only include shared meetings | | is\_impromptu | boolean

Filter by impromptu meetings (unscheduled/ad-hoc) | ### Responses **200** OK **400** Invalid query params or email not found in organization **401** Unauthorized get/v1/engagement/summary/ Avoma APIs https://api.avoma.com/v1/engagement/summary/ ### Response samples * 200 * 400 * 401 Content type application/json Copy Expand all Collapse all `{ * "value": { * "conversations_listened": 170, * "snippets_listened": 22, * "conversations_shared": 15, * "conversations_commented": 4, * "total_comments": 5, * "conversations_listened_duration": 117340.12, * "conversations_listened_percent": 17.43 } }` [](https://dev.avoma.com/#tag/Engagement-Analytics/paths/~1v1~1engagement~1{user_uuid}~1summary~1/get) Get Engagement Summary for Specific User's Participants -------------------------------------------------------------------------------------------------------------------------------------------------------------- Returns aggregated summary statistics for a specific user's engagement activity across all their participants. Shows how the user engaged with different participants. ##### Authorizations: _bearerAuth_ ##### path Parameters | | | | --- | --- | | user\_uuid

required | string

UUID of the user to get participant summary for | ##### query Parameters | | | | --- | --- | | from\_date

required | string

To retrieve engagement summary for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-01T00:00:00Z". | | to\_date

required | string

To retrieve engagement summary for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. "2024-01-31T23:59:59Z". | | participant\_email | Array of strings

Filter by participant email(s). Can be passed multiple times. | | is\_call | boolean

Filter by call type (true=voice calls, false=video meetings) | | is\_internal | boolean

Filter by meeting type (true=internal only, false=external only) | | meeting\_outcome\_uuid | Array of strings

Filter by meeting outcome UUID(s) | | meeting\_type\_uuid | Array of strings

Filter by meeting type UUID(s) | | recording\_duration\_\_gte | number \>= 0

Filter meetings with recording duration >= specified seconds | | recording\_duration\_\_lte | number \>= 0

Filter meetings with recording duration <= specified seconds | | shared\_meetings\_only | boolean

If true, only include shared meetings | | is\_impromptu | boolean

Filter by impromptu meetings (unscheduled/ad-hoc) | ### Responses **200** OK **400** Invalid query params or email not found in organization **401** Unauthorized get/v1/engagement/{user\_uuid}/summary/ Avoma APIs https://api.avoma.com/v1/engagement/{user\_uuid}/summary/ ### Response samples * 200 * 400 * 401 Content type application/json Copy Expand all Collapse all `{ * "value": { * "conversations_listened": 170, * "snippets_listened": 22, * "conversations_shared": 15, * "conversations_commented": 4, * "total_comments": 5, * "conversations_listened_duration": 117340.12, * "conversations_listened_percent": 17.43 } }` --- # Unknown components: securitySchemes: bearerAuth: description: Avoma uses bearer token for authentication of the client. For now, you will have to contact \[Avoma Support\](mailto:help@avoma.com) to get one issued for you. scheme: bearer type: http info: contact: email: help@avoma.com name: Avoma Help Center description: '# Introduction Welcome to Avoma''s developer hub. Our platform API documentation will help you to explore Avoma''s data for your organization. Avoma API empowers you to create tailored solutions that redefine how you interact with and extract value from your conversational data, interact with meetings, capture recordings, and extract essential insights. ## Units All date-times are UTC and in \[RFC3339\](https://tools.ietf.org/html/rfc3339#section-5.6) format. ## Glossary Below is the list of entities used in Avoma and details about their relationships to each other. | Entity | Definition | | ---- | ----------- | | \*\*Meeting\*\* | A meeting in Avoma created by the user or synced from third party sources (calendar, CRM, etc). | \*\*Recording\*\* | A recording is Audio and Video information of the meeting. | \*\*Transcription\*\* | A transcription generated for a meeting''s recording. Transcriptions and meetings have a one-to-one relationship. The transcription object will be available once the recording for a meeting has been processed. | \*\*Meeting Purpose and Outcome\*\* | Purposes and Outcomes are tags that help categorise meetings. | \*\*Template\*\* | A template is format created using categories to extract AI-generated notes. | \*\*Notes\*\* | AI-generated conversation summary with action items. | \*\*Sentiments\*\* | Sentiments provide deeper understanding of the emotional tone through out the meeting. The emotional tone can be positive, negative or neutral. | \*\*Call\*\* | A Call in Avoma can be created by the user or synced from third party sources. | \*\*Scorecards\*\* | Scorecards provide an opportunity to share feedback with call participants, helping them understand areas of excellence and opportunities for improvement. | \*\*Scorecards Evaluations\*\* | Scorecard Evaluations can be used by any Avoma user that participated in that call to share feedback. This scoring can take place all at once or at any time during the call. | \*\*Webhooks\*\* | Avoma Webhooks notify users about the successful occurrence of events within the Avoma application. Instead of polling or calling APIs to detect events, Avoma sends webhook events as HTTP POST requests, with a JSON payload, to your specified endpoint URL. | \*\*Engagements\*\* | Avoma Engagements API allows you to manage and retrieve engagement data, including participant information, engagement metrics, and interaction details for calls and meetings within the Avoma platform. ## Authorization You will need an API key to access Avoma APIs. You can follow the steps in the \`Avoma API Integration guide\` to generate your API Key. (https://help.avoma.com/api-integration-for-avoma) Once generated, you will receive your Client Key, Client Secret. If you wish to use Zapier, you will need the \`Client Key\` and \`Client Secret\` to connect Zapier to Avoma. Once you have the key, you can send the key as a part of HTTP Authorization header as shown in below example. \`\`\` Authorization: Bearer \`\`\` ## Rate Limits To ensure fair usage and prevent abuse, our API is subject to rate limits. These limits define the number of requests you can make within a specific time period. We Rate Limit our APIs to 60 request in 1 minute period. ### Fair Use In an ideal setup, meetings would be spread across time and our platform is capable of handling reasonable loads and surges. We request intimating our engineering team in advance if you expect a sudden spike in number of meetings to be recorded during a specific period of time so that we can tweak the service to handle the unexpected loads accordingly. ' title: Avoma APIs version: 1.0.0 openapi: 3.0.0 paths: /v1/calls/: get: description: 'Returns all calls from the organization. 12344 ' parameters: - description: To retrieve calls started at or started after given date-time(UTC). in: query name: from\_date required: true schema: format: date-time type: string - description: To retrieve calls started at or started before given date-time(UTC). in: query name: to\_date required: true schema: format: date-time type: string - description: '- \`inbound\`: Get only inbound calls. - \`outbound\`: Get only outbound calls. ' in: query name: direction schema: type: string responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string subject: description: Subject of the meeting associated with the call. type: string nullable: true maxLength: 512 example: "Sales Call with John Doe" meeting\_purpose\_uuid: description: UUID of the meeting purpose/type associated with the call. type: string format: uuid nullable: true example: "123e4567-e89b-12d3-a456-426614174000" meeting\_outcome\_uuid: description: UUID of the meeting outcome associated with the call. type: string format: uuid nullable: true example: "123e4567-e89b-12d3-a456-426614174001" required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object type: array required: - results type: object description: OK summary: List calls tags: - Calls post: description: 'Creates a new call ' operationId: createExtCall parameters: \[\] requestBody: content: application/json: schema: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object application/x-www-form-urlencoded: schema: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object multipart/form-data: schema: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object responses: '201': content: application/json: schema: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object description: '' '400': content: application/json: schema: description: Object having key as field/query param name and value as list of errors. example: message: - This field may not be blank. type: object description: 'Bad Request. Could be due to invalid input data, a duplicate call (based on external\_id and source), or issues with the provided user\_email (user not found, user not in the organization, user inactive, or user lacks the required dialer feature). ' summary: Create Call tags: - Calls /v1/calls/{external\_id}/: get: description: 'Returns a single call for a given \`external\_id\`. ' parameters: - in: path name: external\_id required: true schema: description: '' type: string responses: '200': content: application/json: schema: properties: additional\_details: description: Additional details of the call. This should be a JSON object. nullable: true type: string answered: description: Whether the call was answered, e.g true, false example: 'true' nullable: true type: boolean associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object writeOnly: true direction: description: Direction of the call, e.g. Inbound, Outbound example: Outbound maxLength: 255 nullable: true type: string end\_at: description: End time of the call. format: date-time nullable: true type: string external\_id: description: Unique id of the call from the dialer system like hubspot, twilio, zoom, etc. maxLength: 255 type: string frm: description: Phone number from which call was made. example: '+11234567890' maxLength: 255 nullable: true type: string frm\_name: description: Name of the caller who made the call. maxLength: 255 nullable: true type: string is\_voicemail: default: false description: Indicates if the call is a voicemail. type: boolean meeting: properties: created: format: date-time readOnly: true type: string end\_at: format: date-time nullable: true type: string external\_id: maxLength: 512 type: string id: readOnly: true type: integer is\_call: type: boolean is\_disclaimer\_added: type: boolean is\_dummy: type: boolean is\_impromptu: type: boolean is\_internal: type: boolean is\_original: type: boolean is\_private: type: boolean is\_split\_processed: type: boolean location: maxLength: 512 nullable: true type: string meeting\_url: nullable: true type: string modified: format: date-time readOnly: true type: string org\_not\_found: type: boolean organization: nullable: true type: integer organizer\_email: format: email maxLength: 254 type: string original\_meeting: nullable: true type: integer original\_model\_counts: nullable: true type: object original\_org\_count: maximum: 2147483647 minimum: -2147483648 type: integer recurring\_master: nullable: true type: integer start\_at: format: date-time nullable: true type: string state: enum: - tentative - confirmed - cancelled - inprogress - ended - error type: string subject: maxLength: 512 nullable: true type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - organizer\_email type: object organization: properties: created: format: date-time readOnly: true type: string domain: maxLength: 255 type: string id: readOnly: true type: integer is\_marked\_for\_deletion: type: boolean modified: format: date-time readOnly: true type: string name: maxLength: 255 type: string timezone: type: string uuid: format: uuid readOnly: true type: string readOnly: true required: - name - domain type: object participants: description: List of participants in the call. First entry should be of the prospect or lead with whom the call happened. This will be used in formulating the subject of the call in Avoma. items: properties: associations: properties: object: items: properties: id: maxLength: 255 type: string type: maxLength: 255 type: string type: object type: array system: maxLength: 255 type: string type: object email: format: email type: string name: maxLength: 255 type: string required: - email type: object type: array writeOnly: true recording\_url: description: URL of the recording of the call. This will be used to download the recording by avoma for processing, so should be a public URL. example: https://example.com/recording.mp3 nullable: true type: string source: description: Lowercase string indicating the source of the call, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall, etc. example: ringcentral maxLength: 255 nullable: true type: string start\_at: description: Start time of the call. format: date-time nullable: true type: string state: enum: - created - queued - inprogress - done - error readOnly: true type: string to: description: Phone number to which call was made. example: '+12234567890' maxLength: 255 nullable: true type: string to\_name: description: Name of the person to whom call was made. maxLength: 255 nullable: true type: string user\_email: description: Email of the user who made or received the call. This should be an Avoma user's email. License for this user will be used to process the call. format: email maxLength: 254 type: string required: - external\_id - user\_email - frm - to - start\_at - recording\_url - direction - source - participants type: object description: '' '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Call tags: - Calls patch: summary: Update Call description: > Updates call fields that are allowed after meeting processing is complete. Only allows updating call-specific metadata fields. tags: - Calls parameters: - name: external\_id required: true in: path schema: type: string description: External ID of the call to update requestBody: content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/patch\_call\_request" responses: "200": content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/call\_response" description: Call updated successfully "400": description: Invalid request data content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/bad\_request\_body" "404": description: Call not found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "500": description: Internal server error content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/custom\_categories/: get: description: 'Returns all custom categories from the organization. ' parameters: - in: query name: o schema: default: -start\_at description: To specify the ordering of the custom category list. Default is descending order. enum: - start\_at - -start\_at - modified - -modified - name - -name - background\_color - -background\_color type: string responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: description: Custom Category Object properties: av\_field\_mapping: description: AV field mapping of the custom category. type: object background\_color: description: Background color of the custom category. type: string is\_default: description: Is default custom category. type: boolean key: description: Key of the custom category. type: string keywords: description: Keywords of the custom category. items: type: string type: array name: description: Name of the custom category. type: string order: description: Order of the custom category. type: integer prompts: description: Prompts of the custom category. items: type: string type: array settings: description: Settings of the custom category. properties: aug\_notes\_enabled: description: Augmented notes enabled. type: boolean keyword\_notes\_enabled: description: Keyword notes enabled. type: boolean keyword\_tracking\_enabled: description: Keyword tracking enabled. type: boolean meeting\_type\_rule: description: Meeting type rule. type: integer meeting\_types\_blacklisted: description: Meeting types blacklisted. items: type: string type: array meeting\_types\_whitelisted: description: Meeting types whitelisted. items: type: string type: array prompt\_extract\_length: description: Prompt extract length. type: string prompt\_extract\_strategy: description: Prompt extract strategy. type: string prompt\_notes\_enabled: description: Prompt notes enabled. type: boolean type: object uuid: description: UUID of the custom category. format: uuid type: string type: object type: array required: - results type: object description: OK '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params summary: List Custom Categories tags: - Custom Category /v1/custom\_categories/{uuid}/: get: description: 'Returns a single custom category for a given \`uuid\`. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the custom category. format: uuid type: string responses: '200': content: application/json: schema: description: Custom Category Object properties: av\_field\_mapping: description: AV field mapping of the custom category. type: object background\_color: description: Background color of the custom category. type: string is\_default: description: Is default custom category. type: boolean key: description: Key of the custom category. type: string keywords: description: Keywords of the custom category. items: type: string type: array name: description: Name of the custom category. type: string order: description: Order of the custom category. type: integer prompts: description: Prompts of the custom category. items: type: string type: array settings: description: Settings of the custom category. properties: aug\_notes\_enabled: description: Augmented notes enabled. type: boolean keyword\_notes\_enabled: description: Keyword notes enabled. type: boolean keyword\_tracking\_enabled: description: Keyword tracking enabled. type: boolean meeting\_type\_rule: description: Meeting type rule. type: integer meeting\_types\_blacklisted: description: Meeting types blacklisted. items: type: string type: array meeting\_types\_whitelisted: description: Meeting types whitelisted. items: type: string type: array prompt\_extract\_length: description: Prompt extract length. type: string prompt\_extract\_strategy: description: Prompt extract strategy. type: string prompt\_notes\_enabled: description: Prompt notes enabled. type: boolean type: object uuid: description: UUID of the custom category. format: uuid type: string type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Custom Category tags: - Custom Category /v1/meeting\_segments/: get: description: 'Returns segments of the meeting for a given \`uuid\`. ' parameters: - in: query name: uuid required: true schema: description: Unique ID of the meeting. format: uuid type: string responses: '200': content: application/json: schema: description: Data captured in Segment service for analytics. example: demo: - - 1275.9276 - 1383.3668 intro: - - 158.78497 - 207.5937 next\_steps: - - 1383.3768 - 1437.3767 pricing: - - 222.02473 - 258.75413000000003 properties: agenda: items: items: type: number type: array type: array demo: items: items: type: number type: array type: array intro: items: items: type: number type: array type: array meeting: items: items: type: number type: array type: array next\_steps: items: items: type: number type: array type: array objection: items: items: type: number type: array type: array overview: items: items: type: number type: array type: array pain\_point: items: items: type: number type: array type: array pricing: items: items: type: number type: array type: array type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Meeting segments tags: - Meetings /v1/meeting\_sentiments/: get: description: 'Returns meeting sentiments. ' parameters: - description: Unique ID of the meeting for which sentiments will be fetched. in: query name: meeting\_uuid required: true schema: format: uuid type: string responses: '200': content: application/json: schema: items: example: sentiment: 0 sentiment\_ranges: - score: 0.3118 time\_range: - 230.71687 - 474.23322 - score: 0.3816 time\_range: - 496.08014 - 597.6144 - score: -0.2702 time\_range: - 605.5101 - 723.9923 properties: sentiment: description: Overall sentiment of the meeting. type: integer sentiment\_ranges: description: Sentiment over time. items: properties: score: description: sentiment score of the given time range. example: Competitor type: number time\_range: description: Time range of the sentiment. items: type: number type: array required: - score - time\_range type: object type: array required: - sentiment - sentiment\_ranges type: object type: array description: OK '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Meeting Sentiments tags: - Meetings Sentiments /v1/meetings/: get: description: 'Returns all meetings from the organization with paginated response. If none of the query parameters are provided, it gives response for all meetings from the organization in descending order of \`start\_at\`. ' parameters: - description: Number of records returned per response. in: query name: page\_size schema: default: 10 maximum: 100 nullable: false type: integer - description: 'To retrieve meetings with recording duration(in seconds) greater than or equal to given value. Sending this filter will by default exclude meetings without recordings. ' in: query name: recording\_duration\_\_gte schema: minimum: 0 type: number - description: To retrieve meetings started at or started after given date-time(UTC). in: query name: from\_date required: true schema: format: date-time type: string - description: To retrieve meetings started at or started before given date-time(UTC). in: query name: to\_date required: true schema: format: date-time type: string - description: '- \`true\`: Get only voice call meetings. - \`false\`: Get only video call meetings. ' in: query name: is\_call schema: type: boolean - description: '- \`true\`: Get meetings where no attendee is from outside the organization. - \`false\`: Get meetings where there are attendees from outside the organization. ' in: query name: is\_internal schema: type: boolean - description: Comma-separated list of attendee emails to filter meetings by.
Meetings with \*\*\*any\*\*\* of the attendees will be returned. in: query name: attendee\_emails schema: example: john.doe@example.com,kelly@acme.com type: string - description: Comma-separated list of CRM account external IDs to filter by. in: query name: crm\_account\_ids schema: type: string - description: Comma-separated list of CRM opportunity external IDs to filter by. in: query name: crm\_opportunity\_ids schema: type: string - description: Comma-separated list of CRM contact external IDs to filter by. in: query name: crm\_contact\_ids schema: type: string - description: Comma-separated list of CRM lead external IDs to filter by. in: query name: crm\_lead\_ids schema: type: string - description: Whether to include CRM associations in the response. in: query name: include\_crm\_associations schema: default: false type: boolean - in: query name: o schema: default: -start\_at description: To specify the ordering of the meetings list. Default is descending order. Ordering by modified is deprecated enum: - start\_at - -start\_at type: string responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: description: Meeting Object properties: attendees: items: description: Attendee Object properties: email: description: Email of the meeting attendee. format: email type: string name: description: Full name of the attendee. example: FirstName LastName nullable: true type: string response\_status: description: Response received from the attendee for a meeting. enum: - needsaction - accepted - declined - tentativelyaccepted type: string uuid: description: Unique ID of the meeting attendee. format: uuid type: string required: - email - uuid - response\_status type: object type: array audio\_ready: description: Indicates if the audio is ready. type: boolean call\_details: description: Details of call linked with the meeting. nullable: true properties: external\_id: description: Unique ID from the dialer integration. type: string frm: description: Phone number from which call was made. type: string to: description: Phone number to which call was made. type: string required: - external\_id - frm - to type: object created: description: Creation date-time(UTC). format: date-time type: string crm\_association: description: CRM association object example: - crm\_obj\_id: '102721358755' crm\_obj\_type: contact - crm\_obj\_id: '30447071570' crm\_obj\_type: account - crm\_obj\_id: '34202467419' crm\_obj\_type: oppo properties: crm\_obj\_id: description: Unique identifier for the CRM object type: string crm\_obj\_type: description: Type of CRM object type: string type: array duration: description: 'Actual meeting duration in Seconds. \*\*Note\*\*: This may not match with scheduled \`start\_at\` to \`end\_at\` window, because actual meeting may start/end sooner/later of the scheduled time. ' example: 4309.1 nullable: true type: number end\_at: description: Scheduled end date-time(UTC) of the meeting. format: date-time type: string is\_call: description: Whether meeting is a voice call. type: boolean is\_internal: description: '- \`true\`: Meeting does not have any attendee from outside organization. - \`false\`: Meeting has attendees from outside organization. ' type: boolean is\_private: description: '- \`true\`: Meeting visible to only attendees. - \`false\`: Meeting visible to whole organization. ' type: boolean modified: description: Last modification date-time(UTC). format: date-time type: string notes\_ready: description: Indicates if the AI notes are ready. type: boolean organizer\_email: description: 'Email of the meeting organizer. There will always be a entry for organizer in the \`attendees\` field. ' format: email type: string outcome: description: Outcome of the meeting assigned by user. nullable: true properties: label: description: Label of the the meeting attribute. example: Closed type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object processing\_status: description: Indicates the processing status of the meeting. enum: - processing - silent\_recording - recording\_error - transcription\_available - notes\_available - invalid\_video - download\_failed - bot\_denied\_entry - bot\_invalid\_rec\_details - null example: transcription\_available nullable: true type: string purpose: description: Purpose/type of the meeting assigned by system (based on meeting subject) or user. nullable: true properties: label: description: Label of the the meeting attribute. example: Demo type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object recording\_uuid: description: Unique ID of the Recording. format: uuid nullable: true type: string start\_at: description: Scheduled start date-time(UTC) of the meeting. format: date-time type: string state: description: 'State of the meeting: - \`scheduled\`: Meeting is scheduled. - \`in\_progress\`: Meeting is happening or recording is getting processed. - \`completed\`: Meeting is recorded in Avoma and transcription is available. - ''cancelled'': Meeting is cancelled or deleted from Calendar. ' enum: - scheduled - in\_progress - completed - cancelled type: string subject: description: Subject of the Meeting. example: Daily Syncup type: string transcript\_ready: description: Indicates if transcription of the meeting is ready. type: boolean transcription\_uuid: description: 'Transcription UUID of the meeting. It will be available once \`state\` of the meeting is \`completed\`. ' format: uuid nullable: true type: string type: description: Purpose/type of the meeting assigned by system (based on meeting subject) or user. nullable: true properties: label: description: Label of the the meeting attribute. example: Demo type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object url: description: ' URL of the meeting room. ex: 1. Google meet: https://meet.google.com/abc-def 2. Zoom: https://avoma.zoom.us/j/123456?pwd=abcdefg, 3. MSTeam: https://teams.live.com/meet/123456 ' example: https://meet.google.com/abc-def format: url type: string uuid: description: Unique ID of the Meeting. format: uuid type: string video\_ready: description: Indicates if the video is ready. type: boolean required: - uuid - subject - created - modified - is\_private - is\_internal - organizer\_email - state type: object type: array required: - results type: object description: OK '400': content: application/json: schema: description: Object having key as field/query param name and value as list of errors. example: message: - This field may not be blank. type: object description: Invalid query params summary: List meetings tags: - Meetings /v1/meetings/{meeting\_uuid}/insights/: get: description: 'Returns a insights for a meeting with given \`meeting\_uuid\`. \`state\` of the meeting must be \`completed\` in order to get insights. ' parameters: - description: Unique ID of the meeting in: path name: meeting\_uuid required: true schema: format: uuid type: string responses: '200': content: application/json: schema: properties: ai\_notes: items: properties: end: description: End time (in seconds) of the note with respect to start of the recording. format: float type: number note\_type: description: Type of the note. type: string speaker\_id: description: ID of the speaker for whom note has been extracted. type: integer start: description: Start time (in seconds) of the note with respect to start of the recording. format: float type: number text: description: Actual note's text. type: string uuid: description: Unique ID of the note. format: uuid type: string required: - note\_type - uuid - start - end - text - speaker\_id type: object type: array keywords: properties: occurrences: items: properties: category: description: 'Name of the custom category for which keywords are tracked. Custom Categories for the organization can be managed at https://app.avoma.com/settings/custom\_categories by user with admin role. ' example: Filler Words type: string count: description: Total count of the keyword occurrences. type: integer is\_rep: description: '- \`true\`: Speaker is a representative (any speaker from the organization). - \`false\`: Speaker is a customer/prospect. ' type: boolean keywords: description: Distribution for each keyword under the category. items: properties: count: description: Number of occurrences. type: integer word: description: Word for which occurrunces are tracked for. example: Competitor type: string type: object type: array speaker\_id: description: ID of the speaker whom keywords are tracked for. nullable: true type: integer required: - category - is\_rep - count type: object type: array popular: items: properties: count: description: Number of occurrences. type: integer score: description: Score of the popularity. type: number word: description: Word for which popularity is tracked. example: Competitor type: string required: - word - score - count type: object type: array type: object speakers: items: properties: email: description: Email of the speaker. format: email type: string id: description: ID of the speaker. type: integer is\_rep: description: '- \`true\`: Speaker is a representative (any speaker from the organization) - \`false\`: Speaker is a customer/prospect. ' type: boolean name: description: Name of the speaker. example: FirstName LastName nullable: true type: string required: - email - id - is\_rep type: object type: array required: - ai\_notes - keywords type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found summary: Get Meeting Insights tags: - Meetings /v1/meetings/{uuid}/: get: description: 'Returns a single meeting for a given \`uuid\`. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the meeting. format: uuid type: string - description: Whether to include CRM associations in the response. in: query name: include\_crm\_associations schema: default: false type: boolean responses: '200': content: application/json: schema: description: Meeting Object properties: attendees: items: description: Attendee Object properties: email: description: Email of the meeting attendee. format: email type: string name: description: Full name of the attendee. example: FirstName LastName nullable: true type: string response\_status: description: Response received from the attendee for a meeting. enum: - needsaction - accepted - declined - tentativelyaccepted type: string uuid: description: Unique ID of the meeting attendee. format: uuid type: string required: - email - uuid - response\_status type: object type: array audio\_ready: description: Indicates if the audio is ready. type: boolean call\_details: description: Details of call linked with the meeting. nullable: true properties: external\_id: description: Unique ID from the dialer integration. type: string frm: description: Phone number from which call was made. type: string to: description: Phone number to which call was made. type: string required: - external\_id - frm - to type: object created: description: Creation date-time(UTC). format: date-time type: string crm\_association: description: CRM association object example: - crm\_obj\_id: '102721358755' crm\_obj\_type: contact - crm\_obj\_id: '30447071570' crm\_obj\_type: account - crm\_obj\_id: '34202467419' crm\_obj\_type: oppo properties: crm\_obj\_id: description: Unique identifier for the CRM object type: string crm\_obj\_type: description: Type of CRM object type: string type: array duration: description: 'Actual meeting duration in Seconds. \*\*Note\*\*: This may not match with scheduled \`start\_at\` to \`end\_at\` window, because actual meeting may start/end sooner/later of the scheduled time. ' example: 4309.1 nullable: true type: number end\_at: description: Scheduled end date-time(UTC) of the meeting. format: date-time type: string is\_call: description: Whether meeting is a voice call. type: boolean is\_internal: description: '- \`true\`: Meeting does not have any attendee from outside organization. - \`false\`: Meeting has attendees from outside organization. ' type: boolean is\_private: description: '- \`true\`: Meeting visible to only attendees. - \`false\`: Meeting visible to whole organization. ' type: boolean modified: description: Last modification date-time(UTC). format: date-time type: string notes\_ready: description: Indicates if the AI notes are ready. type: boolean organizer\_email: description: 'Email of the meeting organizer. There will always be a entry for organizer in the \`attendees\` field. ' format: email type: string outcome: description: Outcome of the meeting assigned by user. nullable: true properties: label: description: Label of the the meeting attribute. example: Closed type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object processing\_status: description: Indicates the processing status of the meeting. enum: - processing - silent\_recording - recording\_error - transcription\_available - notes\_available - invalid\_video - download\_failed - bot\_denied\_entry - bot\_invalid\_rec\_details - null example: transcription\_available nullable: true type: string purpose: description: Purpose/type of the meeting assigned by system (based on meeting subject) or user. nullable: true properties: label: description: Label of the the meeting attribute. example: Demo type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object recording\_uuid: description: Unique ID of the Recording. format: uuid nullable: true type: string start\_at: description: Scheduled start date-time(UTC) of the meeting. format: date-time type: string state: description: 'State of the meeting: - \`scheduled\`: Meeting is scheduled. - \`in\_progress\`: Meeting is happening or recording is getting processed. - \`completed\`: Meeting is recorded in Avoma and transcription is available. - ''cancelled'': Meeting is cancelled or deleted from Calendar. ' enum: - scheduled - in\_progress - completed - cancelled type: string subject: description: Subject of the Meeting. example: Daily Syncup type: string transcript\_ready: description: Indicates if transcription of the meeting is ready. type: boolean transcription\_uuid: description: 'Transcription UUID of the meeting. It will be available once \`state\` of the meeting is \`completed\`. ' format: uuid nullable: true type: string type: description: Purpose/type of the meeting assigned by system (based on meeting subject) or user. nullable: true properties: label: description: Label of the the meeting attribute. example: Demo type: string uuid: description: Unique ID of the meeting attribute. format: uuid type: string required: - label - uuid type: object url: description: ' URL of the meeting room. ex: 1. Google meet: https://meet.google.com/abc-def 2. Zoom: https://avoma.zoom.us/j/123456?pwd=abcdefg, 3. MSTeam: https://teams.live.com/meet/123456 ' example: https://meet.google.com/abc-def format: url type: string uuid: description: Unique ID of the Meeting. format: uuid type: string video\_ready: description: Indicates if the video is ready. type: boolean required: - uuid - subject - created - modified - is\_private - is\_internal - organizer\_email - state type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Meeting tags: - Meetings /v1/meetings/{uuid}/drop/: post: description: 'Drop a meeting with given \`uuid\`. Bot must be in the meeting in order to drop meeting. ' parameters: - description: Unique ID of the meeting in: path name: uuid required: true schema: format: uuid type: string responses: '202': content: application/json: schema: properties: message: description: Message for the user. example: Dropping meeting. type: string required: - message type: object description: Accepted '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params '403': content: application/json: schema: properties: message: description: Message for the user. example: Access Denied type: string required: - message type: object description: Permission Denied. '406': content: application/json: schema: properties: message: description: Message for the user. example: Bot is not in the meeting. type: string required: - message type: object description: Not Acceptable summary: Drop Meeting tags: - Meetings /v1/notes/: get: description: 'Returns all notes from the organization if no params are passed. If \`meeting\` is passed, returns all notes for that meeting. If \`custom\_category\` is passed, returns all notes for that custom category. If \`output\_format\` is passed, returns all notes for that output format. Choices are \`json\`,\`html\`,\`markdown\` ordering can be done by \`created\` or \`modified\` by passing \`o=\` in params ' parameters: - description: Number of records returned per response. in: query name: page\_size schema: default: 5 maximum: 20 nullable: false type: integer - description: To retrieve notes for meetings started at or started after given date-time(UTC). in: query name: from\_date required: true schema: format: date-time type: string - description: To retrieve notes for meetings started at or started before given date-time(UTC). in: query name: to\_date required: true schema: format: date-time type: string - in: query name: o schema: default: -start\_at description: To specify the ordering of the notes list. Default is descending order. enum: - start\_at - -start\_at - modified - -modified type: string - in: query name: output\_format schema: default: json description: To specify format of notes. Default is json. enum: - json - html - markdown type: string - in: query name: meeting\_uuid required: false schema: description: Unique ID of the meeting for which notes will be fetched. format: uuid type: string - in: query name: custom\_category required: false schema: description: Unique ID of the custom category. Only part of notes belonging to this custom category will be fetched. format: uuid type: string responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: description: Notes Object properties: created: description: Last modification date-time(UTC). format: date-time type: string data: description: Notes data. oneOf: - type: object - type: string modified: description: Last modification date-time(UTC). format: date-time type: string type: object type: array required: - results type: object description: OK '204': content: application/json: schema: properties: detail: description: Error details example: Not valid data found type: string required: - detail type: object description: No content data found '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params summary: List Notes tags: - Notes /v1/recordings/: get: description: 'Returns a Video and Audio recording for a given meeting \`uuid\`. ' parameters: - in: query name: meeting\_uuid required: true schema: description: Unique ID of the meeting. format: uuid type: string responses: '200': content: application/json: schema: description: This api returns a video and audio recording download url. properties: audio\_url: description: Signed url of audio recording file. format: url type: string meeting\_uuid: description: Unique ID of the meeting. format: uuid type: string uuid: description: Unique ID of the recording. format: uuid type: string valid\_till: description: expiry date of the video and audio recording download url format: date-time type: string video\_url: description: Signed url of video recording file. format: url type: string required: - uuid - meeting\_uuid type: object description: OK '202': content: application/json: schema: properties: meeting\_uuid: description: Unique ID of the meeting. format: uuid type: string message: description: Response message type: string uuid: description: Unique ID of the recording. format: uuid type: string required: - uuid - meeting\_uuid type: object description: OK '403': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Permission Denied. '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found '429': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Too many requests summary: Get Recording tags: - Recording /v1/recordings/{uuid}/: get: description: 'Returns a Video and Audio recording for a given recording \`uuid\`. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the recording. format: uuid type: string responses: '200': content: application/json: schema: description: This api returns a video and audio recording download url. In specific instances where the video content is undergoing processing and is not yet prepared for immediate access, the API response will be configured to issue a status code of 202. Once the video is fully processed and ready, you'll receive an email containing the download link. This link will allow you to easily access and download the video content and this like will be valid till the time returned in valid\_till field. properties: audio\_url: description: Signed url of audio recording file. format: url type: string meeting\_uuid: description: Unique ID of the meeting. format: meeting\_uuid type: string message: description: Response message type: string valid\_till: description: expiry date of the video and audio recording download url format: date-time type: string video\_url: description: Signed url of video recording file. format: url type: string required: - meeting\_uuid type: object description: OK '202': content: application/json: schema: description: This api returns a video and audio recording download url. In specific instances where the video content is undergoing processing and is not yet prepared for immediate access, the API response will be configured to issue a status code of 202. Once the video is fully processed and ready, you'll receive an email containing the download link. This link will allow you to easily access and download the video content and this like will be valid till the time returned in valid\_till field. properties: audio\_url: description: Signed url of audio recording file. format: url type: string meeting\_uuid: description: Unique ID of the meeting. format: meeting\_uuid type: string message: description: Response message type: string valid\_till: description: expiry date of the video and audio recording download url format: date-time type: string video\_url: description: Signed url of video recording file. format: url type: string required: - meeting\_uuid type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found '429': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Too many requests summary: Get Recording using recording uuid tags: - Recording /v1/scorecard\_evaluations/: get: description: Retrieve a list of scorecard evaluations for meetings. operationId: scorecard\_evaluations\_list parameters: - description: Number of results to return per page. in: query name: page\_size schema: default: 10 maximum: 100 type: integer - description: Start date for filtering scorecard evaluations (UTC) in: query name: from\_date schema: format: date-time type: string - description: End date for filtering scorecard evaluations (UTC) in: query name: to\_date schema: format: date-time type: string - description: Array of scorecard template UUIDs to filter evaluations in: query name: scorecard\_uuids schema: items: format: uuid type: string type: array - description: UUID of the meeting for which to fetch scorecard evaluations. in: query name: meeting\_uuid schema: format: uuid type: string - description: Array of user emails for who the scorecard evaluations are for. in: query name: user\_emails schema: items: format: email type: string type: array responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: description: Represents a completed scorecard evaluation for a meeting properties: company\_name: description: The name of the company associated with the meeting nullable: true readOnly: true type: string created: description: The date and time when the scorecard was created format: date-time readOnly: true type: string deal\_names: description: The names of all deals associated with the meeting items: type: string nullable: true readOnly: true type: array evaluations: description: The individual question evaluations for this scorecard items: description: Represents an answer to a question in a scorecard evaluation properties: answer\_text: description: The text of the answer readOnly: true type: string answer\_uuid: description: The UUID of the chosen answer (maps the response of 'Get Scorecards') format: uuid type: string justification: description: The justification of the answer type: string order: description: The order of the question within the scorecard type: integer question\_text: description: The text of the question readOnly: true type: string question\_uuid: description: The UUID of the question being answered (maps the response of 'Get Scorecards') format: uuid type: string type: object type: array meeting: description: Information about the meeting associated with a scorecard evaluation properties: end\_at: description: The end time of the meeting format: date-time readOnly: true type: string organizer\_email: description: The email of the organizer of the meeting format: email readOnly: true type: string start\_at: description: The start time of the meeting format: date-time readOnly: true type: string subject: description: The subject or title of the meeting readOnly: true type: string uuid: description: The unique identifier of the meeting format: uuid readOnly: true type: string type: object modified: description: The date and time when the scorecard was last modified format: date-time readOnly: true type: string overall\_score: description: The overall score of the evaluation format: double nullable: true type: number scorecard\_template\_name: description: The name of the scorecard template readOnly: true type: string scorecard\_uuid: description: The unique identifier of the scorecard template format: uuid readOnly: true type: string scored\_by: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who performed the evaluation scored\_for: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who was evaluated uuid: description: The unique identifier for the scorecard evaluation format: uuid readOnly: true type: string type: object type: array type: object description: Successful response containing a list of scorecard evaluations summary: List Scorecard Evaluations tags: - Scorecard Evaluations /v1/scorecards/: get: description: Retrieve a list of available scorecard templates. operationId: scorecards\_list responses: '200': content: application/json: schema: items: description: Represents a scorecard template properties: created: description: The date and time when the template was created format: date-time readOnly: true type: string created\_by: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who created the scorecard template readOnly: true description: description: A description of the scorecard template readOnly: true type: string is\_ai: description: Indicates if this is an AI scorecard template readOnly: true type: boolean modified: description: The date and time when the template was last modified format: date-time readOnly: true type: string modified\_by: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who last modified the scorecard template readOnly: true name: description: The name of the scorecard template readOnly: true type: string questions: description: The list of questions in this scorecard template items: description: Represents a question in a scorecard template properties: created: description: The date and time when the question was created format: date-time readOnly: true type: string modified: description: The date and time when the question was last modified format: date-time readOnly: true type: string order: description: The order of the question within the scorecard readOnly: true type: integer question: description: The text of the question readOnly: true type: string question\_choices: description: The available choices for the question items: description: Represents a choice for a question in a scorecard properties: choice\_text: description: The text of the choice readOnly: true type: string order: description: The order of the choice within the question readOnly: true type: integer uuid: format: uuid readOnly: true type: string type: object type: array question\_type: description: 'The type of question in a scorecard: \* \`bool\` - Boolean (Yes/No) \* \`int\` - Interval (1-5 Rating Scale)' enum: - bool - int type: string tags: description: Tags associated with the question items: description: A tag associated with a scorecard question properties: tag: description: The text of the tag maxLength: 30 type: string type: object type: array uuid: description: The unique identifier of the question format: uuid readOnly: true type: string type: object type: array state: description: 'The state of a scorecard template: \* \`draft\` - Draft (not yet finalized) \* \`live\` - Live (available for use) \* \`inactive\` - Inactive (disable for auto-scoring)' enum: - draft - live - inactive type: string uuid: description: The unique identifier of the scorecard template format: uuid readOnly: true type: string type: object type: array description: Successful response containing a list of scorecard templates summary: List Scorecard Templates tags: - Scorecards /v1/scorecards/{uuid}/: get: description: Get details of a specific scorecard template by its UUID. operationId: scorecards\_retrieve parameters: - description: UUID of the scorecard template in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: description: Represents a scorecard template properties: created: description: The date and time when the template was created format: date-time readOnly: true type: string created\_by: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who created the scorecard template readOnly: true description: description: A description of the scorecard template readOnly: true type: string is\_ai: description: Indicates if this is an AI scorecard template readOnly: true type: boolean modified: description: The date and time when the template was last modified format: date-time readOnly: true type: string modified\_by: allOf: - properties: email: format: email readOnly: true type: string first\_name: readOnly: true type: string last\_name: readOnly: true type: string uuid: format: uuid readOnly: true type: string type: object description: The user who last modified the scorecard template readOnly: true name: description: The name of the scorecard template readOnly: true type: string questions: description: The list of questions in this scorecard template items: description: Represents a question in a scorecard template properties: created: description: The date and time when the question was created format: date-time readOnly: true type: string modified: description: The date and time when the question was last modified format: date-time readOnly: true type: string order: description: The order of the question within the scorecard readOnly: true type: integer question: description: The text of the question readOnly: true type: string question\_choices: description: The available choices for the question items: description: Represents a choice for a question in a scorecard properties: choice\_text: description: The text of the choice readOnly: true type: string order: description: The order of the choice within the question readOnly: true type: integer uuid: format: uuid readOnly: true type: string type: object type: array question\_type: description: 'The type of question in a scorecard: \* \`bool\` - Boolean (Yes/No) \* \`int\` - Interval (1-5 Rating Scale)' enum: - bool - int type: string tags: description: Tags associated with the question items: description: A tag associated with a scorecard question properties: tag: description: The text of the tag maxLength: 30 type: string type: object type: array uuid: description: The unique identifier of the question format: uuid readOnly: true type: string type: object type: array state: description: 'The state of a scorecard template: \* \`draft\` - Draft (not yet finalized) \* \`live\` - Live (available for use) \* \`inactive\` - Inactive (disable for auto-scoring)' enum: - draft - live - inactive type: string uuid: description: The unique identifier of the scorecard template format: uuid readOnly: true type: string type: object description: Successful response containing details of the requested scorecard template summary: Retrieve a Specific Scorecard Template tags: - Scorecards /v1/smart\_categories/: get: description: 'Returns all smart categories from the organization. ' parameters: - in: query name: o schema: default: -start\_at description: To specify the ordering of the custom category list. Default is descending order. enum: - start\_at - -start\_at - modified - -modified - name - -name - background\_color - -background\_color type: string responses: '200': content: application/json: schema: allOf: - properties: count: description: Total number of records in result. minimum: 0 type: integer next: description: URL to the next page if available. example: https://example.com/api/v1/meeting/?page=2 nullable: true type: string previous: description: URL to the previous page if available. example: https://example.com/api/v1/meeting/?page=1 nullable: true type: string type: object - properties: results: description: Actual response. items: description: Smart Category Object properties: is\_default: description: Is default custom category. type: boolean key: description: Key of the custom category. type: string keywords: description: Keywords of the custom category. items: description: Keyword object properties: created: description: Creation date-time(UTC). format: date-time type: string custom\_category: description: Unique ID of the custom category. format: uuid type: string is\_primary: description: Is primary keyword. type: boolean label: description: Label of the the keyword. example: Competitor type: string uuid: description: Unique ID of the keyword. format: uuid type: string variations: description: Variations of the keyword. items: description: Variation of the keyword. example: Competitor type: string type: array type: object type: array name: description: Name of the custom category. type: string prompts: description: Prompts of the custom category. items: description: Prompt object properties: created: description: Creation date-time(UTC). format: date-time type: string custom\_category: description: Unique ID of the custom category. format: uuid type: string label: description: Label of the the prompt. example: How did you hear about us type: string uuid: description: Unique ID of the prompt. format: uuid type: string variations: description: Variations of the prompt. items: description: Variation of the prompt. example: How did you hear about us type: string type: array type: object type: array settings: description: Settings of the custom category. properties: aug\_notes\_enabled: description: Augmented notes enabled. type: boolean keyword\_notes\_enabled: description: Keyword notes enabled. type: boolean keyword\_tracking\_enabled: description: Keyword tracking enabled. type: boolean prompt\_extract\_length: description: Prompt extract length. type: string prompt\_extract\_strategy: description: Prompt extract strategy. type: string prompt\_notes\_enabled: description: Prompt notes enabled. type: boolean type: object uuid: description: UUID of the custom category. format: uuid type: string type: object type: array required: - results type: object description: OK '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params summary: List Smart Categories tags: - Smart Category post: description: Creates the smart category and settings requestBody: content: application/json: schema: properties: keywords: description: Keywords of the smart category items: type: string type: array name: description: Name of the smart category type: string prompts: description: Prompts of the smart category items: type: string type: array settings: description: Settings of the smart category properties: aug\_notes\_enabled: description: Bookmark and transcript highlight type: boolean keyword\_notes\_enabled: description: Keyword notes enabled type: boolean prompt\_extract\_length: description: Prompt extract length enum: - short - medium - long type: string prompt\_extract\_strategy: description: Prompt extract strategy enum: - after - before - contains type: string type: object required: - name - settings - prompts - keywords type: object responses: '200': content: application/json: schema: properties: keywords: description: Keywords of the smart category items: type: string type: array name: description: Name of the smart category type: string prompts: description: Prompts of the smart category items: type: string type: array settings: description: Settings of the smart category properties: aug\_notes\_enabled: description: Bookmark and transcript highlight type: boolean keyword\_notes\_enabled: description: Keyword notes enabled type: boolean prompt\_extract\_length: description: Prompt extract length enum: - short - medium - long type: string prompt\_extract\_strategy: description: Prompt extract strategy enum: - after - before - contains type: string uuid: description: UUID of the smart category format: uuid type: string type: object required: - name - settings - prompts - keywords type: object description: '' '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params summary: Create the smart category settings tags: - Smart Category /v1/smart\_categories/{uuid}/: get: description: 'Returns smart categories from given uuid. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the smart category. format: uuid type: string responses: '200': content: application/json: schema: description: Smart Category Object properties: is\_default: description: Is default custom category. type: boolean key: description: Key of the custom category. type: string keywords: description: Keywords of the custom category. items: description: Keyword object properties: created: description: Creation date-time(UTC). format: date-time type: string custom\_category: description: Unique ID of the custom category. format: uuid type: string is\_primary: description: Is primary keyword. type: boolean label: description: Label of the the keyword. example: Competitor type: string uuid: description: Unique ID of the keyword. format: uuid type: string variations: description: Variations of the keyword. items: description: Variation of the keyword. example: Competitor type: string type: array type: object type: array name: description: Name of the custom category. type: string prompts: description: Prompts of the custom category. items: description: Prompt object properties: created: description: Creation date-time(UTC). format: date-time type: string custom\_category: description: Unique ID of the custom category. format: uuid type: string label: description: Label of the the prompt. example: How did you hear about us type: string uuid: description: Unique ID of the prompt. format: uuid type: string variations: description: Variations of the prompt. items: description: Variation of the prompt. example: How did you hear about us type: string type: array type: object type: array settings: description: Settings of the custom category. properties: aug\_notes\_enabled: description: Augmented notes enabled. type: boolean keyword\_notes\_enabled: description: Keyword notes enabled. type: boolean keyword\_tracking\_enabled: description: Keyword tracking enabled. type: boolean prompt\_extract\_length: description: Prompt extract length. type: string prompt\_extract\_strategy: description: Prompt extract strategy. type: string prompt\_notes\_enabled: description: Prompt notes enabled. type: boolean type: object uuid: description: UUID of the custom category. format: uuid type: string type: object description: OK '400': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Invalid query params summary: Get Smart Categories tags: - Smart Category patch: description: Updates the smart category and settings parameters: - description: Unique ID of the Smart Category in: path name: uuid required: true schema: format: uuid type: string requestBody: content: application/json: schema: properties: keywords: description: Keywords of the smart category items: type: string type: array prompts: description: Prompts of the smart category items: type: string type: array settings: description: Settings of the smart category properties: aug\_notes\_enabled: description: Bookmark and transcript highlight type: boolean keyword\_notes\_enabled: description: Keyword notes enabled type: boolean prompt\_extract\_length: description: Prompt extract length enum: - short - medium - long type: string prompt\_extract\_strategy: description: Prompt extract strategy enum: - after - before - contains type: string type: object type: object responses: '200': content: application/json: schema: properties: keywords: description: Keywords of the smart category items: type: string type: array prompts: description: Prompts of the smart category items: type: string type: array settings: description: Settings of the smart category properties: aug\_notes\_enabled: description: Bookmark and transcript highlight type: boolean keyword\_notes\_enabled: description: Keyword notes enabled type: boolean prompt\_extract\_length: description: Prompt extract length enum: - short - medium - long type: string prompt\_extract\_strategy: description: Prompt extract strategy enum: - after - before - contains type: string type: object type: object description: '' summary: Update the smart category settings tags: - Smart Category /v1/template/: get: description: 'Returns all templates from the organization. ' parameters: \[\] responses: '200': content: application/json: schema: items: properties: email: description: Email of the user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_types: description: List of meeting type uuids and label. example: - label: Stand Up uuid: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - label: Check-in uuid: b321142f-8084-4c69-a04f-0049f36cad9d - label: Negotiation uuid: dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: properties: label: description: Label of the meeting type. example: Demo type: string uuid: description: Unique ID of the meeting type. format: uuid type: string required: - uuid - label type: object type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string text\_slate: description: Text slate of the template. example: '\[{"type": "header-2", "children": \[{"text": "Referral\ Source"}\], "data": {"block\_created": "2023-11-28 07:58:47.642791",\ "highlight\_notes\_title": true, "block\_key": "highlight\_category\_referral\_source"}},\ {"type": "header-2", "children": \[{"text": "Action Items"}\],\ "data": {"block\_created": "2023-11-28 07:58:47.643488", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_action\_item"}}, {"type":\ "header-2", "children": \[{"text": "Background"}\], "data":\ {"block\_created": "2023-11-28 07:58:47.644071", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_background"}}, {"type":\ "header-2", "children": \[{"text": "Pain Point"}\], "data":\ {"block\_created": "2023-11-28 07:58:47.644757", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_pain\_point"}}\]' type: string uuid: description: UUID of the template. format: uuid type: string required: - uuid - name - meeting\_types - is\_default - privacy - text\_slate type: object type: array description: OK summary: List Templates tags: - Templates post: description: 'Create a new template ' parameters: \[\] requestBody: content: application/json: schema: properties: categories: description: List of custom category uuids. example: - edf84cad-6301-475b-9dfb-14d1d7302778 - 92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca - 6cb8cd55-7044-4443-aa02-bc37168caf24 items: format: uuid type: string type: array email: description: Email of the user. If email user is part of organization, template will be associated with the user or it will be associated with the oldest admin user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_type\_uuids: description: List of meeting type uuids. example: - 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - b321142f-8084-4c69-a04f-0049f36cad9d - dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: format: uuid type: string type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string required: - name - categories - meeting\_type\_uuids type: object responses: '200': content: application/json: schema: properties: email: description: Email of the user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_types: description: List of meeting type uuids and label. example: - label: Stand Up uuid: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - label: Check-in uuid: b321142f-8084-4c69-a04f-0049f36cad9d - label: Negotiation uuid: dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: properties: label: description: Label of the meeting type. example: Demo type: string uuid: description: Unique ID of the meeting type. format: uuid type: string required: - uuid - label type: object type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string text\_slate: description: Text slate of the template. example: '\[{"type": "header-2", "children": \[{"text": "Referral\ Source"}\], "data": {"block\_created": "2023-11-28 07:58:47.642791",\ "highlight\_notes\_title": true, "block\_key": "highlight\_category\_referral\_source"}},\ {"type": "header-2", "children": \[{"text": "Action Items"}\],\ "data": {"block\_created": "2023-11-28 07:58:47.643488", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_action\_item"}}, {"type":\ "header-2", "children": \[{"text": "Background"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644071", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_background"}}, {"type": "header-2",\ "children": \[{"text": "Pain Point"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644757", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_pain\_point"}}\]' type: string uuid: description: UUID of the template. format: uuid type: string required: - uuid - name - meeting\_types - is\_default - privacy - text\_slate type: object description: '' '400': content: application/json: schema: description: Object having key as field/query param name and value as list of errors. example: message: - This field may not be blank. type: object description: Bad Request. Could be due to invalid input data or a duplicate template (based on external\_id). summary: Create Template tags: - Templates /v1/template/{uuid}/: get: description: 'Returns templates from given uuid. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the template. format: uuid type: string responses: '200': content: application/json: schema: properties: email: description: Email of the user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_types: description: List of meeting type uuids and label. example: - label: Stand Up uuid: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - label: Check-in uuid: b321142f-8084-4c69-a04f-0049f36cad9d - label: Negotiation uuid: dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: properties: label: description: Label of the meeting type. example: Demo type: string uuid: description: Unique ID of the meeting type. format: uuid type: string required: - uuid - label type: object type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string text\_slate: description: Text slate of the template. example: '\[{"type": "header-2", "children": \[{"text": "Referral\ Source"}\], "data": {"block\_created": "2023-11-28 07:58:47.642791",\ "highlight\_notes\_title": true, "block\_key": "highlight\_category\_referral\_source"}},\ {"type": "header-2", "children": \[{"text": "Action Items"}\],\ "data": {"block\_created": "2023-11-28 07:58:47.643488", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_action\_item"}}, {"type":\ "header-2", "children": \[{"text": "Background"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644071", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_background"}}, {"type": "header-2",\ "children": \[{"text": "Pain Point"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644757", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_pain\_point"}}\]' type: string uuid: description: UUID of the template. format: uuid type: string required: - uuid - name - meeting\_types - is\_default - privacy - text\_slate type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found. summary: Get Templates tags: - Templates put: description: 'Update a template, the update will replace the existing template. ' parameters: - description: Unique ID of the Template in: path name: uuid required: true schema: format: uuid type: string requestBody: content: application/json: schema: properties: categories: description: List of custom category uuids. example: - edf84cad-6301-475b-9dfb-14d1d7302778 - 92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca - 6cb8cd55-7044-4443-aa02-bc37168caf24 items: format: uuid type: string type: array email: description: Email of the user. If email user is part of organization, template will be associated with the user or it will be associated with the oldest admin user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_type\_uuids: description: List of meeting type uuids. example: - 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - b321142f-8084-4c69-a04f-0049f36cad9d - dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: format: uuid type: string type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string required: - name - categories - meeting\_type\_uuids type: object responses: '200': content: application/json: schema: properties: email: description: Email of the user. format: email type: string is\_default: description: Is default template. type: boolean meeting\_types: description: List of meeting type uuids and label. example: - label: Stand Up uuid: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7 - label: Check-in uuid: b321142f-8084-4c69-a04f-0049f36cad9d - label: Negotiation uuid: dd24f4ab-0424-44b9-a5f8-0cd69942d988 items: properties: label: description: Label of the meeting type. example: Demo type: string uuid: description: Unique ID of the meeting type. format: uuid type: string required: - uuid - label type: object type: array name: description: Name of the template. type: string privacy: description: Privacy of the template. enum: - private - organization type: string text\_slate: description: Text slate of the template. example: '\[{"type": "header-2", "children": \[{"text": "Referral\ Source"}\], "data": {"block\_created": "2023-11-28 07:58:47.642791",\ "highlight\_notes\_title": true, "block\_key": "highlight\_category\_referral\_source"}},\ {"type": "header-2", "children": \[{"text": "Action Items"}\],\ "data": {"block\_created": "2023-11-28 07:58:47.643488", "highlight\_notes\_title":\ true, "block\_key": "highlight\_category\_action\_item"}}, {"type":\ "header-2", "children": \[{"text": "Background"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644071", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_background"}}, {"type": "header-2",\ "children": \[{"text": "Pain Point"}\], "data": {"block\_created":\ "2023-11-28 07:58:47.644757", "highlight\_notes\_title": true,\ "block\_key": "highlight\_category\_pain\_point"}}\]' type: string uuid: description: UUID of the template. format: uuid type: string required: - uuid - name - meeting\_types - is\_default - privacy - text\_slate type: object description: '' '400': content: application/json: schema: description: Object having key as field/query param name and value as list of errors. example: message: - This field may not be blank. type: object description: Bad Request. Could be due to invalid input data or a duplicate template (based on external\_id). summary: Update Template tags: - Templates /v1/transcriptions/: get: description: 'Returns list of transcriptions. If meeting\_uuid is provided, returns transcription for that meeting directly. Otherwise returns paginated response of all transcriptions. ' parameters: - description: To retrieve transcriptions for meetings started at or started after given date-time(UTC). Not required when \`meeting\_uuid' is provided in: query name: from\_date required: true schema: format: date-time type: string - description: To retrieve transcriptions for meetings started at or started before given date-time(UTC). Not required when \`meeting\_uuid' is provided in: query name: to\_date required: true schema: format: date-time type: string - description: Unique ID of the meeting for which transcriptions will be fetched. in: query name: meeting\_uuid schema: format: uuid type: string - description: Page number for pagination (only used when meeting\_uuid is not provided) in: query name: page schema: minimum: 1 type: integer - description: Number of items per page (max 100, only used when meeting\_uuid is not provided) in: query name: page\_size schema: maximum: 100 minimum: 1 type: integer - description: Comma-separated list of attendee emails to filter meetings by.
Meetings with \*\*\*any\*\*\* of the attendees will be returned. in: query name: attendee\_emails schema: example: john.doe@example.com,kelly@acme.com type: string - description: Comma-separated list of CRM account external IDs to filter by. in: query name: crm\_account\_ids schema: type: string - description: Comma-separated list of CRM opportunity external IDs to filter by. in: query name: crm\_opportunity\_ids schema: type: string - description: Comma-separated list of CRM contact external IDs to filter by. in: query name: crm\_contact\_ids schema: type: string - description: Comma-separated list of CRM lead external IDs to filter by. in: query name: crm\_lead\_ids schema: type: string responses: '200': content: application/json: schema: oneOf: - description: Single transcription response when meeting\_uuid is provided example: - meeting\_uuid: 123e4567-e89b-12d3-a456-426614174000 speakers: - email: user@example.com id: 0 is\_rep: true name: FirstName LastName transcript: - speaker\_id: 0 timestamps: - 0.77 - 0.89 - 1.04 - 1.19 transcript: Hey, how are you? transcription\_vtt\_url: string uuid: 095be615-a8ad-4c33-8e9c-c7612fbf6c9f items: description: Transcription object properties: meeting\_uuid: description: Unique ID of the meeting that this transcription belongs to. format: uuid type: string speakers: items: properties: email: description: Email of the speaker. format: email type: string id: description: ID of the speaker. type: integer is\_rep: description: '- \`true\`: Speaker is a representative (any speaker from the organization) - \`false\`: Speaker is a customer/prospect. ' type: boolean name: description: Name of the speaker. example: FirstName LastName nullable: true type: string required: - email - id - is\_rep type: object type: array transcript: example: - speaker\_id: 0 timestamps: - 0.77 - 0.89 - 1.04 - 1.19 transcript: Hey, how are you? items: properties: speaker\_id: description: 'Id of the speaker whom transcript paragraph belongs. Use Speakers Array to get more information like email/name based on the ''id'' of the speaker. ' type: integer timestamps: description: 'List of timestamps(in seconds) for each word in the \`transcript\` field. These timestamps are relative to actual (not scheduled) start of the meeting. ' example: - 0.77 - 0.89 - 1.04 - 1.19 items: format: float type: number type: array transcript: description: Actual textual transcript. example: Hey, how are you? type: string required: - transcript - timestamps - speaker\_id type: object type: array transcription\_vtt\_url: description: Signed url of the transcription vtt file. format: url type: string uuid: description: Unique ID of the transcription. format: uuid type: string required: - uuid - transcript - speakers - transcription\_vtt\_url - meeting\_uuid type: object title: Single Transcription type: array - description: Paginated response when meeting\_uuid is not provided properties: count: description: Total number of items type: integer next: description: URL for the next page of results nullable: true type: string previous: description: URL for the previous page of results nullable: true type: string results: description: Array of transcription objects items: description: Transcription object properties: meeting\_uuid: description: Unique ID of the meeting that this transcription belongs to. format: uuid type: string speakers: items: properties: email: description: Email of the speaker. format: email type: string id: description: ID of the speaker. type: integer is\_rep: description: '- \`true\`: Speaker is a representative (any speaker from the organization) - \`false\`: Speaker is a customer/prospect. ' type: boolean name: description: Name of the speaker. example: FirstName LastName nullable: true type: string required: - email - id - is\_rep type: object type: array transcript: example: - speaker\_id: 0 timestamps: - 0.77 - 0.89 - 1.04 - 1.19 transcript: Hey, how are you? items: properties: speaker\_id: description: 'Id of the speaker whom transcript paragraph belongs. Use Speakers Array to get more information like email/name based on the ''id'' of the speaker. ' type: integer timestamps: description: 'List of timestamps(in seconds) for each word in the \`transcript\` field. These timestamps are relative to actual (not scheduled) start of the meeting. ' example: - 0.77 - 0.89 - 1.04 - 1.19 items: format: float type: number type: array transcript: description: Actual textual transcript. example: Hey, how are you? type: string required: - transcript - timestamps - speaker\_id type: object type: array transcription\_vtt\_url: description: Signed url of the transcription vtt file. format: url type: string uuid: description: Unique ID of the transcription. format: uuid type: string required: - uuid - transcript - speakers - transcription\_vtt\_url - meeting\_uuid type: object type: array title: Paginated Transcriptions type: object description: OK, returns transcription object when meeting\_uuid is provided, otherwise returns paginated response. summary: List Transcriptions tags: - Transcriptions /v1/transcriptions/{uuid}/: get: description: 'Returns a single transcription for a given \`uuid\`. ' parameters: - in: path name: uuid required: true schema: description: Unique ID of the transcription. format: uuid type: string responses: '200': content: application/json: schema: description: Transcription object properties: meeting\_uuid: description: Unique ID of the meeting that this transcription belongs to. format: uuid type: string speakers: items: properties: email: description: Email of the speaker. format: email type: string id: description: ID of the speaker. type: integer is\_rep: description: '- \`true\`: Speaker is a representative (any speaker from the organization) - \`false\`: Speaker is a customer/prospect. ' type: boolean name: description: Name of the speaker. example: FirstName LastName nullable: true type: string required: - email - id - is\_rep type: object type: array transcript: example: - speaker\_id: 0 timestamps: - 0.77 - 0.89 - 1.04 - 1.19 transcript: Hey, how are you? items: properties: speaker\_id: description: 'Id of the speaker whom transcript paragraph belongs. Use Speakers Array to get more information like email/name based on the ''id'' of the speaker. ' type: integer timestamps: description: 'List of timestamps(in seconds) for each word in the \`transcript\` field. These timestamps are relative to actual (not scheduled) start of the meeting. ' example: - 0.77 - 0.89 - 1.04 - 1.19 items: format: float type: number type: array transcript: description: Actual textual transcript. example: Hey, how are you? type: string required: - transcript - timestamps - speaker\_id type: object type: array transcription\_vtt\_url: description: Signed url of the transcription vtt file. format: url type: string uuid: description: Unique ID of the transcription. format: uuid type: string required: - uuid - transcript - speakers - transcription\_vtt\_url - meeting\_uuid type: object description: OK '404': content: application/json: schema: properties: detail: description: Error details example: Not Found type: string required: - detail type: object description: Not Found summary: Get Transcription tags: - Transcriptions /v1/meeting\_type/: get: summary: List Meeting Types description: > Returns all meeting types for the organization. tags: - Meeting Types parameters: \[\] responses: "200": description: OK content: application/json: schema: type: array items: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" post: summary: Create Meeting Type description: > Creates a new meeting type for the organization. tags: - Meeting Types requestBody: required: true content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_request" responses: "201": description: Created content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_response" "400": description: Bad Request - Invalid data or duplicate label content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/meeting\_type/{uuid}/: get: summary: Get Meeting Type description: > Returns a specific meeting type by UUID. tags: - Meeting Types parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting type. responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_response" "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" patch: summary: Update Meeting Type description: > Updates a specific meeting type by UUID. You can provide either label or description (or both). tags: - Meeting Types parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting type. requestBody: required: true content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_update\_request" responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_type\_response" "400": description: Bad Request - Invalid data content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" delete: summary: Delete Meeting Type description: > Deletes a specific meeting type by UUID. tags: - Meeting Types parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting type. responses: "204": description: No Content - Successfully deleted "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/meeting\_outcome/: get: summary: List Meeting Outcomes description: > Returns all meeting outcomes for the organization. tags: - Meeting Outcomes parameters: \[\] responses: "200": description: OK content: application/json: schema: type: array items: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" post: summary: Create Meeting Outcome description: > Creates a new meeting outcome for the organization. tags: - Meeting Outcomes requestBody: required: true content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_request" responses: "201": description: Created content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_response" "400": description: Bad Request - Invalid data or duplicate label content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/meeting\_outcome/{uuid}/: get: summary: Get Meeting Outcome description: > Returns a specific meeting outcome by UUID. tags: - Meeting Outcomes parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting outcome. responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_response" "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" patch: summary: Update Meeting Outcome description: > Updates a specific meeting outcome by UUID. You can provide either label or description (or both). tags: - Meeting Outcomes parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting outcome. requestBody: required: true content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_update\_request" responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/meeting\_outcome\_response" "400": description: Bad Request - Invalid data content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" delete: summary: Delete Meeting Outcome description: > Deletes a specific meeting outcome by UUID. tags: - Meeting Outcomes parameters: - name: uuid required: true in: path schema: type: string format: uuid description: Unique ID of the meeting outcome. responses: "204": description: No Content - Successfully deleted "404": description: Not Found content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/users/: get: description: '' parameters: \[\] responses: '200': content: application/json: schema: items: properties: active: readOnly: true type: string is\_admin: deprecated: true type: boolean position: readOnly: true type: string role: properties: description: maxLength: 140 nullable: true type: string display\_name: maxLength: 50 type: string name: enum: - admin - manager - member - guest readOnly: true type: string role\_type: enum: - sys - usr type: string uuid: format: uuid readOnly: true type: string required: - display\_name type: object status: readOnly: true type: string teams: readOnly: true type: string user: properties: email: format: email readOnly: true type: string first\_name: type: string is\_active: description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. type: boolean job\_function: readOnly: true type: string last\_name: type: string position: readOnly: true type: string profile\_pic: readOnly: true type: string required: - first\_name - last\_name type: object uuid: format: uuid readOnly: true type: string required: - user - role type: object type: array description: '' summary: List users tags: - Users /v1/users/{uuid}/: get: description: '' operationId: Get User parameters: - description: '' in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: properties: active: readOnly: true type: string is\_admin: deprecated: true type: boolean position: readOnly: true type: string role: properties: description: maxLength: 140 nullable: true type: string display\_name: maxLength: 50 type: string name: enum: - admin - manager - member - guest readOnly: true type: string role\_type: enum: - sys - usr type: string uuid: format: uuid readOnly: true type: string required: - display\_name type: object status: readOnly: true type: string teams: readOnly: true type: string user: properties: email: format: email readOnly: true type: string first\_name: type: string is\_active: description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. type: boolean job\_function: readOnly: true type: string last\_name: type: string position: readOnly: true type: string profile\_pic: readOnly: true type: string required: - first\_name - last\_name type: object uuid: format: uuid readOnly: true type: string required: - user - role type: object description: '' tags: - Users /v1/webhooks/: post: description: 'Emitted to notify the successful generation of notes on Meetings or Calls. ' operationId: postAinotes requestBody: content: application/json: schema: properties: action\_items: description: List of action items extracted from the meeting. example: - action\_item: Follow up with client on project timeline company: Avoma email: john.doe@avoma.com name: John Doe - action\_item: Review and provide feedback on proposal company: Client Corp email: jane.smith@client.com name: Jane Smith items: properties: action\_item: description: The actual action item text. type: string company: description: Company of the person assigned the action item. type: string email: description: Email of the person assigned the action item. format: email type: string name: description: Name of the person assigned the action item. type: string required: - email - name - company - action\_item type: object type: array ai\_notes: description: AI-generated notes for the meeting in HTML format. example: '

Participants

  • Avoma: John Doe

' nullable: true type: string ai\_notes\_txt: description: AI-generated notes for the meeting in markdown/text format. example: 'Participants: Avoma: John Doe' nullable: true type: string attendees: description: The attendees of the meeting. items: properties: email: description: The email of the attendee. format: email type: string name: description: The name of the attendee. type: string response\_status: description: The response status of the attendee. type: string uuid: description: The unique identifier of the attendee. format: uuid type: string type: object type: array audio\_ready: description: Indicates if the audio is ready. type: boolean audio\_url: description: The URL of the audio. format: uri type: string created: description: The creation date-time (UTC). format: date-time type: string duration: description: The duration of the meeting. format: float type: number end\_at: description: The end time of the meeting. format: date-time type: string event\_type: description: The event type of the meeting. enum: - AINOTE type: string insights: description: The insights of the meeting. properties: filler\_wpm: description: The filler words per minute in the meeting. items: properties: designation: description: The designation of the speaker. type: string filler\_wpm: description: The filler words per minute of the speaker. type: number speaker\_id: description: The ID of the speaker. type: string type: object type: array longest\_monologue: description: The longest monologue in the meeting. properties: rep: properties: segments: description: The segments of the speaker. items: items: type: number type: array type: array speaker\_id: description: The ID of the speaker. type: string type: object type: object patience: description: The patience of the speaker. items: properties: designation: description: The designation of the speaker. type: string patience: description: The patience of the speaker. type: number speaker\_id: description: The ID of the speaker. type: string type: object type: array sentiment: description: The sentiment of the meeting. properties: sentiment: description: The sentiment of the meeting. type: number sentiment\_ranges: description: The sentiment ranges of the meeting. items: properties: range: description: The range of the sentiment. type: string sentiment\_value: description: The sentiment value. type: number type: object type: array type: object speaker\_mapping: description: The speaker mapping of the meeting. properties: email: description: The email of the speaker. format: email type: string id: description: The ID of the speaker. type: integer name: description: The name of the speaker. type: string type: object talk\_stats: description: The talk stats of the meeting. properties: talk\_percentage: description: The talk percentage of the speaker. format: float type: number total\_talk\_time: description: The total talk time of the speaker. format: float type: number type: object wpm: description: The words per minute of the meeting. items: properties: designation: description: The designation of the speaker. type: string speaker\_id: description: The ID of the speaker. type: string wpm: description: The words per minute of the speaker. type: number type: object type: array type: object is\_call: description: Indicates if the meeting is a voice call. type: boolean is\_internal: description: 'Indicates if the meeting is internal. - \`true\`: Get meetings where no attendee is from outside the organization. - \`false\`: Get meetings where there are attendees from outside the organization. ' type: boolean meeting\_url: description: Direct URL to the meeting in Avoma platform. example: https://app.avoma.com/meeting/aa380fc2-725d-4ef8-909c-c595c0e62bcd format: uri nullable: true type: string modified: description: Last modification date-time(UTC). format: date-time type: string notes\_ready: description: Indicates if the notes are ready. type: boolean organizer\_email: description: The email of the organizer. format: email type: string organizer\_name: description: The name of the organizer. type: string privacy: description: The privacy of the meeting. enum: - private - organization type: string processing\_status: description: The processing status of the meeting. type: string purpose: description: The purpose of the meeting. properties: label: type: string uuid: format: uuid type: string type: object recording\_uuid: description: The unique identifier of the recording. format: uuid type: string start\_at: description: The start time of the meeting. format: date-time type: string state: description: The state of the meeting. type: string subject: description: The subject of the meeting. type: string transcript\_ready: description: Indicates if the transcript is ready. type: boolean transcription\_uuid: description: The unique identifier of the transcription. format: uuid type: string transcription\_vtt\_url: description: Signed url of the transcription vtt file. format: uri type: string uuid: description: The unique identifier of the meeting. format: uuid type: string video\_ready: description: Indicates if the video is ready. type: boolean video\_url: description: The URL of the video. format: uri type: string type: object responses: '200': description: NO Response. summary: AINote tags: - Webhooks /v1/webhooks/meeting\_booked\_via\_scheduler/: post: description: 'Emitted when a meeting is booked through one of your Avoma scheduling pages. ' operationId: postMeetingBookedViaScheduler requestBody: content: application/json: schema: properties: booker\_email: description: The email of the booker. nullable: true type: string cancel\_reason: description: The reason for the cancellation. nullable: true type: string conference\_link: description: The conference link of the event. type: string created: description: Timestamp when the meeting was created. format: date-time type: string event\_end\_time: description: The end time of the event. format: date-time type: string event\_start\_time: description: The start time of the event. format: date-time type: string event\_type: description: The type of the event. enum: - MEETING\_BOOKED\_VIA\_SCHEDULER type: string invitee\_details: description: The details of the invitee. properties: email: description: The email of the invitee. format: email type: string locale: description: The locale of the invitee. type: string name: description: The name of the invitee. type: string tz: description: The timezone of the invitee. type: string type: object invitee\_responses: description: The responses of the invitee. items: properties: question: description: The question. type: string response: description: The response. type: string type: object type: array meeting\_uuid: description: The unique identifier of the meeting created in Avoma. format: uuid type: string modified: description: Timestamp when the event was last modified. format: date-time type: string organizer\_email: description: The email of the organizer. format: email type: string organizer\_timezone: description: The timezone of the organizer. type: string purpose: description: The purpose of the meeting. nullable: true type: string scheduling\_page\_link: description: The scheduling page link. type: string subject: description: The subject of the meeting. type: string uuid: description: The unique identifier of the event. format: uuid type: string type: object responses: '200': description: NO Response summary: MEETING\_BOOKED\_VIA\_SCHEDULER tags: - Webhooks /v1/webhooks/meeting\_booked\_via\_scheduler\_canceled/: post: description: 'Emitted when a meeting that was booked through one of your Avoma scheduling pages is canceled. ' operationId: postMeetingBookedViaSchedulerCanceled requestBody: content: application/json: schema: properties: booker\_email: description: The email of the booker. nullable: true type: string cancel\_reason: description: The reason for the cancellation. nullable: true type: string conference\_link: description: The conference link of the event. type: string created: description: Timestamp when the event was created. format: date-time type: string event\_end\_time: description: The end time of the event. format: date-time type: string event\_start\_time: description: The start time of the event. format: date-time type: string event\_type: description: The type of the event. enum: - MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED type: string invitee\_details: description: The details of the invitee. properties: email: description: The email of the invitee. format: email type: string locale: description: The locale of the invitee. type: string name: description: The name of the invitee. type: string tz: description: The timezone of the invitee. type: string type: object invitee\_responses: description: The responses of the invitee. items: properties: question: description: The question. type: string response: description: The response. type: string type: object type: array meeting\_uuid: description: The unique identifier of the meeting. format: uuid type: string modified: description: Timestamp when the event was last modified. format: date-time type: string organizer\_email: description: The email of the organizer. format: email type: string organizer\_timezone: description: The timezone of the organizer. type: string purpose: description: The purpose of the event. nullable: true type: string scheduling\_page\_link: description: The scheduling page link. type: string subject: description: The subject of the event. type: string uuid: description: The unique identifier of the event. format: uuid type: string type: object responses: '200': description: NO Response summary: MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED tags: - Webhooks /v1/webhooks/meeting\_booked\_via\_scheduler\_rescheduled/: post: description: 'Emitted when a meeting that was booked through one of your Avoma scheduling pages is rescheduled. ' operationId: postMeetingBookedViaSchedulerRescheduled requestBody: content: application/json: schema: properties: booker\_email: description: The email of the booker. nullable: true type: string cancel\_reason: description: The reason for the cancellation. nullable: true type: string conference\_link: description: The conference link of the event. type: string created: description: Timestamp when the event was created. format: date-time type: string event\_end\_time: description: The end time of the event. format: date-time type: string event\_start\_time: description: The start time of the event. format: date-time type: string event\_type: description: The type of the event. enum: - MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED type: string invitee\_details: description: The details of the invitee. properties: email: description: The email of the invitee. format: email type: string locale: description: The locale of the invitee. type: string name: description: The name of the invitee. type: string tz: description: The timezone of the invitee. type: string type: object invitee\_responses: description: The responses of the invitee. items: properties: question: description: The question. type: string response: description: The response. type: string type: object type: array meeting\_uuid: description: The unique identifier of the meeting. format: uuid type: string modified: description: Timestamp when the event was last modified. format: date-time type: string organizer\_email: description: The email of the organizer. format: email type: string organizer\_timezone: description: The timezone of the organizer. type: string purpose: description: The purpose of the event. nullable: true type: string scheduling\_page\_link: description: The scheduling page link. type: string subject: description: The subject of the event. type: string uuid: description: The unique identifier of the event. format: uuid type: string type: object responses: '200': description: NO Response summary: MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED tags: - Webhooks /v1/engagement/: get: summary: List Engagement Metrics for All Users description: > Returns engagement analytics data for all users in the organization, showing metrics like conversations listened, snippets, shares, comments, etc. for each user. tags: - Engagement Analytics parameters: - name: from\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement data for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-01T00:00:00Z\\"." - name: to\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement data for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-31T23:59:59Z\\"." - name: page in: query schema: type: integer minimum: 1 default: 1 description: Page number for pagination - name: page\_size in: query schema: type: integer minimum: 1 maximum: 100 default: 10 description: Number of items per page (max 100) - name: o in: query schema: type: string enum: - user\_email - -user\_email - conversations\_listened - -conversations\_listened - snippets\_listened - -snippets\_listened - conversations\_shared - -conversations\_shared - conversations\_commented - -conversations\_commented - total\_comments - -total\_comments - conversations\_listened\_duration - -conversations\_listened\_duration - conversations\_listened\_percent - -conversations\_listened\_percent description: > Field to order results by. Prefix with \`-\` for descending order. Example: \`o=-conversations\_listened\` for descending order by conversations listened. - name: user\_email in: query schema: type: array items: type: string format: email description: Filter by specific user email(s). Can be passed multiple times. - name: is\_call in: query schema: type: boolean description: > Filter by call type: - \`true\`: Only voice calls - \`false\`: Only video meetings - name: is\_internal in: query schema: type: boolean description: > Filter by meeting type: - \`true\`: Only internal meetings (no external attendees) - \`false\`: Only external meetings (has external attendees) - name: meeting\_outcome\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting outcome UUID(s). Can be passed multiple times. - name: meeting\_type\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting type UUID(s). Can be passed multiple times. - name: recording\_duration\_\_gte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration greater than or equal to specified seconds - name: recording\_duration\_\_lte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration less than or equal to specified seconds - name: shared\_meetings\_only in: query schema: type: boolean description: If true, only include shared meetings - name: is\_impromptu in: query schema: type: boolean description: Filter by impromptu meetings (unscheduled/ad-hoc) responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/engagement\_list\_response" example: $ref: "./openapi/components/external.yml#/components/examples/engagement\_list\_example" "400": description: Invalid query params or email not found in organization content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/bad\_request\_body" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/engagement/{user\_uuid}/: get: summary: Get Engagement Metrics for Specific User description: > Returns participant-level engagement metrics for a specific user, showing detailed interaction data with each participant (conversations listened, playback speed, etc.). tags: - Engagement Analytics parameters: - name: user\_uuid in: path required: true schema: type: string format: uuid description: UUID of the user to get engagement metrics for - name: from\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement data for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-01T00:00:00Z\\"." - name: to\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement data for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-31T23:59:59Z\\"." - name: page in: query schema: type: integer minimum: 1 default: 1 description: Page number for pagination - name: page\_size in: query schema: type: integer minimum: 1 maximum: 100 default: 10 description: Number of items per page (max 100) - name: o in: query schema: type: string enum: - participant\_email - -participant\_email - conversations\_listened - -conversations\_listened - snippets\_listened - -snippets\_listened - conversations\_shared - -conversations\_shared - conversations\_commented - -conversations\_commented - total\_comments - -total\_comments - avg\_playback\_speed - -avg\_playback\_speed - conversations\_listened\_duration - -conversations\_listened\_duration - conversations\_listened\_percent - -conversations\_listened\_percent description: > Field to order results by. Prefix with \`-\` for descending order. Example: \`o=-conversations\_listened\` for descending order by conversations listened. - name: participant\_email in: query schema: type: array items: type: string format: email description: Filter by participant email(s). Can be passed multiple times. - name: is\_call in: query schema: type: boolean description: > Filter by call type: - \`true\`: Only voice calls - \`false\`: Only video meetings - name: is\_internal in: query schema: type: boolean description: > Filter by meeting type: - \`true\`: Only internal meetings (no external attendees) - \`false\`: Only external meetings (has external attendees) - name: meeting\_outcome\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting outcome UUID(s). Can be passed multiple times. - name: meeting\_type\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting type UUID(s). Can be passed multiple times. - name: recording\_duration\_\_gte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration greater than or equal to specified seconds - name: recording\_duration\_\_lte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration less than or equal to specified seconds - name: shared\_meetings\_only in: query schema: type: boolean description: If true, only include shared meetings - name: is\_impromptu in: query schema: type: boolean description: Filter by impromptu meetings (unscheduled/ad-hoc) responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/engagement\_list\_response" example: $ref: "./openapi/components/external.yml#/components/examples/engagement\_list\_example" "400": description: Invalid query params or email not found in organization content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/bad\_request\_body" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/engagement/summary/: get: summary: Get Overall Engagement Summary for All Users description: > Returns aggregated summary statistics for engagement metrics across all users in the organization. Provides overall engagement overview including total conversations, shares, comments, etc. tags: - Engagement Analytics parameters: - name: from\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement summary for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-01T00:00:00Z\\"." - name: to\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement summary for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-31T23:59:59Z\\"." - name: user\_email in: query schema: type: array items: type: string format: email description: Filter by specific user email(s). Can be passed multiple times. - name: is\_call in: query schema: type: boolean description: Filter by call type (true=voice calls, false=video meetings) - name: is\_internal in: query schema: type: boolean description: Filter by meeting type (true=internal only, false=external only) - name: meeting\_outcome\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting outcome UUID(s) - name: meeting\_type\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting type UUID(s) - name: recording\_duration\_\_gte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration >= specified seconds - name: recording\_duration\_\_lte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration <= specified seconds - name: shared\_meetings\_only in: query schema: type: boolean description: If true, only include shared meetings - name: is\_impromptu in: query schema: type: boolean description: Filter by impromptu meetings (unscheduled/ad-hoc) responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/engagement\_summary\_response" example: $ref: "./openapi/components/external.yml#/components/examples/engagement\_summary\_example" "400": description: Invalid query params or email not found in organization content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/bad\_request\_body" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" /v1/engagement/{user\_uuid}/summary/: get: summary: Get Engagement Summary for Specific User's Participants description: > Returns aggregated summary statistics for a specific user's engagement activity across all their participants. Shows how the user engaged with different participants. tags: - Engagement Analytics parameters: - name: user\_uuid in: path required: true schema: type: string format: uuid description: UUID of the user to get participant summary for - name: from\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement summary for meetings started at or started after given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-01T00:00:00Z\\"." - name: to\_date in: query required: true schema: type: string format: "date-time" description: "To retrieve engagement summary for meetings started at or started before given date-time(UTC). Format: ISO 8601 datetime string e.g. \\"2024-01-31T23:59:59Z\\"." - name: participant\_email in: query schema: type: array items: type: string format: email description: Filter by participant email(s). Can be passed multiple times. - name: is\_call in: query schema: type: boolean description: Filter by call type (true=voice calls, false=video meetings) - name: is\_internal in: query schema: type: boolean description: Filter by meeting type (true=internal only, false=external only) - name: meeting\_outcome\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting outcome UUID(s) - name: meeting\_type\_uuid in: query schema: type: array items: type: string format: uuid description: Filter by meeting type UUID(s) - name: recording\_duration\_\_gte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration >= specified seconds - name: recording\_duration\_\_lte in: query schema: type: number minimum: 0 description: Filter meetings with recording duration <= specified seconds - name: shared\_meetings\_only in: query schema: type: boolean description: If true, only include shared meetings - name: is\_impromptu in: query schema: type: boolean description: Filter by impromptu meetings (unscheduled/ad-hoc) responses: "200": description: OK content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/engagement\_summary\_response" example: $ref: "./openapi/components/external.yml#/components/examples/engagement\_summary\_example" "400": description: Invalid query params or email not found in organization content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/bad\_request\_body" "401": description: Unauthorized content: application/json: schema: $ref: "./openapi/components/external.yml#/components/schemas/http\_error\_response" security: - bearerAuth: \[\] servers: - description: Avoma APIs url: https://api.avoma.com tags: - description: Meetings are the foundation and starting point of the flow in Avoma. You can fetch recordings , transcriptions , ai notes , sentiments and coaching once the meeting is recorded and finished processing. name: Meetings - description: Recordings contain Audio and Video information for a completed meeting. Once recording is available you should be able to download the same using the pre-signed url. The url will be valid for 5 days. To check whether the recordings for a particular meeting are ready , you can invoke get meeting api and verify \`audio\_ready\` and \`video\_ready\` parameters in the response. name: Recording - description: Transcription is generated for meeting's recording. This is available once the meeting recording is processed. Availability of transcription can be verified using \`transcript\_ready\` parameter in get meeting response. name: Transcriptions - description: Smart Categories can help organize your meeting notes into logical groupings, making it effortless to navigate and extract specific information from large volumes of conversational data. name: Smart Category - description: '\`Templates\` help in extraction of AI-generated notes based on mentioned categories. A template will be automatically inserted into the meeting notes page, if the \`meeting type\` is set and has a template associated with a \`meeting type\`.' name: Templates - description: 'Avoma''s AI takes notes so that you can focus on engaging in the conversation. These notes are intelligently categorised using Avoma''s Smart Categories feature, which employs natural language processing and machine learning to identify and label key themes, action items, decisions, and other pertinent topics discussed during the meeting. AI Notes are generated and available once the meeting recording and transcription are processed. Availability of ai notes can be verified using \`notes\_ready\` parameter in get meeting response.' name: Notes - description: Avoma's meeting sentiment feature is a powerful tool designed to provide end users with a deeper understanding of the emotional tone and dynamics within their meetings. By analyzing the content of conversations, vocal nuances, and contextual cues, Avoma's AI can accurately determine the overall sentiment of the meeting, whether it's positive, negative, or neutral. name: Meetings Sentiments - name: Users - name: Calls - description: '\*\*Deprecated\*\*: The "Custom Category" feature is deprecated and will be removed in future versions. We recommend using the "Smart Category" feature instead.' name: Custom Category - name: Scorecards - name: Scorecard Evaluations - description: "\*\*Webhooks\*\*\\n\\nAvoma Webhooks notify users about the successful occurrence\\ \\ of events within the Avoma application. Instead of polling or calling APIs to\\ \\ detect events, Avoma sends webhook events as HTTP POST requests, with a JSON\\ \\ payload, to your specified endpoint URL.\\n\\n\*\*Subscribing to Webhooks\*\*\\n\\n\\ To subscribe to webhooks, please reach out to Avoma support and provide a public\\ \\ HTTPS endpoint URL. The URL must be secure (HTTPS). Your endpoint should respond\\ \\ with an HTTP \*\*200\*\* status code to acknowledge receipt of the webhook data.\\ \\ If no response or an error is returned, Avoma will retry the connection up to\\ \\ five times within 24 hours. To avoid retries and errors, always acknowledge\\ \\ the receipt of webhooks by responding with HTTP \*\*200\*\*.\\n\\nIf persistent non-success\\ \\ responses are received more than five times in the last 24 hours, Avoma will\\ \\ unsubscribe your webhooks.\\n\\n\*\*Supported Event Types\*\*\\n\\nCurrently, Avoma\\ \\ supports the following event types:\\n\\n- \*\*AINOTE\*\*: Emitted when notes are\\ \\ successfully generated for meetings or calls.\\n- \*\*MEETING\_BOOKED\_VIA\_SCHEDULER\*\*:\\ \\ Emitted when a meeting is booked via one of your Avoma scheduling pages.\\n-\\ \\ \*\*MEETING\_BOOKED\_VIA\_SCHEDULER\_RESCHEDULED\*\*: Emitted when a scheduled meeting\\ \\ is rescheduled.\\n- \*\*MEETING\_BOOKED\_VIA\_SCHEDULER\_CANCELED\*\*: Emitted when a\\ \\ meeting booked via the scheduling page is canceled.\\n\\n\*\*Verify Webhooks (Optional)\*\*\\n\\ \\nYou can optionally verify the authenticity of webhooks by checking the digital\\ \\ signature to ensure they came from Avoma. Each webhook includes an \`X-Avoma-Signature\`\\ \\ header with a signature that you can use to verify the webhook.\\n\\nTo verify\\ \\ the signature:\\n\\n1. Retrieve the payload from the received webhook event.\\n\\ 2. Obtain your Avoma API secret key (provided when you requested API/Webhooks\\ \\ access).\\n3. Compute the HMAC using the payload and your secret key, using the\\ \\ SHA256 digest algorithm.\\n4. Convert the result to a hexadecimal format.\\n5.\\ \\ Compare the computed value to the value in the \`X-Avoma-Signature\` header. If\\ \\ they match, the webhook is from Avoma.\\n\\n\*\*Sample Code for Webhook Verification\*\*\\n\\ \\n\*Node.js:\*\\n\\n\`\`\`javascript\\nconst crypto = require('crypto');\\nconst message\\ \\ = \`${JSON.stringify(request.body)}\`;\\nconst hashForVerify = crypto.createHmac('sha256',\\ \\ AVOMA\_API\_KEY).update(message).digest('hex');\\nconst signature = \`${hashForVerify}\`;\\n\\ \\nif (request.headers\['x-avoma-signature'\] === signature) {\\n // Webhook request\\ \\ came from Avoma\\n} else {\\n // Webhook request did not come from Avoma\\n}\\n\\ \`\`\`\\n\\n\*Python:\*\\n\\n\`\`\`python\\nimport hashlib\\nimport hmac\\nimport json\\n\\nrequest\\ \\ = \\"YOUR WEBHOOK REQUEST\\"\\nsecret\_key = \\"YOUR\_SECRET\_KEY\\"\\nbody\_unicode =\\ \\ request.body.decode(\\"utf-8\\")\\n\\nh = hmac.new(secret\_key.encode('utf-8'), body\_unicode.encode('utf-8'),\\ \\ hashlib.sha256)\\n\\n# Compare the computed signature with the signature from\\ \\ the request\\n\\nlowercase\_headers = {key.lower(): value for key, value in request.headers.items()}\\n\\ \\nwebhook\_signature = lowercase\_headers.get('x-avoma-signature')\\n\\nif webhook\_signature\\ \\ != h.hexdigest():\\n print(\\"Webhook signature does not match\\")\\n\`\`\`\\n" name: Webhooks ---