{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/vonage/main/json-schema/vonage-get-call-response-schema.json", "title": "GetCallResponse", "x-generated": "2026-10-08", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/vonage-voice-openapi.yml#/components/schemas/GetCallResponse", "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string", "title": "Link to the Call Object" } } } } }, "uuid": { "$ref": "#/$defs/uuid" }, "conversation_uuid": { "$ref": "#/$defs/conversation_uuid" }, "to": { "type": "object", "description": "The single or mixed collection of endpoint types you connected to", "oneOf": [ { "$ref": "#/$defs/EndpointPhoneTo" }, { "$ref": "#/$defs/EndpointSip" }, { "$ref": "#/$defs/EndpointWebsocket" }, { "$ref": "#/$defs/EndpointVBCExtension" }, { "$ref": "#/$defs/EndpointApp" } ] }, "from": { "$ref": "#/$defs/from" }, "status": { "$ref": "#/$defs/status" }, "direction": { "$ref": "#/$defs/direction" }, "rate": { "$ref": "#/$defs/rate" }, "price": { "$ref": "#/$defs/price" }, "duration": { "$ref": "#/$defs/duration" }, "start_time": { "$ref": "#/$defs/start_time" }, "end_time": { "$ref": "#/$defs/end_time" }, "network": { "$ref": "#/$defs/network" } }, "$defs": { "AddressE164": { "description": "The phone number to connect to", "type": "string", "minLength": 7, "maxLength": 15, "pattern": "\\d{7,15}" }, "AddressSip": { "description": "The SIP URI to connect to", "type": "string", "minLength": 1, "maxLength": 50 }, "AddressWebsocket": { "type": "string", "minLength": 1 }, "EndpointApp": { "type": "object", "description": "Connect to an App User", "required": [ "type", "user" ], "properties": { "type": { "type": "string", "description": "The type of connection. Must be `app`" }, "user": { "type": "string", "description": "The username to connect to" } } }, "EndpointPhoneTo": { "type": "object", "description": "Connect to a Phone (PSTN) number", "required": [ "number", "type" ], "properties": { "type": { "type": "string", "description": "The type of connection. Must be `phone`" }, "number": { "$ref": "#/$defs/AddressE164" }, "dtmfAnswer": { "description": "Provide [DTMF digits](https://developer.nexmo.com/voice/voice-api/concepts/dtmf) to send when the call is answered", "type": "string" }, "shaken": { "description": "For Vonage customers who are required by the FCC to sign their own calls to the USA, we allow you to place Voice API calls with your own signature. This feature is available by request only. Please be aware calls with an invalid signature will be rejected. For more information please contact us. In this option, you must place the STIR/SHAKEN Identity Header content that Vonage must use for this call. Expected format is composed of the JWT with the header, payload and signature, an info parameter with a link for the certificate, the algorithm (alg) parameter indicating which encryption type was used and the passport type (ppt) which should be shaken.", "type": "string" } } }, "EndpointSip": { "type": "object", "description": "Connect to a SIP Endpoint", "required": [ "type", "uri" ], "properties": { "type": { "description": "The type of connection. Must be `sip`", "type": "string" }, "uri": { "$ref": "#/$defs/AddressSip" }, "headers": { "description": "Metadata to include in the request. The headers are transmitted as part of the SIP INVITE as `X-key: value` headers.", "type": "object" }, "standard_headers": { "description": "Standard SIP INVITE headers. Unlike the `headers` property, these are not prepended with `X-`.", "type": "object", "required": [ "User-to-User" ], "properties": { "User-to-User": { "description": "Transmit user-to-user information if supported by the CC / PBX vendor, as per [RFC 7433](https://datatracker.ietf.org/doc/html/rfc7433).", "type": "string" } } } } }, "EndpointVBCExtension": { "type": "object", "description": "Connect to a VBC extension", "required": [ "type", "extension" ], "properties": { "type": { "type": "string", "description": "The type of connection. Must be `vbc`" }, "extension": { "type": "string" } } }, "EndpointWebsocket": { "type": "object", "description": "Connect to a Websocket", "required": [ "type", "content-type" ], "properties": { "type": { "description": "The type of connection. Must be `websocket`", "type": "string" }, "uri": { "$ref": "#/$defs/AddressWebsocket" }, "content-type": { "type": "string", "enum": [ "audio/l16;rate=8000", "audio/l16;rate=16000", "audio/l16;rate=24000" ] }, "headers": { "description": "Details of the Websocket you want to connect to", "type": "object", "properties": { "customer_id": { "type": "string", "description": "This is an example header. You can provide any headers you may need" } } }, "authorization": { "description": "Optional configuration defining how the Authorization HTTP header is set in the WebSocket opening handshake.", "type": "object", "properties": { "type": { "type": "string", "default": "vonage", "description": "Defines the authorization mode. \"vonage\" – the Voice API includes the same JWT used for signed webhooks in the Authorization header ('Bearer {JWT}'). \"custom\" – a developer-supplied Authorization header value is sent verbatim.", "enum": [ "vonage", "custom" ] }, "value": { "type": "string", "description": "Required only when authorization.type = \"custom\". The raw header value to include, e.g. \"Bearer abc123\" or \"ApiKey X9Z...\". Ignored when authorization.type = \"vonage\"." } } } } }, "conversation_uuid": { "type": "string", "format": "uuid", "title": "The UUID of the Conversation", "description": "The unique identifier for the conversation this call leg is part of." }, "direction": { "type": "string", "description": "Possible values are `outbound` or `inbound`", "enum": [ "outbound", "inbound" ] }, "duration": { "description": "The time elapsed for the call to take place in seconds. This is only sent if `status` is `completed`.", "type": "string", "title": "The Duration of the call " }, "end_time": { "description": "The time the call started in the following format: `YYYY-MM-DD HH:MM:SS`. For xample, `2020-01-01 12:00:00`. This is only sent if `status` is `completed`.", "type": "string", "format": "date-time", "title": "The End Time of the call " }, "from": { "type": "object", "description": "The endpoint you called from. Possible values are the same as `to`.", "properties": { "type": { "type": "string", "title": "The type of Endpoint that made the call" }, "number": { "type": "string", "title": "The number that made the call" } } }, "network": { "description": "The Mobile Country Code Mobile Network Code ([MCCMNC](https://en.wikipedia.org/wiki/Mobile_country_code)) for the carrier network used to make this call. This is only sent if `status` is `completed`.", "type": "string", "title": "The Network ID of the destination " }, "price": { "description": "The total price charged for this call. This is only sent if `status` is `completed`.", "type": "string", "title": "The total price of the call " }, "rate": { "description": "The price per minute for this call. This is only sent if `status` is `completed`.", "type": "string", "title": "The Price per minute of the called destination" }, "start_time": { "description": "The time the call started in the following format: `YYYY-MM-DD HH:MM:SS`. For example, `2020-01-01 12:00:00`. This is only sent if `status` is `completed`.", "type": "string", "format": "date-time", "title": "The Start Time of the call " }, "status": { "type": "string", "title": "The State of the call", "description": "The status of the call. [See possible values](https://developer.nexmo.com/voice/voice-api/guides/call-flow#event-objects)" }, "uuid": { "type": "string", "format": "uuid", "title": "The UUID of the Call Leg", "description": "The unique identifier for this call leg. The UUID is created when your call request is accepted by Vonage. You use the UUID in all requests for individual live calls" } } }