Bandwidth · Capability

Bandwidth Emergency Calling API

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.

Run with Naftiko BandwidthAPI

What You Can Do

GET
Listendpoints — List E911 endpoints
/accounts/{accountId}/e911s
POST
Createendpoint — Create an E911 endpoint
/accounts/{accountId}/e911s
GET
Getendpoint — Get E911 endpoint details
/accounts/{accountId}/e911s/{endpointId}
PUT
Updateendpoint — Update an E911 endpoint
/accounts/{accountId}/e911s/{endpointId}
DELETE
Deleteendpoint — Delete an E911 endpoint
/accounts/{accountId}/e911s/{endpointId}
GET
Listlocations — List E911 locations
/accounts/{accountId}/e911s/locations
POST
Createlocation — Create an E911 location
/accounts/{accountId}/e911s/locations
GET
Getlocation — Get E911 location details
/accounts/{accountId}/e911s/locations/{locationId}
PUT
Updatelocation — Update an E911 location
/accounts/{accountId}/e911s/locations/{locationId}
DELETE
Deletelocation — Delete an E911 location
/accounts/{accountId}/e911s/locations/{locationId}
GET
Listnotificationrecipients — List emergency notification recipients
/accounts/{accountId}/e911s/notificationRecipients
POST
Createnotificationrecipient — Create a notification recipient
/accounts/{accountId}/e911s/notificationRecipients

MCP Tools

listendpoints

List E911 endpoints

read-only idempotent
createendpoint

Create an E911 endpoint

getendpoint

Get E911 endpoint details

read-only idempotent
updateendpoint

Update an E911 endpoint

idempotent
deleteendpoint

Delete an E911 endpoint

idempotent
listlocations

List E911 locations

read-only idempotent
createlocation

Create an E911 location

getlocation

Get E911 location details

read-only idempotent
updatelocation

Update an E911 location

idempotent
deletelocation

Delete an E911 location

idempotent
listnotificationrecipients

List emergency notification recipients

read-only idempotent
createnotificationrecipient

Create a notification recipient

Capability Spec

