Vonage Integration Suite icon

Vonage Integration Suite

The Vonage Integration Suite API enables call control and webhooks for call events

COMMUNITYNO AUTH0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://api.vonage.com/t/vbc.prod/vis/v1"
    }
  ],
  "info": {
    "contact": {
      "email": "gunifydevops@vonage.com",
      "name": "VGIS",
      "url": "https://integrate.vonage.com"
    },
    "description": "The Vonage Integration Suite API enables call control and webhooks for call events.\n\nYour application must subscribe to the VonageIntegrationSuite API suite to use this API.\n",
    "title": "Vonage Integration Suite",
    "version": "1.0.1",
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/nexmo/api-specification/master/definitions/vonage-business-cloud/vgis.yml",
        "version": "3.0"
      }
    ],
    "x-providerName": "vonage.com",
    "x-serviceName": "vgis",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "tags": [
    {
      "name": "Users"
    },
    {
      "name": "Accounts"
    },
    {
      "name": "Calls"
    },
    {
      "name": "Events"
    },
    {
      "description": "Webhooks are external URLs which subscribe to receive events via HTTP POST for a specified set of events.",
      "name": "Webhooks"
    }
  ],
  "paths": {
    "/self": {
      "get": {
        "operationId": "getUser",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Success"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "User info",
        "tags": [
          "Users"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/account": {
      "get": {
        "operationId": "getAccount",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Account info",
        "tags": [
          "Accounts"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls": {
      "get": {
        "description": "Lists currently active calls",
        "operationId": "listCalls",
        "parameters": [
          {
            "description": "Return calls that occurred after this point in time",
            "in": "query",
            "name": "fromDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Return calls that occurred before this point in time",
            "in": "query",
            "name": "toDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by call direction. For multiple criteria, seperate values by a comma.",
            "in": "query",
            "name": "direction",
            "schema": {
              "enum": [
                "INBOUND",
                "OUTBOUND"
              ],
              "example": "INBOUND,OUTBOUND",
              "type": "string"
            }
          },
          {
            "description": "Filter calls by state. For multiple criteria, seperate values by a comma.",
            "in": "query",
            "name": "states",
            "schema": {
              "default": "ACTIVE",
              "enum": [
                "INITIALIZING",
                "RINGING",
                "ACTIVE",
                "HELD",
                "REMOTE_HELD"
              ],
              "example": "ACTIVE,RINGING",
              "type": "string"
            }
          },
          {
            "description": "Page number of calls to return",
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return this amount of calls in the response",
            "in": "query",
            "name": "size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Sort in either ascending or descending order",
            "in": "query",
            "name": "order",
            "schema": {
              "default": "ASC",
              "enum": [
                "DESC",
                "ASC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Sort calls by property",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Call"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "List active calls",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      },
      "post": {
        "operationId": "createCall",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallCreate"
              }
            }
          },
          "description": "Place call parameters",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Call"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Place a call",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/count": {
      "get": {
        "operationId": "getCallsCount",
        "parameters": [
          {
            "description": "Return calls that occurred after this point in time",
            "in": "query",
            "name": "fromDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Return calls that occurred before this point in time",
            "in": "query",
            "name": "toDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by call direction. For multiple criteria, seperate values by a comma.",
            "in": "query",
            "name": "direction",
            "schema": {
              "enum": [
                "INBOUND",
                "OUTBOUND"
              ],
              "example": "INBOUND,OUTBOUND",
              "type": "string"
            }
          },
          {
            "description": "Filter calls by state. For multiple criteria, seperate values by a comma.",
            "in": "query",
            "name": "states",
            "schema": {
              "default": "ACTIVE",
              "enum": [
                "INITIALIZING",
                "RINGING",
                "ACTIVE",
                "HELD",
                "REMOTE_HELD"
              ],
              "example": "ACTIVE,RINGING",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventsCount"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Get calls count",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/{id}": {
      "delete": {
        "operationId": "destroyCall",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Call"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "End a call",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      },
      "get": {
        "operationId": "getRoles",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Call"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Get a call",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/{id}/answer": {
      "put": {
        "operationId": "callAnswer",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Answer call (On supported devices)",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/{id}/hold": {
      "delete": {
        "operationId": "callUnold",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Unhold",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      },
      "put": {
        "operationId": "callHold",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Put call on hold",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/{id}/transfer": {
      "post": {
        "operationId": "callTransfer",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallTransfer"
              }
            }
          },
          "description": "Call transfer parameters",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Transfer call",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/calls/{id}/vmtransfer": {
      "put": {
        "operationId": "callVMTransfer",
        "parameters": [
          {
            "description": "Unique identifier of the call",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Send call to voicemail",
        "tags": [
          "Calls"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/events": {
      "get": {
        "operationId": "listEvents",
        "parameters": [
          {
            "description": "Record type",
            "in": "query",
            "name": "types",
            "schema": {
              "enum": [
                "CALL"
              ],
              "example": "CALL",
              "type": "string"
            }
          },
          {
            "description": "Return events that occurred after this point in time",
            "in": "query",
            "name": "fromDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Return events that occurred before this point in time",
            "in": "query",
            "name": "toDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by event direction",
            "in": "query",
            "name": "direction",
            "schema": {
              "enum": [
                "INBOUND",
                "OUTBOUND"
              ],
              "example": "INBOUND,OUTBOUND",
              "type": "string"
            }
          },
          {
            "description": "Filter events by state",
            "in": "query",
            "name": "states",
            "schema": {
              "enum": [
                "INITIALIZING",
                "RINGING",
                "ACTIVE",
                "HELD",
                "REMOTE_HELD",
                "DETACHED",
                "REJECTED",
                "CANCELLED",
                "ANSWERED",
                "MISSED"
              ],
              "example": "ACTIVE,RINGING",
              "type": "string"
            }
          },
          {
            "description": "Page number of events to return",
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return this amount of events in the response",
            "in": "query",
            "name": "size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Sort in either ascending or descending order'",
            "in": "query",
            "name": "order",
            "schema": {
              "default": "ASC",
              "enum": [
                "DESC",
                "ASC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Sort events by property",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Event"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "List events",
        "tags": [
          "Events"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/events/count": {
      "get": {
        "operationId": "getEventsCount",
        "parameters": [
          {
            "description": "Return events that occurred after this point in time",
            "in": "query",
            "name": "fromDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Return events that occurred before this point in time",
            "in": "query",
            "name": "toDate",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by event direction",
            "in": "query",
            "name": "direction",
            "schema": {
              "enum": [
                "INBOUND",
                "OUTBOUND"
              ],
              "example": "INBOUND,OUTBOUND",
              "type": "string"
            }
          },
          {
            "description": "Filter events by state",
            "in": "query",
            "name": "states",
            "schema": {
              "enum": [
                "INITIALIZING",
                "RINGING",
                "ACTIVE",
                "HELD",
                "REMOTE_HELD"
              ],
              "example": "ACTIVE,RINGING",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventsCount"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Get events count",
        "tags": [
          "Events"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/events/{id}": {
      "get": {
        "operationId": "getEvent",
        "parameters": [
          {
            "description": "Unique identifier of the event",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Event"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Get event",
        "tags": [
          "Events"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/webhooks": {
      "get": {
        "operationId": "listWebhooks",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Webhook"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "List web hooks",
        "tags": [
          "Webhooks"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      },
      "post": {
        "operationId": "createWebhook",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate"
              }
            }
          },
          "description": "Webhook create parameters",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Create a new webhook subscription",
        "tags": [
          "Webhooks"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/webhooks/{id}": {
      "delete": {
        "operationId": "destroyWebhook",
        "parameters": [
          {
            "description": "Unique identifier of the webhook",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Remove a web hook",
        "tags": [
          "Webhooks"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      },
      "get": {
        "operationId": "viewWebhook",
        "parameters": [
          {
            "description": "Unique identifier of the webhook",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Get web hook details",
        "tags": [
          "Webhooks"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    },
    "/self/webhooks/{id}/renew": {
      "put": {
        "operationId": "renewWebhook",
        "parameters": [
          {
            "description": "Webhook ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "Successful"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad Request: The client should not repeat the request without modifications"
          },
          "401": {
            "description": "Unauthorized: Invalid access token"
          },
          "403": {
            "description": "Forbidden: The user has no rights to access the resource(s)"
          },
          "408": {
            "description": "Timeout: The client may repeat the request without modifications"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "summary": "Renews a web hook",
        "tags": [
          "Webhooks"
        ],
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited"
      }
    }
  },
  "components": {
    "schemas": {
      "Account": {
        "properties": {
          "id": {
            "description": "Unique identifier of the account",
            "example": 257073,
            "type": "integer"
          },
          "name": {
            "description": "Name of the account",
            "example": "Vonage",
            "type": "string"
          },
          "org": {
            "description": "Organization of the account",
            "example": "Vonage",
            "type": "string"
          },
          "status": {
            "description": "Status of the account",
            "enum": [
              "PENDING",
              "ACTIVE",
              "DELETED",
              "ARCHIVED"
            ],
            "example": "ACTIVE",
            "type": "string"
          },
          "ucis": {
            "items": {
              "properties": {
                "health": {
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "id": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": {
                  "default": "ACCOUNT_UCI",
                  "type": "string"
                },
                "ucpAccountId": {
                  "type": "string"
                },
                "ucpLabel": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Call": {
        "properties": {
          "accountId": {
            "description": "Unique identifier of the account",
            "format": "int64",
            "type": "integer"
          },
          "answerTime": {
            "description": "Time to answer the call",
            "format": "date",
            "type": "string"
          },
          "callerId": {
            "description": "Remote caller ID",
            "type": "string"
          },
          "direction": {
            "description": "Direction of the call",
            "enum": [
              "INBOUND",
              "OUTBOUND"
            ],
            "type": "string"
          },
          "duration": {
            "description": "Duration of the call in milliseconds",
            "format": "int64",
            "type": "integer"
          },
          "endTime": {
            "description": "End time of the call",
            "format": "date",
            "type": "string"
          },
          "externalId": {
            "description": "External identifier of the call",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier of the call",
            "format": "int64",
            "type": "integer"
          },
          "phoneNumber": {
            "description": "Unique identifier of the account",
            "type": "string"
          },
          "startTime": {
            "description": "Start time of the call",
            "format": "date",
            "type": "string"
          },
          "state": {
            "description": "Status of the call",
            "enum": [
              "INITIALIZING",
              "RINGING",
              "ACTIVE",
              "HELD",
              "REMOTE_HELD",
              "DETACHED",
              "REJECTED",
              "CANCELLED",
              "ANSWERED",
              "MISSED"
            ],
            "type": "string"
          },
          "type": {
            "description": "Record type",
            "enum": [
              "CALL"
            ],
            "type": "string"
          },
          "uciId": {
            "description": "Unique identifier of communications provider",
            "format": "int64",
            "type": "integer"
          },
          "userId": {
            "description": "Unique identifier of the user",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "type",
          "accountId",
          "userId",
          "uciId",
          "direction",
          "duration",
          "state",
          "phoneNumber",
          "startTime"
        ],
        "type": "object"
      },
      "CallCreate": {
        "properties": {
          "phoneNumber": {
            "description": "Phone number to call",
            "type": "string"
          }
        },
        "required": [
          "phoneNumber"
        ],
        "type": "object"
      },
      "CallTransfer": {
        "properties": {
          "phoneNumber": {
            "description": "Phone number to transfer to",
            "type": "string"
          }
        },
        "required": [
          "phoneNumber"
        ],
        "type": "object"
      },
      "Error": {
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ErrorResponse": {
        "properties": {
          "errorCode": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Event": {
        "properties": {
          "accountId": {
            "description": "Unique identifier of the account",
            "format": "int64",
            "type": "integer"
          },
          "answerTime": {
            "description": "Time to answer the event",
            "format": "date",
            "type": "string"
          },
          "callerId": {
            "description": "Remote caller ID",
            "type": "string"
          },
          "direction": {
            "description": "Direction of the event",
            "enum": [
              "INBOUND",
              "OUTBOUND"
            ],
            "type": "string"
          },
          "duration": {
            "description": "Duration of the call in milliseconds",
            "format": "int64",
            "type": "integer"
          },
          "endTime": {
            "description": "End time of the event",
            "format": "date",
            "type": "string"
          },
          "externalId": {
            "description": "External identifier of the event",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier of the event",
            "format": "int64",
            "type": "integer"
          },
          "phoneNumber": {
            "description": "Unique identifier of the account",
            "type": "string"
          },
          "smsData": {
            "type": "string"
          },
          "startTime": {
            "description": "Start time of the event",
            "format": "date",
            "type": "string"
          },
          "state": {
            "description": "Status of the event",
            "enum": [
              "INITIALIZING",
              "RINGING",
              "ACTIVE",
              "HELD",
              "REMOTE_HELD",
              "DETACHED",
              "REJECTED",
              "CANCELLED",
              "ANSWERED",
              "MISSED"
            ],
            "type": "string"
          },
          "type": {
            "description": "Record type",
            "enum": [
              "CALL"
            ],
            "type": "string"
          },
          "uciId": {
            "description": "Unique identifier of communications provider",
            "format": "int64",
            "type": "integer"
          },
          "userId": {
            "description": "Unique identifier of the user",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "type",
          "accountId",
          "userId",
          "uciId",
          "direction",
          "state",
          "phoneNumber",
          "startTime"
        ],
        "type": "object"
      },
      "EventsCount": {
        "properties": {
          "count": {
            "description": "Number of events found",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "User": {
        "properties": {
          "accountId": {
            "description": "Unique identifier of the user's account",
            "example": 257073,
            "type": "integer"
          },
          "acountLabel": {
            "description": "The name of the user's account",
            "example": "Vonage",
            "type": "string"
          },
          "contactNumber": {
            "description": "Contact number of the user",
            "example": 14155550100,
            "type": "string"
          },
          "emailAddress": {
            "description": "Email address of the user",
            "example": "john.smith@example.com",
            "type": "string"
          },
          "firstName": {
            "description": "First name of the user",
            "example": "Robert",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier of the user",
            "example": 522078,
            "type": "integer"
          },
          "lastName": {
            "description": "Last name of the user",
            "example": "Smith",
            "type": "string"
          },
          "roles": {
            "items": {
              "properties": {
                "code": {
                  "description": "Code for the role",
                  "example": "AU",
                  "type": "string"
                },
                "name": {
                  "description": "Name for the role",
                  "example": "Account User",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the user",
            "enum": [
              "PENDING",
              "ACTIVE",
              "DELETED",
              "ARCHIVED"
            ],
            "example": "ACTIVE",
            "type": "string"
          },
          "ucis": {
            "items": {
              "properties": {
                "health": {
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "id": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": {
                  "default": "USER_UCI",
                  "type": "string"
                },
                "ucpLabel": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Webhook": {
        "properties": {
          "accountId": {
            "description": "Unique identifier of the account",
            "example": 257073,
            "type": "string"
          },
          "createdAt": {
            "description": "Created time for the webhook",
            "example": "2019-01-01T00:00:00.000Z",
            "type": "string"
          },
          "events": {
            "description": "Subscribed events for the webhook",
            "example": [
              "CALL"
            ],
            "items": {
              "enum": [
                "CALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "expireAt": {
            "description": "Expiration time for the webhook",
            "example": "2019-01-01T00:00:00.000Z",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the webhook",
            "example": 184094,
            "type": "string"
          },
          "metadataPolicy": {
            "description": "Metadata policy for the webhook",
            "enum": [
              "NONE",
              "HEADER",
              "BODY"
            ],
            "example": "NONE",
            "type": "string"
          },
          "purgeAt": {
            "description": "Scheduled purge time for the webhook",
            "example": "2019-01-01T00:00:00.000Z",
            "type": "string"
          },
          "renewedAt": {
            "description": "Last renewed time for the webhook",
            "example": "2019-01-01T00:00:00.000Z",
            "type": "string"
          },
          "signingAlgo": {
            "description": "Signing algorithm for the webhook",
            "enum": [
              "HMAC_SHA256",
              "NONE"
            ],
            "example": "HMAC_SHA256",
            "type": "string"
          },
          "signingKey": {
            "description": "Signing key for the webhook",
            "type": "string"
          },
          "statistics": {
            "properties": {
              "failed": {
                "description": "Current delivery status",
                "example": false,
                "type": "boolean"
              },
              "totalAttempts": {
                "description": "Total delivery attempts",
                "example": 10,
                "type": "integer"
              },
              "totalFailures": {
                "description": "Total failed deliveries",
                "example": 10,
                "type": "integer"
              },
              "totalSuccesses": {
                "description": "Total successful deliveries",
                "example": 10,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "status": {
            "description": "Status for the webhook",
            "enum": [
              "ACTIVE",
              "PAUSED"
            ],
            "example": "ACTIVE",
            "type": "string"
          },
          "url": {
            "description": "Destination URL for events",
            "example": "https://www.example.com",
            "type": "string"
          },
          "userId": {
            "description": "Unique identifier of the user",
            "example": 522078,
            "type": "string"
          }
        },
        "type": "object"
      },
      "WebhookCreate": {
        "properties": {
          "events": {
            "description": "Events to subscribe to the webhook",
            "example": [
              "CALL"
            ],
            "items": {
              "enum": [
                "CALL"
              ],
              "example": "CALL",
              "type": "string"
            },
            "type": "array"
          },
          "metadataPolicy": {
            "description": "Metadata policy for the webhook",
            "enum": [
              "NONE",
              "HEADER",
              "BODY"
            ],
            "example": "NONE",
            "type": "string"
          },
          "signingAlgo": {
            "description": "Signing algorithm for the webhook",
            "enum": [
              "HMAC_SHA256"
            ],
            "example": "HMAC_SHA256",
            "type": "string"
          },
          "signingKey": {
            "description": "Signing key for the webhook",
            "type": "string"
          },
          "url": {
            "description": "Destination URL for events",
            "example": "https://www.example.com",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  }
}