Nexmo Application API
<div class="Vlt-callout Vlt-callout--critical"> <i></i> <div class="Vlt-calloutcontent">
COMMUNITYNO AUTH0 INSTALLS
OpenAPI Specificationv3.0
{
"openapi": "3.0.0",
"servers": [
{
"url": "https://api.nexmo.com/v1/applications"
}
],
"info": {
"contact": {
"email": "devrel@nexmo.com",
"name": "Nexmo.com",
"url": "https://developer.nexmo.com/",
"x-twitter": "Nexmo"
},
"description": "<div class=\"Vlt-callout Vlt-callout--critical\"> <i></i> <div class=\"Vlt-callout__content\">\n <h4>Applications V1 is deprecated</h4>\n This version of the API has been deprecated. Please use <a href=\"/api/application.v2\">version 2</a> going forwards\n</div> </div>\nA Nexmo application contains the security and configuration information you need to connect to Nexmo endpoints and easily use our products.",
"license": {
"name": "The MIT License (MIT)",
"url": "https://opensource.org/licenses/MIT"
},
"termsOfService": "https://www.nexmo.com/terms-of-use",
"title": "Nexmo Application API",
"version": "1.0.2",
"x-apiClientRegistration": "https://dashboard.nexmo.com/sign-up",
"x-logo": {
"url": "https://api.apis.guru/v2/cache/logo/https_www.vonage.com_content_dam_vonage_us-en_api_illustrations_Mobile_APIs_Services.svg"
},
"x-origin": [
{
"format": "openapi",
"url": "https://raw.githubusercontent.com/nexmo/api-specification/master/definitions/application.yml",
"version": "3.0"
}
],
"x-providerName": "nexmo.com",
"x-serviceName": "application"
},
"externalDocs": {
"url": "https://developer.nexmo.com/api/developer/application",
"x-sha1": "d8836c374e2a7504bd2cd59e05fcee440f67cb44"
},
"paths": {
"/": {
"get": {
"description": "You use a `GET` request to retrieve details of all applications associated with your account.",
"operationId": "retrieveApplications",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyQueryString"
},
{
"$ref": "#/components/parameters/apiSecretQueryString"
},
{
"description": "Set the number of items returned on each call to this endpoint. The default is 10 records.",
"example": 10,
"in": "query",
"name": "page_size",
"required": false,
"schema": {
"default": 10,
"type": "integer"
}
},
{
"description": "Set the offset from the first page. The default value is `0`.",
"example": 0,
"in": "query",
"name": "page_index",
"required": false,
"schema": {
"default": 0,
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/applications"
}
}
},
"description": "OK"
}
},
"summary": "Retrieve all Applications"
},
"post": {
"description": "You use a `POST` request to create a new application.",
"operationId": "createApplication",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"answer_method": {
"description": "The HTTP method used to make the request to `answer_url`. The default value is `GET`.",
"example": "GET",
"type": "string"
},
"answer_url": {
"description": "The URL where your webhook delivers the Nexmo Call Control Object that governs this call. As soon as your user answers a call Nexmo makes a request to `answer_url`. Required for inbound calls only.",
"example": "https://example.com/webhooks/answer",
"type": "string"
},
"api_key": {
"$ref": "#/components/schemas/apiKey"
},
"api_secret": {
"$ref": "#/components/schemas/apiSecret"
},
"event_method": {
"description": "The HTTP method used to send event information to `event_url`. The default value is `POST`. For `voice` type applications only.",
"example": "POST",
"type": "string"
},
"event_url": {
"description": "Nexmo sends event information asynchronously to this URL when status changes for `voice` applications. Always required for `voice` applications.",
"example": "https://example.com/webhooks/event",
"type": "string"
},
"inbound_method": {
"description": "The HTTP method used to send event information to `inbound_url`. The default value is `POST`. For `messages` type applications only.",
"example": "POST",
"type": "string"
},
"inbound_url": {
"description": "Nexmo sends a request to this URL when an inbound message is received. Required for `messages` type applications only.",
"example": "https://example.com/webhooks/inbound",
"type": "string"
},
"name": {
"description": "The name of your application.",
"example": "My Application",
"type": "string"
},
"status_method": {
"description": "The HTTP method used to send event information to `status_url`. The default value is `POST`. For `messages` type applications only.",
"example": "POST",
"type": "string"
},
"status_url": {
"description": "Nexmo sends event information asynchronously to this URL when status changes. Required for `messages` type applications only.",
"example": "https://example.com/webhooks/status",
"type": "string"
},
"type": {
"description": "The Nexmo product or products that you access with this application. Currently `voice` and `messages` application types are supported.",
"enum": [
"voice",
"messages"
],
"example": "voice",
"type": "string"
}
},
"required": [
"api_key",
"api_secret",
"name",
"type"
],
"type": "object"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/applicationCreated"
}
}
},
"description": "Created"
}
},
"summary": "Create Application"
}
},
"/{app_id}": {
"delete": {
"description": "You use a `DELETE` request to delete a single application.",
"operationId": "deleteApplication",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"responses": {
"204": {
"description": "No content"
}
},
"summary": "Destroy Application"
},
"get": {
"description": "You use a `GET` request to retrieve details about a single application.",
"operationId": "retrieveApplication",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyQueryString"
},
{
"$ref": "#/components/parameters/apiSecretQueryString"
},
{
"$ref": "#/components/parameters/app_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/application"
}
}
},
"description": "OK"
}
},
"summary": "Retrieve Application"
},
"put": {
"description": "You use a `PUT` request to update an existing application.",
"operationId": "updateApplication",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"answer_method": {
"default": "GET",
"description": "The HTTP method used to make the request to `answer_url`. The default value is `GET`.",
"example": "GET",
"type": "string"
},
"answer_url": {
"description": "The URL where your webhook delivers the Nexmo Call Control Object that governs this call. As soon as your user answers a call Nexmo makes a request to `answer_url`.",
"example": "https://example.com/webhooks/answer",
"format": "url",
"type": "string"
},
"api_key": {
"$ref": "#/components/schemas/apiKey"
},
"api_secret": {
"$ref": "#/components/schemas/apiSecret"
},
"event_method": {
"default": "POST",
"description": "The HTTP method used to send event information to `event_url`. The default value is POST.",
"example": "POST",
"type": "string"
},
"event_url": {
"description": "Nexmo sends event information asynchronously to this URL when status changes.",
"example": "https://example.com/webhooks/event",
"format": "url",
"type": "string"
},
"name": {
"description": "The name of your application.",
"example": "UpdatedApplication",
"type": "string"
},
"type": {
"description": "The Nexmo product or products that you access with this application. Currently `voice` and `messages` application types are supported. You can't change the type of application.",
"enum": [
"voice",
"messages"
],
"example": "voice",
"type": "string"
}
},
"required": [
"api_key",
"api_secret",
"name",
"type"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/application"
}
}
},
"description": "OK"
}
},
"summary": "Update Application"
}
}
},
"components": {
"parameters": {
"apiKeyQueryString": {
"description": "You can find your API key in your [account overview](https://dashboard.nexmo.com/account-overview)",
"in": "query",
"name": "api_key",
"required": true,
"schema": {
"type": "string"
}
},
"apiSecretQueryString": {
"description": "You can find your API secret in your [account overview](https://dashboard.nexmo.com/account-overview)",
"in": "query",
"name": "api_secret",
"required": true,
"schema": {
"type": "string"
}
},
"app_id": {
"description": "The ID allocated to your application by Nexmo.",
"example": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"in": "path",
"name": "app_id",
"required": true,
"schema": {
"type": "string"
}
}
},
"schemas": {
"apiKey": {
"description": "You can find your API key in your [account overview](https://dashboard.nexmo.com/account-overview)",
"example": "ap1k3y",
"type": "string"
},
"apiSecret": {
"description": "You can find your API secret in your [account overview](https://dashboard.nexmo.com/account-overview)",
"example": "230e6cf0709417176df1b4fc1e083adc",
"type": "string"
},
"application": {
"properties": {
"_links": {
"$ref": "#/components/schemas/links"
},
"id": {
"$ref": "#/components/schemas/applicationBase/properties/id"
},
"keys": {
"$ref": "#/components/schemas/keys"
},
"messages": {
"$ref": "#/components/schemas/messages"
},
"name": {
"$ref": "#/components/schemas/applicationBase/properties/name"
},
"voice": {
"$ref": "#/components/schemas/voice"
}
},
"required": [
"name",
"voice",
"messages"
],
"type": "object"
},
"applicationBase": {
"properties": {
"id": {
"description": "The ID allocated to your application by Nexmo.",
"example": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"type": "string"
},
"name": {
"description": "The name of your application",
"example": "My Application",
"type": "string"
}
},
"type": "object"
},
"applicationCreated": {
"allOf": [
{
"$ref": "#/components/schemas/application"
},
{
"properties": {
"keys": {
"$ref": "#/components/schemas/keysWithPrivateKey"
}
}
}
]
},
"applications": {
"properties": {
"_embedded": {
"$ref": "#/components/schemas/applicationsBase/properties/_embedded"
},
"_links": {
"$ref": "#/components/schemas/links"
},
"count": {
"$ref": "#/components/schemas/applicationsBase/properties/count"
},
"page_index": {
"$ref": "#/components/schemas/applicationsBase/properties/page_index"
},
"page_size": {
"$ref": "#/components/schemas/applicationsBase/properties/page_size"
}
},
"required": [
"count",
"page_size",
"page_index",
"_embedded",
"_links"
],
"type": "object"
},
"applicationsBase": {
"properties": {
"_embedded": {
"properties": {
"applications": {
"description": "The collection of your applications. Each object contains information about an an individual application. The public_key is not included in the application information.",
"items": {
"$ref": "#/components/schemas/application"
},
"type": "array"
}
},
"type": "object"
},
"count": {
"description": "The number of items associated with your account.",
"example": 1,
"type": "integer"
},
"page_index": {
"description": "The offset from the first page.",
"example": 1,
"type": "integer"
},
"page_size": {
"description": "The number of items returned on each call to this endpoint. The default is 10 records.",
"example": 10,
"type": "integer"
}
}
},
"keys": {
"description": "The Nexmo product that you access with this application.",
"properties": {
"public_key": {
"description": "The public key used to validate the [JWT](https://en.wikipedia.org/wiki/JSON_Web_Token).",
"example": "PUBLIC_KEY",
"type": "string"
}
},
"type": "object"
},
"keysWithPrivateKey": {
"allOf": [
{
"$ref": "#/components/schemas/keys"
},
{
"properties": {
"private_key": {
"description": "The private key you use to generate the JSON Web Token (JWT) that authenticates your requests to Messages API.",
"example": "PRIVATE_KEY",
"type": "string"
}
}
}
]
},
"links": {
"description": "A series of links between resources in this API in the following [HAL specification](http://stateless.co/hal_specification.html).",
"properties": {
"href": {
"description": "The link URL.",
"example": "/v1/applications/aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"format": "url",
"type": "string"
}
},
"type": "object"
},
"messages": {
"description": "The Nexmo product that you access with this application.",
"properties": {
"webhooks": {
"items": {
"properties": {
"endpoint": {
"description": "`inbound_url`: The URL where inbound messages are delivered. `status_url`: The URL where message status is delivered.",
"example": "https://example.com/webhooks/status",
"format": "url",
"type": "string"
},
"endpoint_type": {
"enum": [
"inbound_url",
"status_url"
],
"example": "status_url",
"type": "string"
},
"http_method": {
"description": "The HTTP method used to send data to the `inbound_url` or `status_url`. Default is POST.",
"enum": [
"GET",
"POST"
],
"example": "POST",
"type": "string"
}
},
"required": [
"endpoint_type",
"endpoint",
"http_method"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"voice": {
"description": "The Nexmo product that you access with this application.",
"properties": {
"webhooks": {
"items": {
"properties": {
"endpoint": {
"description": "`answer_url`: The URL where your webhook delivers the Nexmo Call Control Object that governs this call. As soon as your user answers a call Nexmo makes a request to answer_url. `event_url`: Nexmo sends event information asynchronously to this URL when status changes.",
"example": "https://example.com/webhooks/answer",
"format": "url",
"type": "string"
},
"endpoint_type": {
"enum": [
"answer_url",
"event_url"
],
"example": "answer_url",
"type": "string"
},
"http_method": {
"description": "The HTTP method used to send event information to the `event_url` or `answer_url`.",
"enum": [
"GET",
"POST"
],
"example": "GET",
"type": "string"
}
},
"required": [
"endpoint_type",
"endpoint",
"http_method"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
}
}