You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1354 lines
40 KiB
1354 lines
40 KiB
{
|
|
"openapi": "3.0.0",
|
|
"info": {
|
|
"title": "Flowroute APIs",
|
|
"description": "The Flowroute APIs are organized around REST. Our APIs have resource-oriented URLs, support HTTP Verbs, and respond with HTTP Status Codes. All API requests and responses, including errors, will be represented as JSON objects. You can use the Flowroute APIs to manage your Flowroute phone numbers including setting primary and failover routes for inbound calls, and sending text messages (SMS and MMS) using long-code or toll-free numbers in your account.",
|
|
"version": "0.1.1"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "https://api.flowroute.com/",
|
|
"description": "Main (production) server"
|
|
}
|
|
],
|
|
"security": [
|
|
{
|
|
"basicAuth": []
|
|
}
|
|
],
|
|
"paths": {
|
|
"/v2.1/messages": {
|
|
"post": {
|
|
"summary": "Send a Message",
|
|
"description": "Sends an SMS or MMS from a Flowroute long code or toll-free phone number to another valid phone number.",
|
|
"requestBody": {
|
|
"description": "The SMS or MMS message to send.",
|
|
"required": true,
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Message"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "ACCEPTED",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/MessageSuccess"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"403": {
|
|
"$ref": "#/components/responses/Forbidden"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
},
|
|
"422": {
|
|
"$ref": "#/components/responses/Unprocessable"
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"summary": "Look Up a Set of Messages",
|
|
"description": "Retrieves a list of Message Detail Records (MDRs) within a specified date range. Date and time is based on Coordinated Universal Time (UTC).",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"example": "2017-12-01T00:00:00.000Z"
|
|
},
|
|
"description": "The beginning date and time, in UTC, on which to perform an MDR search. The DateTime can be formatted as YYYY-MM-DDor YYYY-MM-DDTHH:mm:ss.SSZ."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"example": "2017-12-06T00:00:00.000Z"
|
|
},
|
|
"description": "The ending date and time, in UTC, on which to perform an MDR search. The DateTime can be formatted as YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSZ."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "The number of MDRs to retrieve at one time. You can set as high of a number as you want, but the number cannot be negative and must be greater than 0 (zero)."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "The number of MDRs to skip when performing a query. The number must be 0 (zero) or greater, but cannot be negative."
|
|
}
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/MDRSet"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2.1/messages/{id}": {
|
|
"get": {
|
|
"summary": "Look Up a Message Detail Record",
|
|
"description": "Searches for a specific message record ID and returns a Message Detail Record (in MDR2 format).",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "The unique message detail record identifier (MDR ID) of any message. When entering the MDR ID, the number should include the mdr2- preface."
|
|
}
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/MDR2"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers": {
|
|
"get": {
|
|
"summary": "Account Phone Numbers",
|
|
"description": "Returns a list of all phone numbers currently on your Flowroute account. The response includes details such as the phone number's rate center, state, number type, and whether CNAM Lookup is enabled for that number.",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "starts_with",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieves phone numbers that start with the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "ends_with",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieves phone numbers that end with the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "contains",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieves phone numbers containing the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Limits the number of items to retrieve. A maximum of 200 items can be retrieved."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Offsets the list of phone numbers by your specified value. For example, if you have 4 phone numbers and you entered 1 as your offset value, then only 3 of your phone numbers will be displayed in the response."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "A JSON object of phone numbers in your account",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/Numbers"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/{id}": {
|
|
"get": {
|
|
"summary": "Phone Number Details",
|
|
"description": "Lists all of the information associated with any of the phone numbers in your account, including billing method, primary voice route, and failover voice route.",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Phone number to search for which must be a number that you own. Must be in 11-digit E.164 format; e.g. 12061231234."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "A JSON object of phone numbers in your account",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/Number"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized"
|
|
},
|
|
"404": {
|
|
"description": "Not Found"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Purchase a Phone Number",
|
|
"description": "Lets you purchase a phone number from available Flowroute inventory.",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Phone number to purchase. Must be in 11-digit E.164 format; e.g. 12061231234."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "CREATED",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/Number"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/available": {
|
|
"get": {
|
|
"summary": "Search for Purchasable Phone Numbers",
|
|
"description": "This endpoint lets you search for phone numbers by state or rate center, or by your specified search value.",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "starts_with",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieve phone numbers that start with the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "contains",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieve phone numbers containing the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "ends_with",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Retrieve phone numbers that end with the specified value."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Limits the number of items to retrieve. A maximum of 200 items can be retrieved."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Offsets the list of phone numbers by your specified value. For example, if you have 4 phone numbers and you entered 1 as your offset value, then only 3 of your phone numbers will be displayed in the response."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "rate_center",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Filters by and displays phone numbers in the specified case-insensitive abbreviated rat e center, not the full name as differentiated in the <a href=\"https://www.nationalpooling.com/reports/NPA-RateCent erReports/index.htm\" target=\"_blank\">NPA Rate Center Reports</a>."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "state",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Filters by and displays phone numbers in the specified case-insensitive abbreviated rat e center, not the full name as differentiated in the <a href=\"https://www.nationalpooling.com/reports/NPA-RateCent erReports/index.htm\" target=\"_blank\">NPA Rate Center Reports</a>."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/PurchasableNumbers"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/available/areacodes": {
|
|
"get": {
|
|
"summary": "List Available Area Codes",
|
|
"description": "Returns a list of all Numbering Plan Area (NPA) codes containing purchasable phone numbers.",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Limits the number of items to retrieve. A maximum of 400 items can be retrieved."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Offsets the list of phone numbers by your specified value. For example, if you have 4 phone numbers and you entered 1 as your offset value, then only 3 of your phone numbers will be displayed in the response."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "max_setup_cost",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"description": "Restricts the results to area codes that include at least one telephone number with a setup fee below or equal to the specified max_setup_cost. For more details around pricing, please see <a href=\"https://www.flowroute.com/pricing-details/\" target=\"_blank\">Flowroute Pricing Details</a>."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AvailableCodes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/available/exchanges": {
|
|
"get": {
|
|
"summary": "List Available Exchange Codes",
|
|
"description": "Returns a list of all Central Office (exchange) codes containing purchasable phone numbers.",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Limits the number of items to retrieve. A maximum of 200 items can be retrieved."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Offsets the list of phone numbers by your specified value. For example, if you have 4 phone numbers and you entered 1 as your offset value, then only 3 of your phone numbers will be displayed in the response."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "max_setup_cost",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"description": "Restricts the results to exchanges that include at least one telephone number with a setup fee below or equal to the specified max_setup_cost. For more details around pricing, please see <a href=\"https://www.flowroute.com/pricing-details/\" target=\"_blank\">Flowroute Pricing Details</a>."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "areacode",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Restricts the results to the specified area code."
|
|
}
|
|
],
|
|
"tags": [
|
|
"numbers"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AvailableCodes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/{number_id}/relationships/primary_route": {
|
|
"patch": {
|
|
"summary": "Update Primary Voice Route for a Phone Number",
|
|
"description": "Use this endpoint to update the primary voice route for a phone number. You must create the route first by following \"Create an Inbound Route\". You can then assign the created route by specifying its value in a PATCH request.",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "number_id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "The phone number in E.164 11-digit North American format to which the primary route for voice will be assigned."
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The primary route to be assigned.",
|
|
"required": true,
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Routes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"routes"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "NO CONTENT"
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/numbers/{number_id}/relationships/failover_route": {
|
|
"patch": {
|
|
"summary": "Update Failover Voice Route for a Phone Number",
|
|
"description": "Use this endpoint to update the failover voice route for a phone number. You must create the route first by following \"Create an Inbound Route\". You can then assign the created route by specifying its value in a PATCH request.",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "number_id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "The phone number in E.164 11-digit North American format to which the failover route for voice will be assigned."
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The failover route to be assigned.",
|
|
"required": true,
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Routes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"routes"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "NO CONTENT"
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/v2/routes": {
|
|
"post": {
|
|
"summary": "Create an Inbound Route",
|
|
"description": "Creates a new inbound route which can then be associated with phone numbers. Please see \"List Inbound Routes\" to review the route values that you can associate with your Flowroute phone numbers.",
|
|
"requestBody": {
|
|
"description": "The new inbound route to be created.",
|
|
"required": true,
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewRoute"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"routes"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "CREATED"
|
|
},
|
|
"401": {
|
|
"$ref": "#/components/responses/Unauthorized"
|
|
},
|
|
"404": {
|
|
"$ref": "#/components/responses/NotFound"
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"summary": "List Inbound Routes",
|
|
"description": "Returns a list of your inbound routes. From the list, you can then select routes to use as the primary and failover routes for a phone number, which you can do via \"Update Primary Voice Route for a Phone Number\" and \"Update Failover Voice Route for a Phone Number\".",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Limits the number of routes to retrieve. A maximum of 200 items can be retrieved."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Offsets the list of routes by your specified value. For example, if you have 4 inbound routes and you entered 1 as your offset value, then only 3 of your routes will be displayed in the response."
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "route_type",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"host",
|
|
"sip-reg",
|
|
"uri",
|
|
"number"
|
|
]
|
|
},
|
|
"description": "Restricts the results to inbound routes with your specified route type."
|
|
}
|
|
],
|
|
"tags": [
|
|
"routes"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccountRoutes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized"
|
|
},
|
|
"404": {
|
|
"description": "Not Found"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"securitySchemes": {
|
|
"basicAuth": {
|
|
"type": "http",
|
|
"scheme": "basic"
|
|
}
|
|
},
|
|
"schemas": {
|
|
"Message": {
|
|
"type": "object",
|
|
"required": [
|
|
"from",
|
|
"to"
|
|
],
|
|
"properties": {
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"to": {
|
|
"type": "string"
|
|
},
|
|
"body": {
|
|
"type": "string"
|
|
},
|
|
"media_urls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"is_mms": {
|
|
"type": "boolean"
|
|
},
|
|
"dlr_callback": {
|
|
"type": "string",
|
|
"format": "url"
|
|
}
|
|
}
|
|
},
|
|
"MessageSuccess": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"default": "message",
|
|
"example": "message"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"MDRSet": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/MDR2"
|
|
}
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"next": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"MDR2": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"attributes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"amount_display": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"amount_nanodollars": {
|
|
"type": "number"
|
|
},
|
|
"body": {
|
|
"type": "string"
|
|
},
|
|
"delivery_receipts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"level": {
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"status_code": {
|
|
"type": "integer"
|
|
},
|
|
"status_code_description": {
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"direction": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"is_mms": {
|
|
"type": "boolean"
|
|
},
|
|
"message_encoding": {
|
|
"type": "integer"
|
|
},
|
|
"message_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"longcode",
|
|
"toll-free"
|
|
]
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"relationships": {
|
|
"type": "object",
|
|
"properties": {
|
|
"media": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"default": "media",
|
|
"example": "media"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"example": "message"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Routes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"default": "route",
|
|
"example": "route"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"NewRoute": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"default": "route",
|
|
"example": "route"
|
|
},
|
|
"attributes": {
|
|
"type": "object",
|
|
"required": [
|
|
"alias",
|
|
"route_type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"alias": {
|
|
"type": "string"
|
|
},
|
|
"route_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"sip-reg",
|
|
"host",
|
|
"uri",
|
|
"number"
|
|
],
|
|
"default": "sip-reg",
|
|
"example": "sip-reg"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"NewRouteResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/IncludedRoutes"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"example": "https://api.flowroute.com/routes/99670"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"AccountRoutes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/IncludedRoutes"
|
|
}
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/RequestLinks"
|
|
}
|
|
}
|
|
},
|
|
"IncludedRoutes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"attributes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"alias": {
|
|
"type": "string"
|
|
},
|
|
"route_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"host",
|
|
"number",
|
|
"uri",
|
|
"sip-reg"
|
|
],
|
|
"default": "sip-reg"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"default": "route",
|
|
"example": "route"
|
|
}
|
|
}
|
|
},
|
|
"NumberRelationships": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cnam_preset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"e911_address": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"failover_route": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"primary_route": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/Routes"
|
|
}
|
|
}
|
|
},
|
|
"Number": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"attributes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"alias": {
|
|
"type": "string"
|
|
},
|
|
"cnam_lookups_enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"number_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"standard",
|
|
"tollfree",
|
|
"inum"
|
|
]
|
|
},
|
|
"rate_center": {
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"relationships": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/NumberRelationships"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"default": "number",
|
|
"example": "number"
|
|
}
|
|
}
|
|
},
|
|
"included": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/IncludedRoutes"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Numbers": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/components/schemas/Number"
|
|
}
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PurchasableNumbers": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"attributes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"monthly_cost": {
|
|
"type": "number",
|
|
"format": "double"
|
|
},
|
|
"number_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"standard",
|
|
"tollfree"
|
|
],
|
|
"example": "standard"
|
|
},
|
|
"rate_center": {
|
|
"type": "string"
|
|
},
|
|
"setup_cost": {
|
|
"type": "number",
|
|
"format": "double"
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/RelatedLinks"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"example": "number"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/RequestLinks"
|
|
}
|
|
}
|
|
},
|
|
"AvailableCodes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/RelatedLinks"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"areacode",
|
|
"exchange"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/RequestLinks"
|
|
}
|
|
}
|
|
},
|
|
"RelatedLinks": {
|
|
"type": "object",
|
|
"properties": {
|
|
"related": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"example": [
|
|
"https://api.flowroute.com/v2/numbers/12062011204",
|
|
"https://api.flowroute.com/v2/numbers/available/exchanges?areacode=202",
|
|
"https://api.flowroute.com/v2/numbers/available"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"RequestLinks": {
|
|
"type": "object",
|
|
"properties": {
|
|
"next": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"self": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"Error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"errors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"status"
|
|
],
|
|
"properties": {
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"Forbidden": {
|
|
"description": "Forbidden – You don't have permission to access this resource.",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"NotFound": {
|
|
"description": "The specified resource was not found",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Unauthorized": {
|
|
"description": "Unauthorized – There was an issue with your API credentials.",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Unprocessable": {
|
|
"description": "Unprocessable Entity - You tried to enter an incorrect value.",
|
|
"content": {
|
|
"application/vnd.api+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|