Bandwidth · Capability

Bandwidth Voice API — Conferences

Bandwidth Voice API — Conferences. 5 operations. Lead operation: List conferences. Self-contained Naftiko capability covering one Bandwidth business surface.

Run with Naftiko BandwidthConferences

What You Can Do

GET
Listconferences — List conferences
/v1/accounts/{accountid}/conferences
GET
Getconference — Get conference information
/v1/accounts/{accountid}/conferences/{conferenceid}
POST
Updateconference — Update a conference
/v1/accounts/{accountid}/conferences/{conferenceid}
PUT
Updateconferencemember — Update a conference member
/v1/accounts/{accountid}/conferences/{conferenceid}/members/{memberid}
GET
Getconferencerecordings — List conference recordings
/v1/accounts/{accountid}/conferences/{conferenceid}/recordings

MCP Tools

list-conferences

List conferences

read-only idempotent
get-conference-information

Get conference information

read-only idempotent
update-conference

Update a conference

update-conference-member

Update a conference member

idempotent
list-conference-recordings

List conference recordings

read-only idempotent

Capability Spec

voice-conferences.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Bandwidth Voice API — Conferences
  description: 'Bandwidth Voice API — Conferences. 5 operations. Lead operation: List conferences. Self-contained Naftiko
    capability covering one Bandwidth business surface.'
  tags:
  - Bandwidth
  - Conferences
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    BANDWIDTH_API_KEY: BANDWIDTH_API_KEY
capability:
  consumes:
  - type: http
    namespace: voice-conferences
    baseUri: https://voice.bandwidth.com/api/v2
    description: Bandwidth Voice API — Conferences business capability. Self-contained, no shared references.
    resources:
    - name: accounts-accountId-conferences
      path: /accounts/{accountId}/conferences
      operations:
      - name: listconferences
        method: GET
        description: List conferences
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: query
          type: string
          description: Filter conferences by name
        - name: minCreatedTime
          in: query
          type: string
          description: Minimum creation time for filtering
        - name: maxCreatedTime
          in: query
          type: string
          description: Maximum creation time for filtering
    - name: accounts-accountId-conferences-conferenceId
      path: /accounts/{accountId}/conferences/{conferenceId}
      operations:
      - name: getconference
        method: GET
        description: Get conference information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateconference
        method: POST
        description: Update a conference
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountId-conferences-conferenceId-members-memberId
      path: /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}
      operations:
      - name: updateconferencemember
        method: PUT
        description: Update a conference member
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: memberId
          in: path
          type: string
          description: The unique identifier of the conference member
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountId-conferences-conferenceId-recordings
      path: /accounts/{accountId}/conferences/{conferenceId}/recordings
      operations:
      - name: getconferencerecordings
        method: GET
        description: List conference recordings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: basic
      username: '{{env.BANDWIDTH_USER}}'
      password: '{{env.BANDWIDTH_PASS}}'
  exposes:
  - type: rest
    namespace: voice-conferences-rest
    port: 8080
    description: REST adapter for Bandwidth Voice API — Conferences. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/accounts/{accountid}/conferences
      name: accounts-accountid-conferences
      description: REST surface for accounts-accountId-conferences.
      operations:
      - method: GET
        name: listconferences
        description: List conferences
        call: voice-conferences.listconferences
        with:
          name: rest.name
          minCreatedTime: rest.minCreatedTime
          maxCreatedTime: rest.maxCreatedTime
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/conferences/{conferenceid}
      name: accounts-accountid-conferences-conferenceid
      description: REST surface for accounts-accountId-conferences-conferenceId.
      operations:
      - method: GET
        name: getconference
        description: Get conference information
        call: voice-conferences.getconference
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateconference
        description: Update a conference
        call: voice-conferences.updateconference
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/conferences/{conferenceid}/members/{memberid}
      name: accounts-accountid-conferences-conferenceid-members-memberid
      description: REST surface for accounts-accountId-conferences-conferenceId-members-memberId.
      operations:
      - method: PUT
        name: updateconferencemember
        description: Update a conference member
        call: voice-conferences.updateconferencemember
        with:
          memberId: rest.memberId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/conferences/{conferenceid}/recordings
      name: accounts-accountid-conferences-conferenceid-recordings
      description: REST surface for accounts-accountId-conferences-conferenceId-recordings.
      operations:
      - method: GET
        name: getconferencerecordings
        description: List conference recordings
        call: voice-conferences.getconferencerecordings
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: voice-conferences-mcp
    port: 9090
    transport: http
    description: MCP adapter for Bandwidth Voice API — Conferences. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-conferences
      description: List conferences
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: voice-conferences.listconferences
      with:
        name: tools.name
        minCreatedTime: tools.minCreatedTime
        maxCreatedTime: tools.maxCreatedTime
      outputParameters:
      - type: object
        mapping: $.
    - name: get-conference-information
      description: Get conference information
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: voice-conferences.getconference
      outputParameters:
      - type: object
        mapping: $.
    - name: update-conference
      description: Update a conference
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: voice-conferences.updateconference
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-conference-member
      description: Update a conference member
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: voice-conferences.updateconferencemember
      with:
        memberId: tools.memberId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-conference-recordings
      description: List conference recordings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: voice-conferences.getconferencerecordings
      outputParameters:
      - type: object
        mapping: $.