bandwidth-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Bandwidth Emergency Calling 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.
  tags:
  - Bandwidth
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: bandwidth
    baseUri: https://dashboard.bandwidth.com/api
    description: Bandwidth Emergency Calling API HTTP API.
    authentication:
      type: basic
      username: '{{BANDWIDTH_USERNAME}}'
      password: '{{BANDWIDTH_PASSWORD}}'
    resources:
    - name: accounts-accountid-e911s
      path: /accounts/{accountId}/e911s
      operations:
      - name: listendpoints
        method: GET
        description: List E911 endpoints
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createendpoint
        method: POST
        description: Create an E911 endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountid-e911s-endpointid
      path: /accounts/{accountId}/e911s/{endpointId}
      operations:
      - name: getendpoint
        method: GET
        description: Get E911 endpoint details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateendpoint
        method: PUT
        description: Update an E911 endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteendpoint
        method: DELETE
        description: Delete an E911 endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountid-e911s-locations
      path: /accounts/{accountId}/e911s/locations
      operations:
      - name: listlocations
        method: GET
        description: List E911 locations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createlocation
        method: POST
        description: Create an E911 location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountid-e911s-locations-locationid
      path: /accounts/{accountId}/e911s/locations/{locationId}
      operations:
      - name: getlocation
        method: GET
        description: Get E911 location details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatelocation
        method: PUT
        description: Update an E911 location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletelocation
        method: DELETE
        description: Delete an E911 location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountid-e911s-notificationrecipients
      path: /accounts/{accountId}/e911s/notificationRecipients
      operations:
      - name: listnotificationrecipients
        method: GET
        description: List emergency notification recipients
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createnotificationrecipient
        method: POST
        description: Create a notification recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: bandwidth-rest
    description: REST adapter for Bandwidth Emergency Calling API.
    resources:
    - path: /accounts/{accountId}/e911s
      name: listendpoints
      operations:
      - method: GET
        name: listendpoints
        description: List E911 endpoints
        call: bandwidth.listendpoints
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s
      name: createendpoint
      operations:
      - method: POST
        name: createendpoint
        description: Create an E911 endpoint
        call: bandwidth.createendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/{endpointId}
      name: getendpoint
      operations:
      - method: GET
        name: getendpoint
        description: Get E911 endpoint details
        call: bandwidth.getendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/{endpointId}
      name: updateendpoint
      operations:
      - method: PUT
        name: updateendpoint
        description: Update an E911 endpoint
        call: bandwidth.updateendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/{endpointId}
      name: deleteendpoint
      operations:
      - method: DELETE
        name: deleteendpoint
        description: Delete an E911 endpoint
        call: bandwidth.deleteendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/locations
      name: listlocations
      operations:
      - method: GET
        name: listlocations
        description: List E911 locations
        call: bandwidth.listlocations
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/locations
      name: createlocation
      operations:
      - method: POST
        name: createlocation
        description: Create an E911 location
        call: bandwidth.createlocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/locations/{locationId}
      name: getlocation
      operations:
      - method: GET
        name: getlocation
        description: Get E911 location details
        call: bandwidth.getlocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/locations/{locationId}
      name: updatelocation
      operations:
      - method: PUT
        name: updatelocation
        description: Update an E911 location
        call: bandwidth.updatelocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/locations/{locationId}
      name: deletelocation
      operations:
      - method: DELETE
        name: deletelocation
        description: Delete an E911 location
        call: bandwidth.deletelocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/notificationRecipients
      name: listnotificationrecipients
      operations:
      - method: GET
        name: listnotificationrecipients
        description: List emergency notification recipients
        call: bandwidth.listnotificationrecipients
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountId}/e911s/notificationRecipients
      name: createnotificationrecipient
      operations:
      - method: POST
        name: createnotificationrecipient
        description: Create a notification recipient
        call: bandwidth.createnotificationrecipient
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: bandwidth-mcp
    transport: http
    description: MCP adapter for Bandwidth Emergency Calling API for AI agent use.
    tools:
    - name: listendpoints
      description: List E911 endpoints
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bandwidth.listendpoints
      outputParameters:
      - type: object
        mapping: $.
    - name: createendpoint
      description: Create an E911 endpoint
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bandwidth.createendpoint
      outputParameters:
      - type: object
        mapping: $.
    - name: getendpoint
      description: Get E911 endpoint details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bandwidth.getendpoint
      outputParameters:
      - type: object
        mapping: $.
    - name: updateendpoint
      description: Update an E911 endpoint
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: bandwidth.updateendpoint
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteendpoint
      description: Delete an E911 endpoint
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: bandwidth.deleteendpoint
      outputParameters:
      - type: object
        mapping: $.
    - name: listlocations
      description: List E911 locations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bandwidth.listlocations
      outputParameters:
      - type: object
        mapping: $.
    - name: createlocation
      description: Create an E911 location
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bandwidth.createlocation
      outputParameters:
      - type: object
        mapping: $.
    - name: getlocation
      description: Get E911 location details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bandwidth.getlocation
      outputParameters:
      - type: object
        mapping: $.
    - name: updatelocation
      description: Update an E911 location
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: bandwidth.updatelocation
      outputParameters:
      - type: object
        mapping: $.
    - name: deletelocation
      description: Delete an E911 location
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: bandwidth.deletelocation
      outputParameters:
      - type: object
        mapping: $.
    - name: listnotificationrecipients
      description: List emergency notification recipients
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bandwidth.listnotificationrecipients
      outputParameters:
      - type: object
        mapping: $.
    - name: createnotificationrecipient
      description: Create a notification recipient
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bandwidth.createnotificationrecipient
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    BANDWIDTH_USERNAME: BANDWIDTH_USERNAME
    BANDWIDTH_PASSWORD: BANDWIDTH_PASSWORD