Bandwidth · Schema

Bandwidth Call

Represents a voice call managed through the Bandwidth Voice API, including outbound and inbound calls with state tracking, recording references, and call control metadata.

CommunicationsCPaaSVoiceMessagingTelephonySMSMFA

Properties

Name Type Description
callId string The unique identifier for the call, assigned by Bandwidth
accountId string The Bandwidth account ID that owns the call
applicationId string The Bandwidth application ID associated with the call
from string The originating phone number in E.164 format
to string The destination phone number in E.164 format
direction string The direction of the call
state string The current state of the call
answerUrl string The URL that receives the answer webhook and returns BXML
answerMethod string The HTTP method for the answer webhook
disconnectUrl string The URL that receives the disconnect webhook
disconnectMethod string The HTTP method for the disconnect webhook
startTime string The ISO 8601 timestamp when the call was initiated
answerTime string The ISO 8601 timestamp when the call was answered
endTime string The ISO 8601 timestamp when the call ended
disconnectCause string The reason the call was disconnected (e.g., hangup, timeout, cancel)
callTimeout number The timeout in seconds for the outbound call to be answered
callbackTimeout number The timeout in seconds for webhook callback requests
tag string A custom string attached to the call for tracking purposes
callUrl string The URL for this call resource in the Bandwidth API
View JSON Schema on GitHub

JSON Schema

bandwidth-call-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.com/schemas/bandwidth/call.json",
  "title": "Bandwidth Call",
  "description": "Represents a voice call managed through the Bandwidth Voice API, including outbound and inbound calls with state tracking, recording references, and call control metadata.",
  "type": "object",
  "required": ["from", "to", "applicationId"],
  "properties": {
    "callId": {
      "type": "string",
      "description": "The unique identifier for the call, assigned by Bandwidth"
    },
    "accountId": {
      "type": "string",
      "description": "The Bandwidth account ID that owns the call"
    },
    "applicationId": {
      "type": "string",
      "description": "The Bandwidth application ID associated with the call"
    },
    "from": {
      "type": "string",
      "pattern": "^\\+1[2-9]\\d{9}$",
      "description": "The originating phone number in E.164 format"
    },
    "to": {
      "type": "string",
      "pattern": "^\\+1[2-9]\\d{9}$",
      "description": "The destination phone number in E.164 format"
    },
    "direction": {
      "type": "string",
      "enum": ["inbound", "outbound"],
      "description": "The direction of the call"
    },
    "state": {
      "type": "string",
      "enum": ["initiated", "answered", "completed"],
      "description": "The current state of the call"
    },
    "answerUrl": {
      "type": "string",
      "format": "uri",
      "description": "The URL that receives the answer webhook and returns BXML"
    },
    "answerMethod": {
      "type": "string",
      "enum": ["POST", "GET"],
      "default": "POST",
      "description": "The HTTP method for the answer webhook"
    },
    "disconnectUrl": {
      "type": "string",
      "format": "uri",
      "description": "The URL that receives the disconnect webhook"
    },
    "disconnectMethod": {
      "type": "string",
      "enum": ["POST", "GET"],
      "default": "POST",
      "description": "The HTTP method for the disconnect webhook"
    },
    "startTime": {
      "type": "string",
      "format": "date-time",
      "description": "The ISO 8601 timestamp when the call was initiated"
    },
    "answerTime": {
      "type": "string",
      "format": "date-time",
      "description": "The ISO 8601 timestamp when the call was answered"
    },
    "endTime": {
      "type": "string",
      "format": "date-time",
      "description": "The ISO 8601 timestamp when the call ended"
    },
    "disconnectCause": {
      "type": "string",
      "description": "The reason the call was disconnected (e.g., hangup, timeout, cancel)"
    },
    "callTimeout": {
      "type": "number",
      "minimum": 1,
      "maximum": 300,
      "default": 30,
      "description": "The timeout in seconds for the outbound call to be answered"
    },
    "callbackTimeout": {
      "type": "number",
      "minimum": 1,
      "maximum": 25,
      "default": 15,
      "description": "The timeout in seconds for webhook callback requests"
    },
    "tag": {
      "type": "string",
      "maxLength": 256,
      "description": "A custom string attached to the call for tracking purposes"
    },
    "callUrl": {
      "type": "string",
      "format": "uri",
      "description": "The URL for this call resource in the Bandwidth API"
    }
  },
  "$defs": {
    "Recording": {
      "type": "object",
      "description": "A recording of a voice call",
      "properties": {
        "recordingId": {
          "type": "string",
          "description": "The unique identifier for the recording"
        },
        "callId": {
          "type": "string",
          "description": "The call ID associated with this recording"
        },
        "duration": {
          "type": "string",
          "description": "The duration of the recording in ISO 8601 format"
        },
        "channels": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2,
          "description": "The number of audio channels"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "When the recording started"
        },
        "endTime": {
          "type": "string",
          "format": "date-time",
          "description": "When the recording ended"
        },
        "fileFormat": {
          "type": "string",
          "enum": ["wav", "mp3"],
          "description": "The audio file format"
        },
        "status": {
          "type": "string",
          "enum": ["complete", "partial", "error"],
          "description": "The recording status"
        },
        "mediaUrl": {
          "type": "string",
          "format": "uri",
          "description": "The URL to download the recording audio"
        }
      }
    },
    "Conference": {
      "type": "object",
      "description": "A multi-party conference call",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique conference identifier"
        },
        "name": {
          "type": "string",
          "description": "The user-defined conference name"
        },
        "createdTime": {
          "type": "string",
          "format": "date-time",
          "description": "When the conference was created"
        },
        "completedTime": {
          "type": "string",
          "format": "date-time",
          "description": "When the conference ended"
        },
        "tag": {
          "type": "string",
          "description": "Custom tag for the conference"
        },
        "activeMembers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ConferenceMember"
          },
          "description": "List of active conference members"
        }
      }
    },
    "ConferenceMember": {
      "type": "object",
      "description": "A member of a conference call",
      "properties": {
        "callId": {
          "type": "string",
          "description": "The call ID of the conference member"
        },
        "conferenceId": {
          "type": "string",
          "description": "The conference ID"
        },
        "mute": {
          "type": "boolean",
          "description": "Whether the member is muted"
        },
        "hold": {
          "type": "boolean",
          "description": "Whether the member is on hold"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bandwidth-call"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.