Bandwidth Conferences API

Create and manage multi-party conference calls. Supports adding and removing members, muting, holding, and playing audio to conferences.

OpenAPI Specification

bandwidth-conferences-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bandwidth Emergency Calling Available Numbers Conferences API
  description: The Bandwidth Emergency Calling API provides programmatic access to provision and manage 911 endpoints and locations for emergency services routing. It supports Dynamic Location Routing (DLR) for real-time address validation and location updates, ensuring compliance with Kari's Law and RAY BAUM's Act requirements. Bandwidth is the only CPaaS provider that also operates its own emergency services network, providing direct connectivity to public safety answering points (PSAPs) across the United States and Canada.
  version: '1.0'
  contact:
    name: Bandwidth Support
    url: https://support.bandwidth.com
  termsOfService: https://www.bandwidth.com/legal/
servers:
- url: https://dashboard.bandwidth.com/api
  description: Production Server
security:
- basicAuth: []
tags:
- name: Conferences
  description: Create and manage multi-party conference calls. Supports adding and removing members, muting, holding, and playing audio to conferences.
paths:
  /accounts/{accountId}/conferences:
    get:
      operationId: listConferences
      summary: List conferences
      description: Retrieves a list of conferences associated with the account, including active and completed conferences.
      tags:
      - Conferences
      parameters:
      - $ref: '#/components/parameters/accountId'
      - name: name
        in: query
        description: Filter conferences by name
        schema:
          type: string
      - name: minCreatedTime
        in: query
        description: Minimum creation time for filtering
        schema:
          type: string
          format: date-time
      - name: maxCreatedTime
        in: query
        description: Maximum creation time for filtering
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Conferences retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Conference'
        '401':
          description: Unauthorized
  /accounts/{accountId}/conferences/{conferenceId}:
    get:
      operationId: getConference
      summary: Get conference information
      description: Retrieves detailed information about a specific conference including its current state and list of members.
      tags:
      - Conferences
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/conferenceId'
      responses:
        '200':
          description: Conference information retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conference'
        '401':
          description: Unauthorized
        '404':
          description: Conference not found
    post:
      operationId: updateConference
      summary: Update a conference
      description: Modifies an active conference. Can be used to mute all members, set the conference status to completed (ending the conference), or redirect the conference to a new callback URL.
      tags:
      - Conferences
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/conferenceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConferenceRequest'
      responses:
        '204':
          description: Conference updated successfully
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Conference not found
  /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}:
    put:
      operationId: updateConferenceMember
      summary: Update a conference member
      description: Modifies a specific member of an active conference. Supports muting, unmuting, holding, and removing individual members.
      tags:
      - Conferences
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/conferenceId'
      - name: memberId
        in: path
        required: true
        description: The unique identifier of the conference member
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConferenceMemberRequest'
      responses:
        '204':
          description: Conference member updated successfully
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Member not found
  /accounts/{accountId}/conferences/{conferenceId}/recordings:
    get:
      operationId: getConferenceRecordings
      summary: List conference recordings
      description: Retrieves a list of all recordings associated with a specific conference.
      tags:
      - Conferences
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/conferenceId'
      responses:
        '200':
          description: Conference recordings retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Recording'
        '401':
          description: Unauthorized
        '404':
          description: Conference not found
components:
  schemas:
    Recording:
      type: object
      properties:
        recordingId:
          type: string
          description: The unique identifier for the recording
        accountId:
          type: string
          description: The Bandwidth account ID
        callId:
          type: string
          description: The call ID associated with this recording
        applicationId:
          type: string
          description: The application ID
        duration:
          type: string
          description: The duration of the recording in ISO 8601 format
        channels:
          type: integer
          description: The number of audio channels in the recording
        startTime:
          type: string
          format: date-time
          description: The time the recording started
        endTime:
          type: string
          format: date-time
          description: The time the recording ended
        fileFormat:
          type: string
          enum:
          - wav
          - mp3
          description: The audio format of the recording
        status:
          type: string
          enum:
          - complete
          - partial
          - error
          description: The status of the recording
        mediaUrl:
          type: string
          format: uri
          description: The URL to download the recording media
        transcription:
          $ref: '#/components/schemas/Transcription'
    UpdateConferenceRequest:
      type: object
      properties:
        status:
          type: string
          enum:
          - active
          - completed
          description: Set to completed to end the conference and disconnect all members
        redirectUrl:
          type: string
          format: uri
          description: URL to redirect the conference to for new BXML instructions
        redirectMethod:
          type: string
          enum:
          - POST
          - GET
          default: POST
          description: The HTTP method for the redirect webhook
        tag:
          type: string
          description: Custom tag for the conference
    Conference:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the conference
        name:
          type: string
          description: The user-defined name of the conference
        createdTime:
          type: string
          format: date-time
          description: The time the conference was created
        completedTime:
          type: string
          format: date-time
          description: The time the conference ended
        tag:
          type: string
          description: Custom tag attached to the conference
        activeMembers:
          type: array
          description: List of currently active conference members
          items:
            $ref: '#/components/schemas/ConferenceMember'
    UpdateConferenceMemberRequest:
      type: object
      properties:
        mute:
          type: boolean
          description: Whether to mute the member
        hold:
          type: boolean
          description: Whether to place the member on hold
        callIdsToCoach:
          type: array
          items:
            type: string
          description: List of call IDs that this member should coach
    ConferenceMember:
      type: object
      properties:
        callId:
          type: string
          description: The call ID of the conference member
        conferenceId:
          type: string
          description: The conference ID
        memberUrl:
          type: string
          format: uri
          description: The URL for this member resource
        mute:
          type: boolean
          description: Whether the member is muted
        hold:
          type: boolean
          description: Whether the member is on hold
        callIdsToCoach:
          type: array
          items:
            type: string
          description: List of call IDs that this member is coaching
    Transcription:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the transcription
        status:
          type: string
          enum:
          - none
          - available
          - error
          description: The status of the transcription
        completedTime:
          type: string
          format: date-time
          description: The time the transcription was completed
        url:
          type: string
          format: uri
          description: The URL of the transcription result
  parameters:
    conferenceId:
      name: conferenceId
      in: path
      required: true
      description: The unique identifier for the conference
      schema:
        type: string
    accountId:
      name: accountId
      in: path
      required: true
      description: The unique identifier for the Bandwidth account
      schema:
        type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using your Bandwidth Dashboard API credentials.
externalDocs:
  description: Bandwidth Emergency Calling API Documentation
  url: https://dev.bandwidth.com/docs/emergency/emergencyCallingApi/