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 <YOUR API KEY> ```


    ## 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 Usage Guidelines
    
    To ensure reliable performance and availability for all API consumers, requests are subject to a 60-second execution timeout.

    The amount of data returned by a query can vary significantly between accounts. As a result, requests that retrieve large volumes of data may exceed the timeout limit and fail, even when querying relatively short date ranges.

    When designing integrations, consider both the date range and the expected volume of data returned by the request. For example, a request spanning several years is likely to process a large volume of data. However, even a relatively small date range may result in excessive processing if the underlying dataset contains a large number of records.

    #### Best Practices
    - Request only the data required for your use case.
    - Avoid querying large date ranges when the endpoint is expected to return high volumes of data.
    - Use pagination where supported to process large result sets incrementally.
    - For historical backfills, retrieve data in smaller batches and aggregate results client-side.
    - Cache previously retrieved data and fetch only newly created or updated records during subsequent synchronizations.
    - Implement retry logic and checkpointing so long-running syncs can resume from the last successful point.

    #### Examples
    **Recommended: Incremental synchronization**  
    `GET /v1/meetings?from_date=2025-06-01&to_date=2025-06-07`  
    Store the results and periodically request only newly available data.

    **Recommended: Historical backfill in batches**  
    `GET /v1/meetings?from_date=2025-01-01&to_date=2025-01-31`    
    `GET /v1/meetings?from_date=2025-02-01&to_date=2025-02-28`  
    `GET /v1/meetings?from_date=2025-03-01&to_date=2025-03-31`  
    Process historical data incrementally rather than requesting an extended time period in a single call.

    **Recommended: Reduce date range before deep pagination**  
    If a query returns a very large number of pages, reduce the date range and issue multiple smaller queries instead.

    For example, prefer:

    `GET /v1/meetings?from_date=2025-01-01&to_date=2025-01-31`  
    `GET /v1/meetings?from_date=2025-02-01&to_date=2025-02-28`  

    over retrieving a full year of data and paging through a large result set:  

    `GET /v1/meetings?from_date=2025-01-01&to_date=2025-12-31&page=87`  

    As a general guideline, if a query requires navigating through a large number of pages (for example, dozens of pages or more), consider reducing the date range and retrieving the data in smaller batches.
    
    **Not Recommended**  
    `GET /v1/meetings?from_date=2019-01-01&to_date=2025-12-31`    
    Requests spanning long time periods can result in very large datasets and are more likely to exceed execution limits.

    There is no universally safe date range that applies to all workspaces. If requests time out, reduce the date range and retrieve data in smaller batches. Integrations should be designed to adapt query sizes based on the volume of data being returned rather than relying on fixed date ranges alone.
  
  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
                            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
                            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:
                                  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
                                  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
                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
                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:
                      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
                      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
                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
                  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:
                      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
                      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
                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
                  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:
                      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
                      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
                  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
                  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:
                        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
                        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
                  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
                  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:
                        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
                        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.
            <br>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_associations:
                              description: CRM association objects
                              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
                              items:
                                properties:
                                  crm_obj_id:
                                    description: Unique identifier for the CRM object
                                    type: string
                                  crm_obj_type:
                                    description: Type of CRM object
                                    type: string
                                required:
                                  - crm_obj_id
                                  - crm_obj_type
                                type: object
                              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
                                - not_started
                                - no_transcript
                                - 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
                            recording_state:
                              type: string
                              enum:
                                - enabled
                                - disabled
                              nullable: true
                              description: >
                                Recording state of the meeting:

                                - `enabled`: Recording is enabled for the meeting.

                                - `disabled`: Recording is disabled for the meeting.

                                - `null`: No recording state information available.
                            disable_reason:
                              $ref: "../openapi/components/external.yml#/components/schemas/disable_reason"
                            disabled_reason_detail:
                              $ref: "../openapi/components/external.yml#/components/schemas/disabled_reason_detail"
                            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.

                                - `not_recorded`: Meeting was not recorded due to disablement or recording issues.

                                - 'cancelled': Meeting is cancelled or deleted from
                                Calendar.

                                "
                              enum:
                                - scheduled
                                - in_progress
                                - completed
                                - not_recorded
                                - 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_associations:
                    description: CRM association objects
                    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
                    items:
                      properties:
                        crm_obj_id:
                          description: Unique identifier for the CRM object
                          type: string
                        crm_obj_type:
                          description: Type of CRM object
                          type: string
                      required:
                        - crm_obj_id
                        - crm_obj_type
                      type: object
                    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
                      - not_started  
                      - no_transcript
                      - 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
                  recording_state:
                    type: string
                    enum:
                      - enabled
                      - disabled
                    nullable: true
                    description: >
                      Recording state of the meeting:

                      - `enabled`: Recording is enabled for the meeting.

                      - `disabled`: Recording is disabled for the meeting.

                      - `null`: No recording state information available.
                  disable_reason:
                    $ref: "../openapi/components/external.yml#/components/schemas/disable_reason"
                  disabled_reason_detail:
                    $ref: "../openapi/components/external.yml#/components/schemas/disabled_reason_detail"
                  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.

                      - `not_recorded`: Meeting was not recorded due to disablement or recording issues.  
 
                      - 'cancelled': Meeting is cancelled or deleted from Calendar.  

                      "
                    enum:
                      - scheduled
                      - in_progress
                      - completed
                      - not_recorded  
                      - 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=<field>` 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
              examples:
                markdown:
                  $ref: "./openapi/components/external.yml#/components/examples/notes_markdown_example"
                json:
                  $ref: "./openapi/components/external.yml#/components/examples/notes_json_example"
                html:
                  $ref: "./openapi/components/external.yml#/components/examples/notes_html_example"
          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 snippet
                      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 snippet
                        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 snippet
                      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 snippet
                        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",
                        "snippet_notes_title": true, "block_key": "snippet_category_referral_source"}},
                        {"type": "header-2", "children": [{"text": "Action Items"}],
                        "data": {"block_created": "2023-11-28 07:58:47.643488", "snippet_notes_title":
                        true, "block_key": "snippet_category_action_item"}}, {"type":
                        "header-2", "children": [{"text": "Background"}], "data":
                        {"block_created": "2023-11-28 07:58:47.644071", "snippet_notes_title":
                        true, "block_key": "snippet_category_background"}}, {"type":
                        "header-2", "children": [{"text": "Pain Point"}], "data":
                        {"block_created": "2023-11-28 07:58:47.644757", "snippet_notes_title":
                        true, "block_key": "snippet_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",
                      "snippet_notes_title": true, "block_key": "snippet_category_referral_source"}},
                      {"type": "header-2", "children": [{"text": "Action Items"}],
                      "data": {"block_created": "2023-11-28 07:58:47.643488", "snippet_notes_title":
                      true, "block_key": "snippet_category_action_item"}}, {"type":
                      "header-2", "children": [{"text": "Background"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644071", "snippet_notes_title": true,
                      "block_key": "snippet_category_background"}}, {"type": "header-2",
                      "children": [{"text": "Pain Point"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644757", "snippet_notes_title": true,
                      "block_key": "snippet_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",
                      "snippet_notes_title": true, "block_key": "snippet_category_referral_source"}},
                      {"type": "header-2", "children": [{"text": "Action Items"}],
                      "data": {"block_created": "2023-11-28 07:58:47.643488", "snippet_notes_title":
                      true, "block_key": "snippet_category_action_item"}}, {"type":
                      "header-2", "children": [{"text": "Background"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644071", "snippet_notes_title": true,
                      "block_key": "snippet_category_background"}}, {"type": "header-2",
                      "children": [{"text": "Pain Point"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644757", "snippet_notes_title": true,
                      "block_key": "snippet_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",
                      "snippet_notes_title": true, "block_key": "snippet_category_referral_source"}},
                      {"type": "header-2", "children": [{"text": "Action Items"}],
                      "data": {"block_created": "2023-11-28 07:58:47.643488", "snippet_notes_title":
                      true, "block_key": "snippet_category_action_item"}}, {"type":
                      "header-2", "children": [{"text": "Background"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644071", "snippet_notes_title": true,
                      "block_key": "snippet_category_background"}}, {"type": "header-2",
                      "children": [{"text": "Pain Point"}], "data": {"block_created":
                      "2023-11-28 07:58:47.644757", "snippet_notes_title": true,
                      "block_key": "snippet_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.
            <br>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/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"
  /v1/snippets/:
    get:
      summary: List Meeting Snippets
      description: >
        Returns snippets (highlights) for meetings. Snippets are AI-generated or user-created highlights
        from meeting recordings with timestamps, titles, and descriptions.


        **Query Modes:**

        - **Single Meeting Query**: Provide `meeting_uuid` to get all snippets for a specific meeting. Date filters are optional.

        - **Organization-wide Query**: Omit `meeting_uuid` to get snippets across all meetings. Requires `from_date` and `to_date` (max 180-day range).
      tags:
        - Snippets
      parameters:
        - name: meeting_uuid
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >
            Unique ID of the meeting for which snippets will be fetched. Either `meeting_uuid` or both `from_date` and `to_date` must be provided.
        - name: from_date
          in: query
          required: false
          schema:
            type: string
            format: "date-time"
          description: >
            To retrieve snippets for meetings started at or after given date-time(UTC). **Required when `meeting_uuid` is not provided**.
            When querying without `meeting_uuid`, the date range cannot exceed 180 days. Must be provided together with `to_date`.
        - name: to_date
          in: query
          required: false
          schema:
            type: string
            format: "date-time"
          description: >
            To retrieve snippets for meetings started at or before given date-time(UTC). **Required when `meeting_uuid` is not provided**.
            When querying without `meeting_uuid`, the date range cannot exceed 180 days. Must be provided together with `from_date`.
        - name: is_ai_generated
          in: query
          required: false
          schema:
            type: boolean
          description: >
            Filter snippets by source:

            - `true`: Get only AI-generated snippets.

            - `false`: Get only user-created snippets.

            - Omit to get all snippets regardless of source.
        - name: page
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: Page number for pagination.
        - name: page_size
          in: query
          schema:
            type: integer
            default: 10
            maximum: 100
            nullable: false
          description: Number of records returned per response.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "../openapi/components/external.yml#/components/schemas/pagination_data"
                  - type: object
                    required:
                      - results
                    properties:
                      results:
                        type: array
                        description: Actual response.
                        items:
                          $ref: "../openapi/components/external.yml#/components/schemas/external_snippet"
        "400":
          description: Invalid query params
          content:
            application/json:
              schema:
                $ref: "../openapi/components/external.yml#/components/schemas/bad_request_body"
              examples:
                missing_params:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_missing_params"
                missing_dates:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_missing_from_date"
                missing_to_date:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_missing_to_date"
                invalid_date_format:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_invalid_date_format"
                invalid_date_order:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_invalid_date_order"
                date_range_too_large:
                  $ref: "../openapi/components/external.yml#/components/examples/snippet_date_range_too_large"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "../openapi/components/external.yml#/components/schemas/http_error_response"
  v1/revenue_intel/timeline/:
    get:
      summary: Get aggregated timeline engagement metrics
      description: >
        Returns time series data showing engagement patterns over time including:
        - Rep meeting/call time and counts
        - Customer meeting/call time
        - Email counts (sent by reps and customers)

        All data is aggregated by the specified date_interval for the specified CRM entity type.
      tags:
        - Revenue Intelligence [Beta]
      parameters:
        - name: object_type
          in: query
          required: true
          schema:
            type: string
            enum: [opportunity, account, contact, lead]
          description: Type of CRM entity to query
        - name: crm_entity_id
          in: query
          schema:
            type: string
          description: External ID of the specific CRM entity to filter by (e.g., Salesforce Opportunity ID)
        - name: start_at
          in: query
          required: true
          schema:
            type: string
            format: date-time
          description: Start date for timeline data (ISO 8601 format, e.g., 2024-01-01T00:00:00Z)
        - name: end_at
          in: query
          schema:
            type: string
            format: date-time
          description: End date for timeline data (defaults to current time if not provided)
        - name: date_interval
          in: query
          schema:
            type: string
            enum: [day, week, month]
            default: day
          description: Time interval for data aggregation
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_rep_time_meeting:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Time series of rep meeting time (non-calls)
                  time_series_rep_meetings_not_recorded:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Count of unrecorded rep meetings
                  time_series_rep_all_meetings_count:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Total count of rep meetings
                  total_rep_time_call:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Time series of rep call time
                  time_series_rep_calls_not_recorded:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Count of unrecorded rep calls
                  time_series_rep_all_calls_count:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Total count of rep calls
                  total_customer_time_meeting:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Time series of customer meeting time
                  total_customer_time_call:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Time series of customer call time
                  total_customer_email_sent:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Count of emails sent by customers
                  total_rep_email_sent:
                    type: array
                    items:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            format: date-time
                          - type: number
                    description: Count of emails sent by reps
        "400":
          description: Bad Request - Missing or invalid parameters
          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/revenue_intel/timeline_details/:
    get:
      summary: Get detailed engagement records with pagination
      description: >
        Returns individual meeting, call, or email records based on the 'type' parameter.
        Supports filtering by email participant and host (rep/customer).
        Results are paginated.
      tags:
        - Revenue Intelligence [Beta]
      parameters:
        - name: object_type
          in: query
          required: true
          schema:
            type: string
            enum: [opportunity, account, contact, lead]
          description: Type of CRM entity to query
        - name: crm_entity_id
          in: query
          schema:
            type: string
          description: External ID of the specific CRM entity to filter by
        - name: start_at
          in: query
          required: true
          schema:
            type: string
            format: date-time
          description: Start date for timeline data
        - name: end_at
          in: query
          schema:
            type: string
            format: date-time
          description: End date for timeline data (defaults to current time)
        - name: type
          in: query
          required: true
          schema:
            type: string
            enum: [meeting, call, email]
          description: Type of engagement to retrieve
        - name: email
          in: query
          schema:
            type: string
            format: email
          description: Filter by specific participant email address
        - name: host
          in: query
          schema:
            type: string
            enum: [rep, customer]
          description: Filter by engagement host (rep or customer initiated)
        - 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 records per page
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of records
                  next:
                    type: string
                    nullable: true
                    description: URL for next page
                  previous:
                    type: string
                    nullable: true
                    description: URL for previous page
                  total_duration:
                    type: number
                    description: Total duration of all recordings in seconds
                  results:
                    type: array
                    items:
                      type: object
                    description: Array of engagement records (format varies by object_type)
        "400":
          description: Bad Request - Missing or invalid parameters
          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/webhooks/:
    get:
      description: 'Returns all active webhook subscriptions for the organization.

        '
      operationId: listWebhooks
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: Total number of subscriptions.
                    type: integer
                  results:
                    items:
                      description: A webhook subscription registered for the organization.
                      properties:
                        event_type:
                          description: The event type this subscription fires on.
                          enum:
                          - AINOTE
                          - MEETING_BOOKED_VIA_SCHEDULER
                          - MEETING_BOOKED_VIA_SCHEDULER_CANCELED
                          - MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED
                          - new_conversation
                          type: string
                        is_active:
                          description: Whether the subscription is currently active.
                          readOnly: true
                          type: boolean
                        target_type:
                          description: 'Subscription target. `2` = Organization webhook
                            (use this for direct API-key integrations). `1` = Zapier.

                            '
                          enum:
                          - 1
                          - 2
                          type: integer
                        target_url:
                          description: HTTPS URL that Avoma will POST the event payload
                            to.
                          format: uri
                          type: string
                        uuid:
                          description: Unique identifier of the subscription.
                          format: uuid
                          readOnly: true
                          type: string
                      required:
                      - event_type
                      - target_url
                      - uuid
                      - is_active
                      type: object
                    type: array
                type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: List Webhook Subscriptions
      tags:
      - Webhooks
    post:
      description: "Subscribe to an Avoma event. When the event fires, Avoma will\
        \ POST the event payload to your `target_url` over HTTPS.\n\n**Supported `event_type`\
        \ values**\n\n**`target_type: 2` \u2014 Organization webhooks**\n\n| `event_type`\
        \ | Fires when |\n|---|---|\n| `AINOTE` | AI notes are ready for a meeting\
        \ \u2014 this is the primary event for post-meeting data (transcript, notes,\
        \ action items, insights). |\n| `MEETING_BOOKED_VIA_SCHEDULER` | A meeting\
        \ was booked through an Avoma scheduling page. |\n| `MEETING_BOOKED_VIA_SCHEDULER_CANCELED`\
        \ | A scheduler-booked meeting was cancelled. |\n| `MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED`\
        \ | A scheduler-booked meeting was rescheduled. |\n\n**`target_type: 1` \u2014\
        \ Zapier webhooks (requires Zapier integration feature)**\n\n| `event_type`\
        \ | Fires when |\n|---|---|\n| `new_conversation` | AI notes are ready for\
        \ a meeting. |\n\n**Signature verification**\n\nWhen a signing secret is configured\
        \ for your organization, every delivery includes an `X-Avoma-Signature` header\
        \ containing an HMAC-SHA256 hex digest of the raw request body, keyed with\
        \ your signing secret. Verify it to ensure the request originated from Avoma:\n\
        \n```python\nimport hashlib, hmac\nexpected = hmac.new(signing_secret.encode(),\
        \ raw_body, hashlib.sha256).hexdigest()\nassert hmac.compare_digest(expected,\
        \ request.headers[\"X-Avoma-Signature\"])\n```\n\nManage your signing secret\
        \ via the API (`GET/PATCH/DELETE /v1/webhooks/signing-secret/`) or generate\
        \ a new random one (`POST /v1/webhooks/signing-secret/rotate/`).\n\n**Retry\
        \ policy**\n\nFailed deliveries (non-2xx response or timeout) are retried\
        \ up to **5 times** with increasing delays: 5 min \u2192 30 min \u2192 2 h\
        \ \u2192 12 h \u2192 24 h. After 5 consecutive failures the subscription is\
        \ automatically deactivated.\n\n**Rate limits / SLAs**\n\nThere are no per-subscription\
        \ rate limits. Webhook delivery is best-effort.\n\n**Team filtering**\n\n\
        When `target_type` is `2`, you may pass a list of team UUIDs in `teams` to\
        \ limit delivery to meetings whose attributed user belongs to one of those\
        \ teams. Omit `teams` (or pass an empty list) to receive all meetings in the\
        \ organization.\n"
      operationId: createWebhook
      requestBody:
        content:
          application/json:
            examples:
              ainote:
                summary: Subscribe to AI Notes events (org webhook)
                value:
                  event_type: AINOTE
                  target_type: 2
                  target_url: https://example.com/webhooks/avoma
              scheduler_booking:
                summary: Subscribe to scheduler booking events (org webhook)
                value:
                  event_type: MEETING_BOOKED_VIA_SCHEDULER
                  target_type: 2
                  target_url: https://example.com/webhooks/avoma
              zapier_new_conversation:
                summary: Subscribe to new conversation events (Zapier)
                value:
                  event_type: new_conversation
                  target_type: 1
                  target_url: https://hooks.zapier.com/hooks/catch/example
            schema:
              description: Request body for creating a webhook subscription.
              properties:
                event_type:
                  description: 'The event to subscribe to. See `POST /v1/webhooks/`
                    for the full list and descriptions of each event type per `target_type`.

                    '
                  enum:
                  - AINOTE
                  - MEETING_BOOKED_VIA_SCHEDULER
                  - MEETING_BOOKED_VIA_SCHEDULER_CANCELED
                  - MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED
                  - new_conversation
                  type: string
                target_type:
                  default: 2
                  description: '`2` for direct organization webhooks. `1` for Zapier-managed
                    webhooks (requires Zapier integration feature).

                    '
                  enum:
                  - 1
                  - 2
                  type: integer
                target_url:
                  description: 'HTTPS URL that Avoma will POST the event payload to.
                    Must use the `https://` scheme.

                    '
                  format: uri
                  type: string
                teams:
                  description: 'Optional list of team UUIDs. When provided, the webhook
                    only fires for meetings whose attributed user belongs to one of
                    these teams. Only applicable when `target_type` is `2`. Omit or
                    pass an empty list to receive events for all meetings in the organization.

                    '
                  items:
                    format: uuid
                    type: string
                  type: array
              required:
              - event_type
              - target_url
              type: object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                description: A webhook subscription registered for the organization.
                properties:
                  event_type:
                    description: The event type this subscription fires on.
                    enum:
                    - AINOTE
                    - MEETING_BOOKED_VIA_SCHEDULER
                    - MEETING_BOOKED_VIA_SCHEDULER_CANCELED
                    - MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED
                    - new_conversation
                    type: string
                  is_active:
                    description: Whether the subscription is currently active.
                    readOnly: true
                    type: boolean
                  target_type:
                    description: 'Subscription target. `2` = Organization webhook
                      (use this for direct API-key integrations). `1` = Zapier.

                      '
                    enum:
                    - 1
                    - 2
                    type: integer
                  target_url:
                    description: HTTPS URL that Avoma will POST the event payload
                      to.
                    format: uri
                    type: string
                  uuid:
                    description: Unique identifier of the subscription.
                    format: uuid
                    readOnly: true
                    type: string
                required:
                - event_type
                - target_url
                - uuid
                - is_active
                type: object
          description: Created
        '400':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: "Bad Request \u2014 invalid event_type, non-HTTPS URL, or feature\
            \ not enabled."
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: Create Webhook Subscription
      tags:
      - Webhooks
  /v1/webhooks/ainote/:
    post:
      description: "**Outbound webhook payload** \u2014 Avoma POSTs this to your registered\
        \ `target_url` when AI notes are ready for a meeting or call. This is the\
        \ shape of the body your endpoint will receive; you do not call this path\
        \ directly.\n"
      operationId: webhookEventAinote
      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: '<h2>Participants</h2><ul><li><p>Avoma: John Doe</p></li></ul>'
                  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
                call_details:
                  description: Call metadata for voice call meetings. Null for video
                    meetings.
                  nullable: true
                  properties:
                    call_direction:
                      description: Direction of the call.
                      enum:
                      - inbound
                      - outbound
                      type: string
                    external_id:
                      description: External ID of the call in the dialer system.
                      type: string
                    external_ph_no:
                      description: Lead/prospect phone number.
                      nullable: true
                      type: string
                    frm:
                      description: Caller phone number.
                      type: string
                    to:
                      description: Callee phone number.
                      type: string
                  type: object
                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_label:
                  description: Human-readable label for the event type.
                  nullable: true
                  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
                outcome:
                  description: The outcome of the meeting.
                  nullable: true
                  properties:
                    label:
                      type: string
                    uuid:
                      format: uuid
                      type: string
                  type: object
                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.
                  nullable: true
                  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: 'Your endpoint should return any 2xx status to acknowledge
            receipt. Non-2xx responses trigger the retry policy.

            '
      summary: 'Event payload: AINOTE'
      tags:
      - Webhooks
  /v1/webhooks/meeting_booked_via_scheduler/:
    post:
      description: "**Outbound webhook payload** \u2014 Avoma POSTs this to your registered\
        \ `target_url` when a meeting is booked through one of your Avoma scheduling\
        \ pages. This is the shape of the body your endpoint will receive; you do\
        \ not call this path directly.\n"
      operationId: webhookEventMeetingBookedViaScheduler
      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_label:
                  description: Human-readable label for the event type.
                  nullable: true
                  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: 'Your endpoint should return any 2xx status to acknowledge
            receipt. Non-2xx responses trigger the retry policy.

            '
      summary: 'Event payload: MEETING_BOOKED_VIA_SCHEDULER'
      tags:
      - Webhooks
  /v1/webhooks/meeting_booked_via_scheduler_canceled/:
    post:
      description: "**Outbound webhook payload** \u2014 Avoma POSTs this to your registered\
        \ `target_url` when a scheduler-booked meeting is canceled. This is the shape\
        \ of the body your endpoint will receive; you do not call this path directly.\n"
      operationId: webhookEventMeetingBookedViaSchedulerCanceled
      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_label:
                  description: Human-readable label for the event type.
                  nullable: true
                  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: 'Your endpoint should return any 2xx status to acknowledge
            receipt. Non-2xx responses trigger the retry policy.

            '
      summary: 'Event payload: MEETING_BOOKED_VIA_SCHEDULER_CANCELED'
      tags:
      - Webhooks
  /v1/webhooks/meeting_booked_via_scheduler_rescheduled/:
    post:
      description: "**Outbound webhook payload** \u2014 Avoma POSTs this to your registered\
        \ `target_url` when a scheduler-booked meeting is rescheduled. This is the\
        \ shape of the body your endpoint will receive; you do not call this path\
        \ directly.\n"
      operationId: webhookEventMeetingBookedViaSchedulerRescheduled
      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_label:
                  description: Human-readable label for the event type.
                  nullable: true
                  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: 'Your endpoint should return any 2xx status to acknowledge
            receipt. Non-2xx responses trigger the retry policy.

            '
      summary: 'Event payload: MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED'
      tags:
      - Webhooks
  /v1/webhooks/new_conversation/:
    post:
      description: "**Outbound webhook payload** \u2014 Avoma POSTs this to your Zapier\
        \ webhook URL when AI notes are ready for a meeting or call. This is the shape\
        \ of the body your Zap trigger will receive; you do not call this path directly.\n"
      operationId: webhookEventNewConversation
      requestBody:
        content:
          application/json:
            schema:
              description: 'Payload delivered by Avoma to a Zapier webhook when AI
                notes are ready for a meeting (event_type: new_conversation). Extends
                the base meeting payload with Zapier-specific call fields and a plain-text
                transcription.

                '
              properties:
                action_items:
                  description: Action items extracted from the meeting.
                  items:
                    properties:
                      action_item:
                        type: string
                      company:
                        type: string
                      email:
                        format: email
                        type: string
                      name:
                        type: string
                    type: object
                  type: array
                ai_notes:
                  description: AI-generated notes in HTML format.
                  nullable: true
                  type: string
                ai_notes_txt:
                  description: AI-generated notes in markdown/text format.
                  nullable: true
                  type: string
                attendees:
                  description: The attendees of the meeting.
                  items:
                    properties:
                      email:
                        format: email
                        type: string
                      name:
                        type: string
                      response_status:
                        type: string
                      uuid:
                        format: uuid
                        type: string
                    type: object
                  type: array
                audio_ready:
                  description: True if audio is ready.
                  type: boolean
                audio_url:
                  description: Signed URL of the meeting audio.
                  format: uri
                  nullable: true
                  type: string
                call_direction:
                  description: Direction of the call.
                  enum:
                  - inbound
                  - outbound
                  nullable: true
                  type: string
                call_external_ph_no:
                  description: Lead/prospect phone number (voice calls only).
                  nullable: true
                  type: string
                call_frm:
                  description: Caller phone number (voice calls only).
                  nullable: true
                  type: string
                call_to:
                  description: Callee phone number (voice calls only).
                  nullable: true
                  type: string
                created:
                  description: The creation date-time (UTC).
                  format: date-time
                  type: string
                duration:
                  description: Recording duration in seconds.
                  format: float
                  type: number
                end_at:
                  description: The end time of the meeting.
                  format: date-time
                  type: string
                event_label:
                  description: Human-readable label for the event type.
                  nullable: true
                  type: string
                event_type:
                  description: The Zapier event type.
                  enum:
                  - new_conversation
                  type: string
                is_call:
                  description: True if the meeting is a voice call.
                  type: boolean
                is_internal:
                  description: True if all attendees belong to the same organization.
                  type: boolean
                meeting_url:
                  description: Direct URL to the meeting in the Avoma platform.
                  format: uri
                  nullable: true
                  type: string
                modified:
                  description: Last modification date-time (UTC).
                  format: date-time
                  type: string
                notes_ready:
                  description: True if AI notes are ready.
                  type: boolean
                organizer_email:
                  description: The email of the meeting organizer.
                  format: email
                  type: string
                organizer_name:
                  description: The name of the meeting organizer.
                  type: string
                outcome:
                  description: The outcome of the meeting.
                  nullable: true
                  properties:
                    label:
                      type: string
                    uuid:
                      format: uuid
                      type: string
                  type: object
                privacy:
                  description: The privacy setting of the meeting.
                  enum:
                  - private
                  - organization
                  type: string
                processing_status:
                  description: The current processing status of the meeting.
                  type: string
                purpose:
                  description: The purpose of the meeting.
                  nullable: true
                  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: True if transcript is ready.
                  type: boolean
                transcription_text:
                  description: Plain text of the meeting transcription extracted from
                    the VTT file. Null if transcription is unavailable.
                  nullable: true
                  type: string
                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: True if video is ready.
                  type: boolean
                video_url:
                  description: Signed URL of the meeting video.
                  format: uri
                  nullable: true
                  type: string
              type: object
      responses:
        '200':
          description: 'Your endpoint should return any 2xx status to acknowledge
            receipt. Non-2xx responses trigger the retry policy.

            '
      summary: 'Event payload: new_conversation (Zapier)'
      tags:
      - Webhooks
  /v1/webhooks/signing-secret/:
    delete:
      description: 'Removes the signing secret. After this call, outbound deliveries
        will no longer include an `X-Avoma-Signature` header.

        '
      operationId: clearWebhookSigningSecret
      responses:
        '204':
          description: Secret cleared.
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: Clear Webhook Signing Secret
      tags:
      - Webhooks
    get:
      description: 'Returns the current signing secret for your organization''s webhooks.
        The secret is used to generate the `X-Avoma-Signature` header on outbound
        webhook deliveries. If no secret is configured, an empty string is returned
        and deliveries will not include the signature header.

        '
      operationId: getWebhookSigningSecret
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  signing_secret:
                    description: 'HMAC signing secret used to sign outbound webhook
                      payloads. An empty string means no secret is configured and
                      deliveries will not include the `X-Avoma-Signature` header.

                      '
                    example: a3f8e1c0d2b4...
                    type: string
                required:
                - signing_secret
                type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: Get Webhook Signing Secret
      tags:
      - Webhooks
    patch:
      description: 'Set a custom signing secret for your organization''s webhooks.
        After this call, all outbound deliveries will include an `X-Avoma-Signature`
        HMAC-SHA256 header computed from this secret.

        '
      operationId: setWebhookSigningSecret
      requestBody:
        content:
          application/json:
            schema:
              properties:
                signing_secret:
                  description: 'HMAC signing secret used to sign outbound webhook
                    payloads. An empty string means no secret is configured and deliveries
                    will not include the `X-Avoma-Signature` header.

                    '
                  example: a3f8e1c0d2b4...
                  type: string
              required:
              - signing_secret
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  signing_secret:
                    description: 'HMAC signing secret used to sign outbound webhook
                      payloads. An empty string means no secret is configured and
                      deliveries will not include the `X-Avoma-Signature` header.

                      '
                    example: a3f8e1c0d2b4...
                    type: string
                required:
                - signing_secret
                type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: Set Webhook Signing Secret
      tags:
      - Webhooks
  /v1/webhooks/signing-secret/rotate/:
    post:
      description: "Generates a new cryptographically random 64-character hex signing\
        \ secret, replacing any existing one. Use this to rotate your secret without\
        \ downtime \u2014 update your receiver first, then rotate.\n"
      operationId: rotateWebhookSigningSecret
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  signing_secret:
                    description: 'HMAC signing secret used to sign outbound webhook
                      payloads. An empty string means no secret is configured and
                      deliveries will not include the `X-Avoma-Signature` header.

                      '
                    example: a3f8e1c0d2b4...
                    type: string
                required:
                - signing_secret
                type: object
          description: New secret generated.
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
      summary: Rotate Webhook Signing Secret
      tags:
      - Webhooks
  /v1/webhooks/{uuid}/:
    delete:
      description: "Deactivates a webhook subscription. No further events will be\
        \ delivered to the associated `target_url`. The subscription is soft-deleted\
        \ (`is_active` set to `false`) \u2014 it is not permanently removed.\n"
      operationId: deleteWebhook
      parameters:
      - description: UUID of the webhook subscription to deactivate.
        in: path
        name: uuid
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '204':
          description: "No Content \u2014 subscription deactivated."
        '401':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                properties:
                  detail:
                    description: Error details
                    example: Not Found
                    type: string
                required:
                - detail
                type: object
          description: Not Found
      summary: Delete (Deactivate) Webhook Subscription
      tags:
      - Webhooks
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\n| `event_type`\
      \ | Fires when |\n|---|---|\n| `AINOTE` | AI notes are ready for a meeting or\
      \ call. |\n| `MEETING_BOOKED_VIA_SCHEDULER` | A meeting is booked via an Avoma\
      \ scheduling page. |\n| `MEETING_BOOKED_VIA_SCHEDULER_RESCHEDULED` | A scheduler-booked\
      \ meeting is rescheduled. |\n| `MEETING_BOOKED_VIA_SCHEDULER_CANCELED` | A scheduler-booked\
      \ meeting is canceled. |\n| `new_conversation` | AI notes ready (Zapier only).\
      \ |\n\n**Retry policy**\n\nFailed deliveries (non-2xx or timeout) are retried\
      \ up to 5 times with\nincreasing delays: 5 min \u2192 30 min \u2192 2 h \u2192\
      \ 12 h \u2192 24 h. After 5 consecutive\nfailures the subscription is automatically\
      \ deactivated.\n\n**Signature verification**\n\nWhen a signing secret is configured,\
      \ every delivery includes an\n`X-Avoma-Signature` header \u2014 an HMAC-SHA256\
      \ hex digest of the raw request\nbody.\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. Manage your signing secret via `GET/PATCH/DELETE\
      \ /v1/webhooks/signing-secret/`\nor rotate it via `POST /v1/webhooks/signing-secret/rotate/`.\n\
      "
    name: Webhooks
