Introduction
The CarrierX service offers a RESTful API that can be used to rent phone numbers, enable SMS for applications, support SIP trunking, and provision full-featured application endpoints.
Refer to the Voice and SMS products page for quick start guides and video tutorials. These hold walk-through instructions on renting phone numbers, as well as configuring SIP trunks, trunk groups, and application endpoints.
Using the REST API
This section describes how to obtain credentials to use the API, what types of requests the system recognizes, and the format of the responses. It also holds reference information about pagination, filtering, and callbacks.
Using Postman
This documentation contains cURL commands that you will run in your terminal. Rather than use these commands, you can explore the API using Postman, a stand-alone client with a user-friendly interface. Postman is widely used for API development and allows you to test requests.
You will need to download the Postman client to your computer. To do so, visit the Postman website and click Download. Click Run in Postman to import this collection to the Postman app.
For more information, see our Getting Started with Postman Quick Start Guide.
Main Conventions
The following conventions are used in the sections, which contain the tables with objects attributes, their types, and descriptions:
create | The attribute can be set when the user creates the object using the POST method. |
update | The attribute can be modified when the user updates the object using either PATCH or PUT methods. |
read only | The attribute is set by the system and the user can neither set nor modify it. |
Credentials
The following curl command will return a list of all of the endpoints of the CarrierX account associated with the login credentials. Use your Core API token in the query below. The endpoint
login
andpassword
values are listed in the returned JSON object.
curl -X GET \
'https://api.carrierx.com/core/v2/endpoints' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The credentials of a specific endpoint are found in the properties attribute of the nested object. Locate the
login
andpassword
values.
{
"count": 2,
"has_more": false,
"items": [
{
"addresses": [
{
"direction": "any",
"ip": "10.1.10.69",
"port": 5060,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "7fc3e7ea-a0df-4de1-836f-50318ed66466",
"name": "System Gateway",
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "system_gateway",
"voip_token": null
},
{
"addresses": [],
"attributes": {},
"capacity": 0,
"endpoint_sid": "844346ef-93e9-4fa8-a4ab-e3015af94573",
"name": "flex",
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {
"account_sid": "1d4adc32-45d1-4789-9780-928049e2bce1",
"api_url": "https://api.carrierx.com/flexml/v1",
"container_sid": "null",
"login": "sample_login",
"password": "sample_password"
},
"transformations": [],
"type": "flexml",
"voip_token": null
}
],
"limit": 1000,
"offset": 0,
"pagination": {},
"total": 2
}
Core API requests require token authentication. With these, you will be able to work with the Core API and retrieve endpoint login credentials for Conference, FlexML, and Mediator. The first step to using the Core API is obtaining a CarrierX account. To do so, please submit a request through our Contact Us page. With these credentials, you can gain access to the Portal, where you will be able to create a Security Token.
Follow the steps on our Create a Security Token quick start guide to create a token. Note that at this time, tokens are only used for the Core API.
Prior to making requests for a Conference, FlexML, or Mediator endpoint, an Application Endpoint needs to be created. See the Configure an Application Endpoint quick start guide for step-by-step instructions on creating an endpoint.
Each of the application endpoints has different login
and password
values. Entering the Core API token credentials instead of the endpoint-specific credentials when working with the Conference, FlexML, or Mediator APIs will return the error unauthorized
.
Requests
Sample request to create Conference endpoint.
curl -X POST \
'https://api.carrierx.com/core/v2/endpoints' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"my_conf", "type":"conference"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The requests in CarrierX API are made using the standard REST notation, typical for web services. This includes the URL, to which the request will be sent, the request method, the request related headers, and, optionally, a payload.
Request URL
The usual path to the API objects include the base URL to the API used with the object (Core API base URL for the objects used throughout the CarrierX products, or specific API base URLs used for FlexML, Mediator, or Conference), and the path to the object collections and the object items.
If the action targets the specific object, the path to it will include the object secure ID (SID), which allows to distinguish the targeted object from the other ones in the same collection.
The system only accepts HTTPS requests, and not HTTP requests.
Request Methods
CarrierX API uses five main verbs (methods) of REST over HTTP for the requests: POST
, GET
, PUT
, PATCH
, and DELETE
. These methods are used to create the objects, get the information about the objects, modify the objects, and delete them.
CarrierX partners need to have special permissions (or scopes) to use API methods on various objects. Refer to the available_scopes table for the complete list of the scopes that define the partner’s permissions on objects and collections.
POST
The POST
method is used to create new objects. When you create a new object, you usually need to specify at least some of the attributes for the object to be created in the request payload.
The successful POST
request will return a 200
response with the serialized JSON copy of the created object.
GET
The GET
method is used to view the information about the existing objects and their collections.
Generic GET
requests return the list of all the objects (or collections) available for the request sent. Most of such GET
requests can be used together with Pagination, Result Filtering, and Field Filtering.
GET
requests aimed at a specific object require to use the object secure ID to be included as a part of the request path, and return the information about the specified object only. Most of such GET
requests can be used together with Field Filtering.
The successful GET
request will return a 200
response with the serialized JSON copy of the requested objects (or specific object).
PATCH/PUT
The PATCH
/PUT
methods are both used to modify the existing objects and their attributes. The difference between them is explained below.
Sample
PATCH
request to modify or add a newname
record of the nestedattributes
object.
curl -X PATCH \
'https://api.carrierx.com/core/v2/partners/aeda835c-6627-4f4c-ac73-9edcae95640b' \
-H 'Content-Type: application/json' \
--data-binary '{"attributes":{"name":"New Partner Name"}}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The successful request returns the serialized JSON copy of the created object together with the nested object.
{
"attributes": {
"name": "New Partner Name"
},
...,
"partner_sid": "ed437757-001d-4ecc-aa5a-efdf5e50dba0"
}
Sample
PATCH
request to add a newname2
record of the nestedattributes
object of the same Partner object.
curl -X PATCH \
'https://api.carrierx.com/core/v2/partners/aeda835c-6627-4f4c-ac73-9edcae95640b' \
-H 'Content-Type: application/json' \
--data-binary '{"attributes":{"name2":"New Partner Name 2"}}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The successful request returns the serialized JSON copy of the created object together with the modified nested object.
{
"attributes": {
"name": "New Partner Name"
"name2": "New Partner Name 2"
},
...,
"partner_sid": "ed437757-001d-4ecc-aa5a-efdf5e50dba0"
}
Sample
PATCH
request to modify the entire nestedattributes
object of the same Partner object.
curl -X PATCH \
'https://api.carrierx.com/core/v2/partners/aeda835c-6627-4f4c-ac73-9edcae95640b?nested_objects=replace' \
-H 'Content-Type: application/json' \
--data-binary '{"attributes":{"name3":"New Partner Name 3"}}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The successful request returns the serialized JSON copy of the created object together with the nested object.
{
"attributes": {
"name3": "New Partner Name 3"
},
...,
"partner_sid": "ed437757-001d-4ecc-aa5a-efdf5e50dba0"
}
PATCH
is used to modify only some of the object attributes and does not require to send the entire object in the request payload. Only the attributes and their values that need to be modified can be sent in the request body.
Objects can have a complex structure and can contain other objects as part of them, i.e., nested inside them. When you use PATCH
and want to modify the nested objects, PATCH
follows the below rules to define what must be updated and how:
-
If the existing nested object contains the same record (by key), the existing record will be replaced with the new value, provided in the
PATCH
request. The other nested object records will remain unmodified. -
If the existing nested object does not contain the same record, a new record will be added to the object. The other nested object records will remain unmodified.
-
If the existing nested object contains the same record and the value of the incoming record is
null
, then the existing record will be removed. The other nested object records will remain unmodified. -
If the
PATCH
request containsnested_objects=replace
as a query attribute, the whole nested object will be replaced with a new one (i.e., all the old records and their values will be removed and only the new ones will be added).
PUT
is used to modify the complete object and require to send the entire object (together with the nested objects, if there are any) in the request payload.
Both PATCH
and PUT
requests are aimed at a specific object and require the object secure ID as a part of the request path.
The successful PATCH
/PUT
request will return a 200
response with the serialized JSON copy of the modified object.
DELETE
The DELETE
method is used to delete the object targeted by its secure ID.
The successful DELETE
request will return a 204
response code with an empty body.
Additional Request Parameters
All CarrierX API requests require authentication. Refer to the section above for more information about obtaining login credentials. Endpoint credentials are passed using HTTP basic authentication. Pagination and filtering parameters are passed as part of the query URL. Object fields and values are added to the request body.
Responses
All responses are returned in the JSON format with a status code. For common errors returned, refer to the HTTP Errors section.
Pagination
This request returns Call objects starting with the second record available, and returns a maximum of 4 records.
curl -X GET \
'https://api.carrierx.com/conference/v1/calls?offset=2&limit=4' \
-u '[your_user_name]:[your_password]'
To view records not included in the response, make a request to the URL value of the previous key.
{
"count": 0,
"has_more": false,
"items": [],
"limit": 4,
"offset": 2,
"pagination": {
"previous": "https://api.carrierx.com/conference/v1/calls?limit=4&offset=0"
},
"total": 0
}
The three optional parameters for pagination are: offset
, limit
, and order
. GET
requests use these three parameters to dictate how many items should be skipped in the response, the amount of records to return, and in what order the results should appear.
offset
determines the amount of items that are skipped in the response. If there are five records and the offset
value is 2
, the response will not include the first two records. Instead, it will return records for items three through five. The default value for offset
is 0
, meaning that the first existing item will appear first.
The parameter limit
determines how many items are returned in the response. The default limit is 10
, meaning that a maximum of ten items will be returned. If the number of items that exist exceeds the limit
value, the has_more
value in the response will be set to true
. Responses also have a total
field, which is the total amount of results that match the search criteria. Note that the field total will be null
on objects that are uncountable, such as SMS messages.
The last parameter of pagination is order
. Two values are accepted for this parameter: asc
and desc
. asc
is short for ascending and is the default order. Enter the field name to be ordered followed by either asc
or desc
. For example, name desc
will return names sorted in reverse-alphabetical order. Since the default is asc
, entering just name will sort the results by name in alphabetical order.
The JSON response for a successful query using the pagination parameters offset
, limit
, and order
will include a pagination
parameter. The value of pagination
will be empty if there are no more records existing outside of the queried parameters. If there are existing records outside of the query, the pagination value will include next
or previous
URLs. These URLs can be used to obtain the remainder of the records available without modifying the original query. Simply construct another GET
request with the URL provided in this field.
Pagination Quick Reference
Parameter | Data Type | Description |
---|---|---|
limit | integer | The number of items to be shown in the response. The value entered should not exceed 1000 . 10 is the default value. This parameter and value are added to the query URL. |
offset | integer | The amount of items skipped in the response. 0 is the default value. This parameter and value are added to the query URL. |
order | string | The name of the field to be ordered followed by the order of the response data, either asc or desc . The field to be ordered is listed first, followed by the order value. For example: binding_sid desc . asc is the default order. This parameter and values are added to the query URL. |
Result Filtering
This
GET
request returns Endpoint objects that meet the filter criteria. In this case, we are narrowing results to theconference
endpoint type.
curl -X GET \
"https://api.carrierx.com/core/v2/endpoints?filter=type+eq+'conference'" \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
The following response includes all of the endpoints that fit the filter criteria.
{
"count": 1,
"has_more": false,
"items": [
{
"addresses": [],
"attributes": {},
"capacity": 0,
"endpoint_sid": "613325f8-bbb8-4599-b477-1b4fef3d017c",
"name": "my_example_conference",
"partner_sid": "6nelo9p3-3eef-4f75-8f48-fb98e99908be",
"properties": {
"account_sid": "bdrU77AFb-Y1sDwqqxkeb.M3LP7hSKYg",
"api_url": "https://api.carrierx.com/conference/v1",
"container_sid": "null",
"login": "username",
"password": "password"
},
"transformations": [],
"type": "conference",
"voip_token": null
}
],
"limit": 1000,
"offset": 0,
"pagination": {},
"total": 1
}
The filter
parameter is used to restrict or customize the JSON response. Operators can be combined for more specific searches, and are added to the query URL.
Result Filtering Quick Reference
Operator | Definition | Example |
---|---|---|
eq | equal to. This search looks for the exact value entered. In the example, results will have the exact "my_mediator" value for the name field. |
name eq "my_mediator" |
ge | greater than or equal to. This search returns records where the value is greater than or equal to the field listed. For example, records are returned where the value of wait_origination_did_ttl is greater than or equal to 70000 . |
wait_origination_did_ttl ge 70000 |
gt | greater than. This search returns records where the value is exceeded for the field listed. For example, records are returned where the value of maximum_ttl is greater than 40000 . |
maximum_ttl gt 40000 |
ilike | same functionality as like but case insensitive. |
name ilike "AccOUnt%" |
in | the current value of the specified field must be contained within the specified list. The following example will return records that have a status value of either "active" or "suspended" . |
status in ("active", "suspended") |
le | less than or equal to. This search returns records where the value is less than or equal to the field listed. For example, records are returned where wait_origination_did_ttl is less than or equal to 90000 . |
wait_origination_did_ttl le 90000 |
like | contains the value indicated in the string passed. % can be added anywhere as part of the string to indicate that there can exist text before or after the string parts. In the example, the command looks for a name starting with “Account”. This form of search is case sensitive. Note that this method of search will also work: name like "A%t" , and this search will yield records with name values beginning with A and ending in t . |
name like "Account%" |
lt | less than. This search returns records where the value is less than the field listed. For example, records are returned where maximum_ttl is less than 10000 . |
maximum_ttl lt 10000 |
ne | not equal to. This search returns records that do not include the "my_mediator" value for the name field. |
name ne "my_mediator" |
notin | not in. The current value of the specified field must not be in the specified list. The following example will return records that do not have a status value of "active" . |
status notin ("active") |
Field Filtering
In the following, we request Endpoint objects without the
properties
field.
curl -X GET \
'https://api.carrierx.com/mediator/v1/bindings?exclude_fields=properties' \
-u '[your_user_name]:[your_password]'
The following response excludes the
properties
field from returned Endpoint objects.
{
"count": 1,
"has_more": false,
"items": [
{
"addresses": [],
"attributes": {},
"capacity": 0,
"endpoint_sid": "613325f8-bbb8-4599-b477-1b4fef3d017c",
"name": "my_example_conference",
"partner_sid": "6nelo9p3-3eef-4f75-8f48-fb98e99908be",
"transformations": [],
"type": "conference",
"voip_token": null
}
],
"limit": 1000,
"offset": 0,
"pagination": {},
"total": 1
}
There are two parameters associated with field filtering: include_fields
, and exclude_fields
. By default, the fields included in JSON responses are specific to the request made. These returned fields are explained in the Object section for that object.
Refer to the specific object to determine which fields can be included and excluded from the JSON responses.
include_fields
and exclude_fields
accept comma-separated strings as values.
Field Filtering Quick Reference
Parameter | Data Type | Description |
---|---|---|
exclude_fields | string | The comma separated list of fields to be excluded from the response. The fields depend on the object. See the Object section for that object to see which fields return. |
include_fields | string | The comma separated list of fields to be included in the response. The fields depend on the object. See the Object section for that object to see which fields return. |
HTTP Errors
The Core API uses the following HTTP error codes:
Error Code | Message | Description |
---|---|---|
400 | Bad Request | The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications. |
400 | No JSON object could be decoded | Generally an indicator that there is a syntax error. |
401 | Bad credentials | The request requires correct user authentication. |
401 | Unauthorized | The request requires user authentication. |
403 | Forbidden | The server understood the request, but is refusing to fulfill it. Authorization will not help and the request should not be repeated. |
404 | Cannot find item by SID | The SID number does not exist. Verify that the SID has been entered correctly. Note that calls can expire. |
404 | Not Found | The requested resource was not found on the server. |
409 | Cannot find redirect_did |
The redirect_did could not be found. Verify that there are available DIDs that can be assigned as redirect_did automatically or assign it manually using the Mediator API Create Binding method. |
415 | Unsupported media type | Ensure that the header includes support for the content type JSON. |
500 | Internal server error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
Core Concepts
This section outlines core concepts having to do with the Core API.
Batch Operations
The Batch API allows you to create, update, and delete tasks. Tasks are bulk operations that modify one or more phonenumber
or prefix
. When you create a batch task, you will have the option to review the items if you set the review
field to boolean true
value. In this case, your returned JSON status
will be pending_review
.
If the changes look correct, you can make a PATCH
or PUT
request to change the status
from pending_review
to approved
. If the items look incorrect, the batch request can be prevented from proceeding by changing the status
to cancelled
.
Refer to the Batch section of the API for comprehensive information about each of the request types and corresponding returned data.
Callbacks
The CarrierX API enables callbacks to be sent to a URL. This callback is triggered when a specific action occurs, such as when an SMS is sent either inbound or outbound. The callback data will be the object that was affected. For example, if an SMS was sent to or from a phone number associated with a callback URL, the callback will be the SMS object.
Callbacks are assigned on either the DID object or the Partner object. If a callback URL is assigned on both the DID object level and the Partner object level, the DID object callback URL will override the Partner object callback URL.
On the Partner object, callbacks for SMS activity are set for the field sms
in the callbacks
object. And callbacks for mediator endpoints activity are set for the field app_mediator
. On the DID object, callbacks related to SMS activity are set as the value of the callback_url
field.
sms and callback_url Callback
The following is the callback response. Refer to the SMS object for more information about each attribute and value.
{
"date_created": "2016-04-21T17:42:55.000Z",
"date_status_changed": "2016-04-21T17:42:55.000Z",
"direction": "inbound",
"from_did": "15162065319",
"mcc": null,
"message": "This is a test inbound message delivered by CarrierX",
"message_segments": 1,
"message_sid": "e405fa47-48f5-4dc5-bbba-77231587188e",
"mnc": null,
"partner_sid": "QLJ79xlC2vP-UEx3hS0R4rldas8.G1UB",
"price": "1",
"status": "received",
"to_did": "15162065318"
}
This callback is triggered when an action related to an SMS event occurs. Refer to the SMS object for a list of all attributes in the object.
sms
and callback_url
callbacks are currently only sent when SMS activity occurs.
app_mediator Callback
The following is the
app_mediator
callback response.
{
"attributes":{},
"date_insert":"2019-01-25T18:12:10.770Z",
"date_start":"2019-01-25T18:08:23.000Z",
"date_stop":"2019-01-25T18:09:08.000Z",
"date_talk":"2019-01-25T18:08:44.000Z",
"direction":"inbound",
"dr_sid":"2a217f8d-df41-4e3d-bece-c72eaa2a8e2a",
"dtmf":null,
"duration":45,
"endpoint_sid":"632ec9ba-5bef-4ed3-a36d-56feec8ffd41",
"endpoint_type":"mediator",
"event_type":"binding",
"number_dst":"15162065344",
"number_redirect":"15162065346",
"number_src":"15162065345",
"partner_sid":"ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"reference_sid":"05561bef-ce48-4823-a847-bf10f7837a42",
"type":"mediator",
"version":2
}
This callback is triggered when a call is made to a mediator binding.
Attribute | Data Type | Description |
---|---|---|
attributes | object | The mediator attributes. |
date_insert | string | The date and time when the Call Detail Record was processed and added to the database. |
date_start | string | The date and time when the call started. |
date_stop | string | The date and time when the call stopped. |
date_talk | string | The date and time when the call is answered. |
direction | string | The direction of the call, either inbound or outbound . |
dr_sid | string | The secure ID of the record. |
dtmf | string | The DTMF sequence of the binding. |
duration | string | The duration of the call. |
endpoint_sid | string | The endpoint secure ID. |
endpoint_type | string | The type of endpoint that triggered the callback. |
event_type | string | The event type. |
number_dst | string | The destination phone number. |
number_redirect | string | The redirect phone number. |
number_src | string | The source phone number. |
partner_sid | string | The partner secure ID. |
reference_sid | string | The binding_sid that was matched for the call. |
type | string | The endpoint type. |
version | string | The API version. |
Call Routing
CarrierX call routing connects IP communications infrastructure with the PSTN. Call routing works slightly differently depending on the direction of the communication, either inbound
or outbound
.
Hosted Endpoints: Conference, FlexML, and Mediator
Inbound communications come in from the PSTN and hit the CarrierX switches, which have configured trunks. Trunks are organized and managed in trunk groups. These entities hold settings that determine how the communication is processed. Outbound communications start from an IP-based application and move through a configurable SIP trunk, and are sent to the PSTN.
Third-Party Endpoints
Similar to hosted endpoints, inbound communications from the PSTN reach the CarrierX switches. The communications go through a configured trunk and then your external application. Outbound communications still come from your rented DIDs, but they go through your third-party configured endpoint, which integrates with an external IP. This communication still moves to the trunk and out to the PSTN.
The main difference is that the hosted endpoints (Conference, FlexML, and Mediator) are hosted by CarrierX. The third-party endpoint is hosted externally, not by CarrierX.
Transformations
Transformations look like the following.
{
"action":"set_header_parameter",
"direction":"any",
"operands":["P-Charging-Vector","orig-ioi","privateSIP"]
}
Note that you can use regular expressions in transformations. For example, the following will check if the phone number has a 1 prefix and add one if not.
{
"transformations": [
{
"action": "rewrite_to",
"direction": "any",
"operands": ["^([2-9]\\d{9})$", "1\\1"]
},
{
"action": "rewrite_from",
"direction": "any",
"operands": ["^([2-9]\\d{9})$", "1\\1"]
}
]
}
Transformations are applied to endpoints, partners, DIDs, prefixes, trunk groups, and trunks. They modify values when an object is updated. Transformations have three parts: action
, direction
, and operands
.
-
action
is what type of modification will be made. For example,rewrite_to
rewrites the destination phone number. -
direction
determines to which direction of traffic the transformation will apply. If we setdirection
tooutbound
, the specific transformation will apply to outbound communications only. -
operands
are the items that are being acted upon. For example,rewrite_to
accepts two operands: the value to replace and the value that it is going to be replaced with.
Attribute | Data Type | Description |
---|---|---|
action | string | The action to be executed for the transformation. Refer to the sections below for a list of all actions. |
direction | string | The direction of communication that the transformation applies to. Values accepted in this field are: inbound , outbound , and any . |
operands | array | The values to be transformed. Operands can include set values or regular expressions. |
if_match
An example of the
if_match
transformation:
{
"action": "if_match",
"direction": "inbound",
"operands": [
"{{stir_verstat}}",
"TN-Validation-Failed",
"reject",
"forbidden"
]
}
The if_match
action is used to add conditions based on which other transformations are applied.
The action accepts from three to 100 operands: if_match(value, match, action, arg1, argX)
Operand | Data Type | Description |
---|---|---|
value | string | The string value with interpolated fields. |
match | string | The regular expression to match. |
action | string | The action to take if the regular expression succeeds. This action is another transformation. |
arg1 | string | The first argument of the transformation action. |
argX | string | The next arguments of the transformation action. |
lookup_rn
An example of the
lookup_rn
transformation:
{
"action": "lookup_rn",
"direction": "inbound",
"operands": [
true,
true,
"{{src}}",
"from",
"ignore",
"e164",
"domestic",
"e164_with_plus",
"passthrough"
]
}
The lookup_rn
action is used to lookup the routing number and return it so that it could be used instead of the source or destination number.
The action accepts nine operands: lookup_rn(force, always, phonenumber, destination, on_failure, input_format, output_format_domestic, output_format_international, output_format_guess_not_found)
Operand | Data Type | Description |
---|---|---|
force | boolean | Force lookup mode.
false . |
always | boolean | Always include the routing number.
false . |
phonenumber | string | The phone number to look up. Usually {{dst}} (destination) to look up the routing number for the called party or {{src}} (source) for the calling party. The default value is {{dst}} . |
destination | string | The destination field where the routing number will be stored.
to . |
on_failure | string | The behavior on the transformation request failure. Values accepted in this field are:
die . |
input_format | string | The destination number input format. The transformation will try to determine if number is domestic or international, and only perform lookup if it looks like domestic. Values accepted in this field are:
guess . |
output_format_domestic | string | Output format for the numbers considered domestic or with the type set to guess by the input_format operand and LRN found. Values accepted in this field are:
domestic . |
output_format_international | string | Output format for the numbers considered international by the input_format . Values accepted in this field are:
passthrough . |
output_format_guess_not_found | string | Output format if the destination number type is set to guess by the input_format operand and no lookup routing number was found. Values accepted in this field are:
passthrough , non-default values will be applied only if the always operand is set to true . |
reject
An example of the
reject
transformation:
{
"action": "reject",
"direction": "inbound",
"operands": [
"busy"
]
}
The reject
action is used to reject the call with one of the supported reasons.
The action accepts one operand: reject(reason)
Operand | Data Type | Description |
---|---|---|
reason | string | The reject reason, compatible with one of the FlexML reject reasons. |
rewrite_from
An example of the
rewrite_from
transformation:
{
"action": "rewrite_from",
"direction": "any",
"operands": [
"^([2-9]\\d{9})$",
"1\\1"
]
}
The rewrite_from
action is used to rewrite the phone number of the incoming call.
The action accepts two operands: rewrite_from(pattern, replace)
Operand | Data Type | Description |
---|---|---|
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
rewrite_from_header_param
An example of the
rewrite_from_header_param
transformation:
{
"action": "rewrite_from_header_param",
"direction": "any",
"operands": [
"cnam",
"(.{1,14})",
"\\1*"
]
}
The rewrite_from_header_param
action is used to replace the parameters of the From
header.
The action accepts three operands: rewrite_from_header_param(parameter, pattern, replace)
Operand | Data Type | Description |
---|---|---|
parameter | string | The parameter of the From header to change. The parameters, which can be safely changed without dropping the call, are: caller-rn , cnam , and isup-oli . |
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
rewrite_header
An example of the
rewrite_header
transformation:
{
"action": "rewrite_header",
"direction": "any",
"operands": [
"X-Custom-Header",
":5060",
":6060",
"sip:10.1.5.200:5060"
]
}
The rewrite_header
action is used to replace the header (or a part of it) you specify as an operand with the new values, or create it, in the case the call data lacks it.
The action accepts four operands: rewrite_header(header, pattern, replace, default)
Operand | Data Type | Description |
---|---|---|
header | string | The header to change. |
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
default | string | If the header is missing from the call, it will be created and set to the default value. |
rewrite_header_parameter
An example of the
rewrite_header_parameter
transformation:
{
"action": "rewrite_header_parameter",
"direction": "any",
"operands": [
"Remote-Party-ID",
"privacy",
"full",
"cnam",
"id"
]
}
The rewrite_header_parameter
action is used to replace the parameter of the header you specify as an operand with the new value, or create it, in the case the call data lacks it.
The action accepts five operands: rewrite_header_parameter(header, parameter, pattern, replace, default)
Operand | Data Type | Description |
---|---|---|
header | string | The header in which the parameter will be changed. |
parameter | string | The header parameter to change. |
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
default | string | If the parameter is missing from the call, it will be created and set to the default value. |
rewrite_to
An example of the
rewrite_to
transformation:
{
"action": "rewrite_to",
"direction": "any",
"operands": [
"^([2-9]\\d{9})$",
"1\\1"
]
}
The rewrite_to
action is used to rewrite the destination phone number.
The action accepts two operands: rewrite_to(pattern, replace)
Operand | Data Type | Description |
---|---|---|
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
rewrite_to_header_param
An example of the
rewrite_to_header_param
transformation:
{
"action": "rewrite_to_header_param",
"direction": "any",
"operands": [
"npdi",
"yes",
"no"
]
}
The rewrite_to_header_param
action is used to replace the parameters of the To
header.
The action accepts three operands: rewrite_to_header_param(parameter, pattern, replace)
Operand | Data Type | Description |
---|---|---|
parameter | string | The parameter of the To header to change. |
pattern | string | The value to be replaced. Also accepts regular expressions. |
replace | string | The new value with which the pattern will be replaced. |
set_header
An example of the
set_header
transformation:
{
"action": "set_header",
"direction": "any",
"operands": [
"X-Custom-Header",
"sip:10.1.5.200:5060"
]
}
The set_header
action is used to add a new header.
The action accepts two operands: set_header(header, value)
Operand | Data Type | Description |
---|---|---|
header | string | The header to be added. |
value | string | The value for the header. |
set_header_parameter
An example of the
set_header_parameter
transformation:
{
"action": "set_header_parameter",
"direction": "any",
"operands": [
"P-Charging-Vector",
"orig-ioi",
"privateSIP"
]
}
The set_header_parameter
action is used to set a parameter to an existing header.
The action accepts three operands: set_header_parameter(header, parameter, value)
Operand | Data Type | Description |
---|---|---|
header | string | The header which is going to be modified. |
parameter | string | The header parameter to be set. |
value | string | The value for the header. If value is "" and the header parameter exists, it will be deleted. |
stir_validate
An example of the
stir_validate
transformation:
{
"action": "stir_validate",
"direction": "any",
"operands": []
}
The stir_validate
action is used to validate the call and returns data that can be used with other transformations.
The action does not accept any operands, but instead enables the use of the following variables:
{{stir_attest}}
for the attestation level used for the call.{{stir_origid}}
for the ID of the call originator.{{stir_verstat}}
for the TN validation result (available values includeTN-Validation-Passed
,TN-Validation-Failed
, andNo-TN-Validation
).
API Reference
The Core API has the following sections: Access Control, Batch, Calls, Countries, Endpoints, Invoices, Lookup, OAuth, Partners, Phone Numbers, Push, Rating, Shortener, SMS, Storage, Trunk Groups, and Verification.
Access Control
Access Control consists of two concepts—Access Control Rules and Access Control Lists. Access Control Rules (ACRs) are criteria that can be applied to calls and SMS to form the building blocks of CarrierX access control policies. Access Control Lists (ACLs) combine ACRs and policy statements to determine if an action will be allowed or rejected.
Access Control List Object
This section describes the elements of the Access Control List object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Access Control List object:
{
"access_control_rules": [
"dafd993d-0e99-4af9-b8fc-436fb01b0bbe",
"6fd782fa-c80b-4299-9b91-78797eb392e1"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": null,
"voice_action_false": null,
"voice_action_true": "reject503"
}
Attribute | Data Type | Description |
---|---|---|
access_control_rules read only | array | The list of Access Control Rule secure IDs. Refer to the Access Control Rule object for more information about Access Control Rules. |
direction read only | string | The direction for the Access Control List. Values accepted in this field are:
|
sms_action_false read only | string | The action to be executed for SMS messages if no Access Control Rules are applied. Values accepted in this field are accept and reject . |
sms_action_true read only | string | The action to be executed for SMS messages if any Access Control Rules are applied. Values accepted in this field are accept and reject . |
voice_action_false read only | string | The action to be executed for calls if no Access Control Rules are applied. Values accepted in this field are:
|
voice_action_true read only | string | The action to be executed for calls if any Access Control Rules are applied. Values accepted in this field are:
|
Look Up Effective ACLs for Calls
The following
GET
request returns effective ACLs for calls.
curl -X GET \
'https://api.carrierx.com/core/v2/accesscontrol/effective_acl/calls' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Access Control List objects.
{
"count": 1,
"has_more": false,
"items": [
{
"effective_acls": [
{
"access_control_rules": [
"dafd993d-0e99-4af9-b8fc-436fb01b0bbe",
"6fd782fa-c80b-4299-9b91-78797eb392e1"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": null,
"voice_action_false": null,
"voice_action_true": "reject503"
}
],
"layer": 1
}
],
"limit": 1,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns a list of effective Access Control Lists (ACLs) for calls for the partner or trunk group, targeted by secure ID.
GET | /accesscontrol/effective_acl/calls |
This request is enabled for Field Filtering. Additionally, query arguments are used to narrow the results.
Required Scopes
To get information about Access Control Lists the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
direction | string | The direction for the Access Control List. Values accepted in this field are:
|
partner_sid | string | The partner secure ID. |
trunk_group_sid | string | The trunk group secure ID. |
Look Up Effective ACLs for SMS
The following
GET
request returns effective ACLS for SMS.
curl -X GET \
'https://api.carrierx.com/core/v2/accesscontrol/effective_acl/sms' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Access Control List objects.
{
"count": 1,
"has_more": false,
"items": [
{
"effective_acls": [
{
"access_control_rules": [
"93525bae-f9a9-446b-b92a-7f421df7a11e"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": "accept",
"voice_action_false": null,
"voice_action_true": null
}
],
"layer": 1
}
],
"limit": 1,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns the list of effective Access Control Lists (ACLs) for SMS for the partner, targeted by secure ID.
GET | /accesscontrol/effective_acl/sms |
This request is enabled for Field Filtering. Additionally, query arguments are used to narrow the results.
Required Scopes
To get information about Access Control Rules the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
direction | string | The direction for the Access Control List. Values accepted in this field are:
|
partner_sid | string | The partner secure ID. |
Access Control Rule Object
This section describes the elements of the Access Control Rule object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Access Control Rule object:
{
"entries": [
"1800",
"1615"
],
"field": "to",
"name": "N/A",
"operation": "prefix",
"quantifier": "any",
"read_only": false,
"rule_sid": "c9109b54-13f2-4157-ba23-2984b3a207dc"
}
Attribute | Data Type | Description |
---|---|---|
entries create update | array | The list of entries to compare against the quantifier field. |
field create update | string | The field from the call or SMS to check. This value will be used in comparison with entries . |
name create update | string | The Access Control Rule name. The value will be set to N/A if not specified otherwise. |
operation create update | string | Determines how the value is checked. Values accepted in this field are:
|
quantifier create update | string | The type of comparison to be made between entries and field . Values accepted in this field are:
|
read_only create update | boolean | Shows whether the Access Control Rule can be modified or not. Values accepted in this field are true and false . |
rule_sid read only | string | The Access Control Rule secure ID. |
Create Access Control Rule
The following
POST
request creates a access control rule.
curl -X POST \
'https://api.carrierx.com/core/v2/accesscontrol/rules' \
-H 'Content-Type: application/json' \
--data-binary '{"field":"to", "quantifier":"any", "entries": ["1800","1615"], "operation":"prefix"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Access Control Rule object.
{
"entries": [
"1800",
"1615"
],
"field": "to",
"name": "N/A",
"operation": "prefix",
"quantifier": "any",
"read_only": false,
"rule_sid": "c9109b54-13f2-4157-ba23-2984b3a207dc"
}
This request adds a new Access Control Rule (ACR) for the currently logged in partner.
POST | /accesscontrol/rules |
Required Scopes
To create an Access Control Rule object, the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.create
Body Arguments
JSON representation of the fields and values of the Access Control Rule object to be created.
Required fields to create an access control rule are:
entries
field
operation
quantifier
The field
parameter should contain the value against which messages or calls will be checked.
- The
calling
andcalled
field values are specific for voice calls. - The
from_did
,to_did
, andmessage
field values are specific for SMS.
Refer to this table to view all fields that appear in the Access Control Rule object.
Get Access Control Rules
The following
GET
request returns access control rules matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/accesscontrol/rules?offset=0&limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Access Control Rule objects.
{
"count": 1,
"has_more": true,
"items": [
{
"entries": [
"18007"
],
"field": "called",
"name": "1st",
"operation": "prefix",
"quantifier": "any",
"read_only": true,
"rule_sid": "dafd993d-0e99-4af9-b8fc-436fb01b0bbe"
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/accesscontrol/rules?limit=1&offset=1"
},
"total": 56
}
This request returns a list of Access Control Rules (ACRs) that match the given criteria, and that belong to the currently logged-in partner and parent partner.
GET | /accesscontrol/rules |
A partner will not be able to view ACRs created by sub-partners. The read_only
field shows whether or not the ACRs belong to the currently logged-in partner.
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Access Control Rule objects, the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.read
Get Access Control Rule by SID
The following
GET
request returns an access control rule, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/accesscontrol/rules/dafd993d-0e99-4af9-b8fc-436fb01b0bbe' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Access Control Rule object.
{
"entries": [
"18007"
],
"field": "called",
"name": "1st",
"operation": "prefix",
"quantifier": "any",
"read_only": true,
"rule_sid": "dafd993d-0e99-4af9-b8fc-436fb01b0bbe"
}
This request returns data for a particular access control rule (ACR), targeted by secure ID.
GET | /accesscontrol/rules/{rule_sid} |
Returned ACRs apply to the partner and the parent partner.
This request is enabled for Field Filtering.
Required Scopes
To get information about an Access Control Rule object, the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
rule_sid required |
string | The Access Control Rule secure ID. |
Update Access Control Rule
The following
PATCH
request updates the Access Control Rule object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/accesscontrol/rules/c9109b54-13f2-4157-ba23-2984b3a207dc' \
-H 'Content-Type: application/json' \
--data-binary '{"operation":"exact"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Access Control Rule object.
{
"entries": [
"1800",
"1615"
],
"field": "to",
"name": "N/A",
"operation": "exact",
"quantifier": "any",
"read_only": false,
"rule_sid": "c9109b54-13f2-4157-ba23-2984b3a207dc"
}
This request updates an access control rule, targeted by secure ID.
PATCH | /accesscontrol/rules/{rule_sid} |
PUT | /accesscontrol/rules/{rule_sid} |
An Access Control Rule object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The access control rule secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire Access Control Rule object. The access control rule secure ID is passed in the query URL, and the entire Access Control Rule object is passed in the request body.
Required Scopes
To update an Access Control Rule object, the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.update
Path Arguments
Parameter | Data Type | Description |
---|---|---|
rule_sid required |
string | The access control rule secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
entries
field
name
operation
quantifier
read_only
Refer to this table to view all fields that appear in the Access Control Rule object.
Delete Access Control Rule
The following
DELETE
request deletes an Access Control Rule, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/accesscontrol/rules/c9109b54-13f2-4157-ba23-2984b3a207dc' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes an Access Control Rule object, targeted by secure ID.
DELETE | /accesscontrol/rules/{rule_sid} |
ACRs can only be deleted when associated with the partner. Partners cannot delete an ACR for a parent partner when the value of read_only
is true
.
Required Scopes
To delete an Access Control Rule object, the partner must have one of the following scopes enabled:
accesscontrol.manage
accesscontrol.delete
Path Arguments
Parameter | Data Type | Description |
---|---|---|
rule_sid required |
string | The secure ID of the Access Control Rule to delete. |
Batch
Batch tasks create, edit, or delete phonenumber
and prefix
objects.
Task Object
This section describes the elements of the batch task object.
Sample Task object:
{
"data": {
"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
},
"date_created": "2019-10-30T20:47:32.517Z",
"date_modified": "2019-10-30T20:47:32.517Z",
"entries": [
"18053355112",
"18053355280"
],
"error_details": [],
"failure": null,
"field": "phonenumber",
"method": "PATCH",
"partner_sid": "923840ce-0b63-44a9-b4ce-09dc4181fb9d",
"processed": null,
"review": true,
"status": "created",
"success": null,
"task_sid": "2d9e546e-634b-4f6b-97ca-c2158163540c",
"total": null,
"type": "phonenumber"
}
Attribute | Data Type | Description |
---|---|---|
data create | array of objects | The payload for this request. This field should be empty for DELETE . |
date_created read only | string | The date and time when the task was created. |
date_modified read only | string | The date and time when the task was modified. |
entries create | array | This is based on field . Determines the existing entry. This value should be empty for POST . |
error_details read only | array of objects | The error operation details, referenced with entry for PATCH and DELETE requests. Refer to the table below for more information. |
failure read only | integer | The count of unsuccessful operations. |
field create | string | The field used to determine the existing entry. This value only applies to the PATCH and DELETE methods. The value should be empty for POST . |
method create | string | The method used for the request, either POST , PATCH , or DELETE . |
partner_sid read only | string | The secure ID of the partner associated with the task. |
processed read only | integer | The count of processed operations. |
review create | boolean | Whether the task needs reviewing. |
status update | string | The status for the current task. Refer to the table below for a comprehensive list of statuses. |
success read only | integer | The count of successful operations. |
task_sid read only | string | The task secure ID. |
total read only | integer | The total count of operations. |
type create | string | The type of task, either phonenumber or prefix . |
Error Detail Object
Attribute | Data Type | Description |
---|---|---|
error read only | object | The error detail error object. |
key read only | object | The error detail key object. |
status
Value | Description |
---|---|
approved | The task has been approved and will execute. |
cancelled | The task has been cancelled and will not execute. |
completed | The task is completed. |
created | The batch of objects has been created. |
pending_review | The task is pending review and has not been executed. |
queued | The task is in queue. |
running | The task is currently running. |
Create Task
The following
POST
request creates a batch task.
curl -X POST \
'https://api.carrierx.com/core/v2/batch/tasks' \
-H 'Content-Type: application/json' \
--data-binary '{"method": "PATCH", "type": "phonenumber", "field":"phonenumber", "entries":["18053355112", "18053355280"], "data":{"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"}}'\
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Task object.
{
"data": {
"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
},
"date_created": "2019-10-30T20:47:32.517Z",
"date_modified": "2019-10-30T20:47:32.517Z",
"entries": [
"18053355112",
"18053355280"
],
"error_details": [],
"failure": null,
"field": "phonenumber",
"method": "PATCH",
"partner_sid": "923840ce-0b63-44a9-b4ce-09dc4181fb9d",
"processed": null,
"review": true,
"status": "created",
"success": null,
"task_sid": "2d9e546e-634b-4f6b-97ca-c2158163540c",
"total": null,
"type": "phonenumber"
}
This request creates a batch task.
POST | /batch/tasks |
Required Scopes
To create a Task object, the partner must have one of the following scopes enabled:
batch.manage
batch.create
Body Arguments
JSON representation of the fields and values of the Task object to be created.
Required fields to create a batch task depend on the method
field value of the Task object:
“method” Field Value | Required Fields |
---|---|
"DELETE" |
entries , field , method , type |
"PATCH" |
data , entries , field , method , type |
"POST" |
data , method , type |
Refer to this table to view all fields that appear in the Task object.
Get Tasks
The following
GET
request returns tasks matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/batch/tasks' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Task objects associated with the credentials.
{
"count": 1,
"has_more": false,
"items": [
{
"data": {
"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
},
"date_created": "2019-10-30T20:47:32.000Z",
"date_modified": "2019-10-30T20:47:38.000Z",
"entries": [
"18053355112",
"18053355280"
],
"error_details": [],
"failure": 0,
"field": "phonenumber",
"method": "PATCH",
"partner_sid": "923840ce-0b63-44a9-b4ce-09dc4181fb9d",
"processed": 0,
"review": true,
"status": "pending_review",
"success": 0,
"task_sid": "2d9e546e-634b-4f6b-97ca-c2158163540c",
"total": 1,
"type": "phonenumber"
}
],
"limit": 10,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns a list of tasks.
GET | /batch/tasks |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about a Task object, the partner must have one of the following scopes enabled:
batch.manage
batch.read
Get Task by SID
The following
GET
request returns a batch task, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/batch/tasks/2d9e546e-634b-4f6b-97ca-c2158163540c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Task object.
{
"data": {
"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
},
"date_created": "2019-10-30T20:47:32.000Z",
"date_modified": "2019-10-30T20:47:38.000Z",
"entries": [
"18053355112",
"18053355280"
],
"error_details": [],
"failure": 0,
"field": "phonenumber",
"method": "PATCH",
"partner_sid": "923840ce-0b63-44a9-b4ce-09dc4181fb9d",
"processed": 0,
"review": true,
"status": "pending_review",
"success": 0,
"task_sid": "2d9e546e-634b-4f6b-97ca-c2158163540c",
"total": 2,
"type": "phonenumber"
}
This request returns data for a batch task, targeted by secure ID.
GET | /batch/tasks/{task_sid} |
Required Scopes
To get information about a Task object, the partner must have one of the following scopes enabled:
batch.manage
batch.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
task_sid required |
string | The secure ID of the task. |
Update Task
The following
PATCH
request updates the Task object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/batch/tasks/2d9e546e-634b-4f6b-97ca-c2158163540c' \
-H 'Content-Type: application/json' \
--data-binary '{"status":"approved"}'\
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Task object.
{
"data": {
"trunk_group_sid": "b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
},
"date_created": "2019-10-30T20:47:32.000Z",
"date_modified": "2019-10-30T20:51:23.189Z",
"entries": [
"18053355112",
"18053355280"
],
"error_details": [],
"failure": 0,
"field": "phonenumber",
"method": "PATCH",
"partner_sid": "923840ce-0b63-44a9-b4ce-09dc4181fb9d",
"processed": 0,
"review": true,
"status": "approved",
"success": 0,
"task_sid": "2d9e546e-634b-4f6b-97ca-c2158163540c",
"total": 2,
"type": "phonenumber"
}
This request updates a task, targeted by secure ID.
PATCH | /batch/tasks/{task_sid} |
PUT | /batch/tasks/{task_sid} |
A Task object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The task secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire Task object. The task secure ID is passed in the query URL, and the entire Task object is passed in the request body.
Required Scopes
To update a Task object, the partner must have one of the following scopes enabled:
batch.manage
batch.update
Path Arguments
Parameter | Data Type | Description |
---|---|---|
task_sid required |
string | The task secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
The only field that can be updated is status
if the current value is pending_review
. The status
can be changed to either approved
or cancelled
.
Refer to this table to view all fields that appear in the Task object.
Delete Task
The following
DELETE
request deletes a batch task, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/batch/tasks/2630eb9b-55c2-4e29-9217-ed133e2f22d6' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes a Task object, targeted by task secure ID.
DELETE | /batch/tasks/{task_sid} |
Required Scopes
To delete a Task object, the partner must have one of the following scopes enabled:
batch.manage
batch.delete
Batch Review
When you create a batch task, it has an option to review the items. To enable it, the review
field of the Task object must be set to true
.
To see the review items and check if they are valid or need corrections, you can use the Get Task Review Items by SID method. It will return the Batch Review Response object with the list of the items, which can be reviewed.
The Download CSV of Task Review Items by SID method can also be used to download the list of the task review items in the CSV format for a more convenient visual representation.
If the changes look correct, you can make a PATCH
or PUT
request to change the status
from pending_review
to approved
. If the items look incorrect, the batch request can be prevented from proceeding by changing the status
to cancelled
.
Batch Review Response Object
Attribute | Data Type | Description |
---|---|---|
method read only | string | The batch review method. Values accepted in this field are: DELETE , GET , HEAD , OPTIONS , PATCH , POST , PUT , and TRACE . |
review_items read only | array of objects | Items to be reviewed before approving the batch task. Refer to the table below for more information. |
type read only | string | The batch task type. Values accepted in this field are phonenumber and prefix . |
Batch Review Item Object
Attribute | Data Type | Description |
---|---|---|
description read only | string | The batch review item description. |
fields read only | object | The batch review item fields, which require reviewing. |
sid read only | string | The batch review item secure ID. |
version read only | integer | The batch review item version. |
Get Task Review Items by SID
The following
GET
request returns batch task review items, targeted by task secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/batch/tasks/2630eb9b-55c2-4e29-9217-ed133e2f22d6/review_items' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of any associated review items.
{
"method": "PATCH",
"review_items": [
{
"description": "18053355280",
"fields": {
"trunk_group_sid": [
null,
"b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
]
},
"sid": "97de0cef-4c1a-478a-bb7e-e45fdca03035",
"version": 1
},
{
"description": "18053355112",
"fields": {
"trunk_group_sid": [
null,
"b30a3dbb-3708-41f0-a9ca-5cf365dcc4d4"
]
},
"sid": "0493d917-e23c-41db-8067-0c986df71007",
"version": 1
}
],
"type": "phonenumber"
}
This request returns task review items associated with the task secure ID.
GET | /batch/tasks/{task_sid}/review_items |
Required Scopes
To get information about task review items the partner must have one of the following scopes enabled:
batch.manage
batch.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
task_sid required |
string | The secure ID of the task. |
Download CSV of Task Review Items by SID
The following
GET
request returns task review items for a partner in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/batch/tasks/2630eb9b-55c2-4e29-9217-ed133e2f22d6/review_items.csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV of all task review items associated with the task secure ID.
GET | /batch/tasks/{task_sid}/review_items.csv |
This request is enabled for Field Filtering.
Required Scopes
To get a CSV of all task review items the partner must have one of the following scopes enabled:
batch.manage
batch.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
task_sid required |
string | The secure ID of the task. |
Calls
Calls are communications between two or more phone numbers.
Call Detail Record Object
This section describes the elements of the Call Detail Record object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Call Detail Record object:
{
"date_insert": "2019-01-18T15:35:03.000Z",
"date_start": "2019-01-18T15:32:15.589Z",
"date_stop": "2019-01-18T15:32:19.839Z",
"date_talk": "2019-01-18T15:32:16.535Z",
"direction": "inbound",
"disconnect_originator": "DST",
"diversion_dst": "+15162065451",
"diversion_src": "+15162065451",
"dr_sid": "c02a73b2-8401-459a-af7e-f4cc3eee7854",
"duration": "4.25015",
"duration_billing": "60",
"endpoint_sid_dst": "1ce5a6da-7d72-448a-ab81-897fe24b8f02",
"endpoint_sid_src": "7fc3e7ea-a0df-4de1-836f-50318ed66466",
"identity": null,
"ip_dst": "10.222.2.197:5060",
"ip_src": "162.251.180.18",
"number_billing": "15162065451",
"number_dst": "15162065451",
"number_dst_original": null,
"number_dst_transformed": null,
"number_external": "15012678830",
"number_src": "+15012678830",
"number_src_original": null,
"number_src_transformed": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"price": "0.0025",
"sipcallid_dst": "11b5b29c3486cac52a7d5baa52c937c9@12.7.193.174",
"sipcallid_src": "428ac5df4582bea66501f7d45199a18d@162.251.180.24",
"sipcause": "200",
"trunk_group_sid_dst": "cf7db13f-5c63-4c62-a447-fe3008cd72ef",
"trunk_group_sid_src": null,
"trunk_sid_dst": "7098d9f8-c8f2-400f-a31a-61ef7755985c",
"trunk_sid_src": null,
"type": "telecom",
"version": 2
}
Attribute | Data Type | Description |
---|---|---|
date_insert read only | string | The date and time when the detail record was inserted into the database. |
date_start read only | string | The date and time when the call was started. |
date_stop read only | string | The date and time when the call ended. |
date_talk read only | string | The date and time when the destination phone number answered the call. |
direction read only | string | The direction of the call. Values accepted in this field are:
|
disconnect_originator read only | string | The originator of a call drop. |
diversion_dst read only | string | The destination diversion header. |
diversion_src read only | string | The source diversion header. |
dr_sid read only | string | The secure ID of the record. |
duration read only | number | The call duration in seconds. The value is calculated as date_stop – date_start . |
duration_billing read only | number | The calculated call duration in seconds to set the price. |
endpoint_sid_dst read only | string | The destination endpoint secure ID. If the destination is an external phone number, this value will be populated with the System Gateway secure ID. |
endpoint_sid_src read only | string | The source endpoint secure ID. If the source is an external phone number, this value will be populated with the System Gateway secure ID. |
identity read only | string | The real phone number that the call is coming from. This field is populated from either PAI or RPID. |
ip_dst read only | string | The IP address of the destination of call. |
ip_src read only | string | The IP address of the source of call. |
number_billing read only | string | The subscriber phone number. |
number_dst read only | string | The destination phone number. Values accepted in this field are the calling number if the call is outbound , or the called number if the call is inbound . |
number_dst_original read only | string | The destination phone number before any transformations were applied. This field will populate if this value is different from number_dst . |
number_dst_transformed read only | string | The destination phone number after any transformations were applied. This field will populate if this value is different from number_dst . |
number_external read only | string | The non-subscriber phone number. |
number_src read only | string | The source number. Values accepted in this field are the calling number if the call is outbound , or the called number if the call is inbound . |
number_src_original read only | string | The source phone number before any transformations were applied. This field will populate if this value is different from number_src . |
number_src_transformed read only | string | The source phone number after any transformations were applied. This field will populate if this value is different from number_src . |
partner_sid read only | string | The secure ID of the partner associated with the call detail record. |
price read only | number | The price for the detail record. |
ref_id read only | string | The internal ID of the call. |
sipcallid_dst read only | string | The SIP call ID of the destination call. |
sipcallid_src read only | string | The SIP call ID of the source of call. |
sipcause read only | string | The SIP code that was used to end the call. |
trunk_group_sid_dst read only | string | The destination trunk group secure ID. |
trunk_group_sid_src read only | string | The source trunk group secure ID. |
trunk_sid_dst read only | string | The destination trunk secure ID. |
trunk_sid_src read only | string | The source trunk secure ID. |
type read only | string | The type of call. Values accepted in this field are:
|
version read only | integer | The version of the detail record as it comes from the resource. |
Get Call Detail Records
The following
GET
request returns call detail records matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/call_drs' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Call Detail Record objects.
{
"count": 1,
"has_more": true,
"items": [
{
"date_insert": "2019-01-18T15:35:03.000Z",
"date_start": "2019-01-18T15:32:15.589Z",
"date_stop": "2019-01-18T15:32:19.839Z",
"date_talk": "2019-01-18T15:32:16.535Z",
"direction": "inbound",
"disconnect_originator": "DST",
"diversion_dst": "+15162065451",
"diversion_src": "+15162065451",
"dr_sid": "c02a73b2-8401-459a-af7e-f4cc3eee7854",
"duration": "4.25015",
"duration_billing": "60",
"endpoint_sid_dst": "1ce5a6da-7d72-448a-ab81-897fe24b8f02",
"endpoint_sid_src": "7fc3e7ea-a0df-4de1-836f-50318ed66466",
"identity": null,
"ip_dst": "10.222.2.197:5060",
"ip_src": "162.251.180.18",
"number_billing": "15162065451",
"number_dst": "15162065451",
"number_dst_original": null,
"number_dst_transformed": null,
"number_external": "15012678830",
"number_src": "+15012678830",
"number_src_original": null,
"number_src_transformed": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"price": "0.0025",
"sipcallid_dst": "11b5b29c3486cac52a7d5baa52c937c9@12.7.193.174",
"sipcallid_src": "428ac5df4582bea66501f7d45199a18d@162.251.180.24",
"sipcause": "200",
"trunk_group_sid_dst": "cf7db13f-5c63-4c62-a447-fe3008cd72ef",
"trunk_group_sid_src": null,
"trunk_sid_dst": "7098d9f8-c8f2-400f-a31a-61ef7755985c",
"trunk_sid_src": null,
"type": "telecom",
"version": 2
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/calls/call_drs?limit=1&offset=1"
},
"total": null
}
This request returns data about inbound and outbound calls including the date and time, originating and destination phone numbers, and IP addresses of the calling numbers.
GET | /calls/call_drs |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Call Detail Record objects, the partner must have one of the following scopes enabled:
calls.manage
calls.read
To get information about Call Detail Records objects for the inherited partners, the partner must additionally have the calls.read_descendant
scope enabled.
Get Call Detail Record by SID
The following
GET
request returns a Call Detail Record, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/call_drs/c02a73b2-8401-459a-af7e-f4cc3eee7854' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Call Detail Record object.
{
"date_insert": "2019-01-18T15:35:03.000Z",
"date_start": "2019-01-18T15:32:15.589Z",
"date_stop": "2019-01-18T15:32:19.839Z",
"date_talk": "2019-01-18T15:32:16.535Z",
"direction": "inbound",
"disconnect_originator": "DST",
"diversion_dst": "+15162065451",
"diversion_src": "+15162065451",
"dr_sid": "c02a73b2-8401-459a-af7e-f4cc3eee7854",
"duration": "4.25015",
"duration_billing": "60",
"endpoint_sid_dst": "1ce5a6da-7d72-448a-ab81-897fe24b8f02",
"endpoint_sid_src": "7fc3e7ea-a0df-4de1-836f-50318ed66466",
"identity": null,
"ip_dst": "10.222.2.197:5060",
"ip_src": "162.251.180.18",
"number_billing": "15162065451",
"number_dst": "15162065451",
"number_dst_original": null,
"number_dst_transformed": null,
"number_external": "15012678830",
"number_src": "+15012678830",
"number_src_original": null,
"number_src_transformed": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"price": "0.0025",
"sipcallid_dst": "11b5b29c3486cac52a7d5baa52c937c9@12.7.193.174",
"sipcallid_src": "428ac5df4582bea66501f7d45199a18d@162.251.180.24",
"sipcause": "200",
"trunk_group_sid_dst": "cf7db13f-5c63-4c62-a447-fe3008cd72ef",
"trunk_group_sid_src": null,
"trunk_sid_dst": "7098d9f8-c8f2-400f-a31a-61ef7755985c",
"trunk_sid_src": null,
"type": "telecom",
"version": 2
}
This request returns data for a call detail record, targeted by secure ID.
GET | /calls/call_drs/{dr_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Call Detail Record object, the partner must have one of the following scopes enabled:
calls.manage
calls.read
To get information about a Call Detail Records object for the inherited partners, the partner must additionally have the calls.read_descendant
scope enabled.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
dr_sid required |
string | The secure ID of the Call Detail Record. |
Rate Object
This section describes the elements of the Rate object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Rate object:
{
"active": "yes",
"count": 1,
"effective_date": "2019-08-23T00:00:00.000Z",
"has_more": true,
"items": [
{
"billing_increment": "60",
"billing_minimum": "60",
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0.005"
}
],
"limit": 1,
"offset": 0,
"pagination": null,
"partner_sid": "99953792-bd20-4ed0-a523-8c22788f15v6",
"rates_plan": {
"name": "retail_voice_in_rates-2019-07-05",
"rates_plan_sid": "141e0b1f-ac9b-4347-bd44-cfaef65e6f93"
},
"total": 9
}
Parameter | Data Type | Description |
---|---|---|
active read only | string | Whether or not that rate is effective, as determined by effective_date . |
effective_date read only | string | The date and time when the rate becomes effective. |
items read only | array of objects | The rate details. Refer to the table below for more information. |
partner_sid read only | string | The secure ID of the partner associated with the rate. |
rates_plan read only | object | The rates plan. Refer to the table below for more information. |
Rate Call Object
Parameter | Data Type | Description |
---|---|---|
billing_increment read only | number | The increment in seconds by which billing will occur. Calls are rounded up to the nearest billing_increment . |
billing_minimum read only | number | The minimum length of the call in seconds for billing. |
country_code read only | string | The ISO 3166-1 alpha-3 code of this rate. |
country_name read only | string | The common country name of this rate. |
prefix read only | string | The prefix of this call rate. |
price read only | number | The price of this rate. Price is per minute. |
Rates Plan Object
Parameter | Data Type | Description |
---|---|---|
name read only | string | The name of the rates plan. |
rates_plan_sid read only | string | The rates plan secure ID. |
Get Inbound PSTN Rates
The following
GET
request returns rates for inbound PSTN calls.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/inbound/pstn' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Rate objects.
{
"active": "yes",
"count": 1,
"effective_date": "2019-08-23T00:00:00.000Z",
"has_more": true,
"items": [
{
"billing_increment": "60",
"billing_minimum": "60",
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0.005"
}
],
"limit": 1,
"offset": 0,
"pagination": null,
"partner_sid": "99953792-bd20-4ed0-a523-8c22788f15v6",
"rates_plan": {
"name": "retail_voice_in_rates-2019-07-05",
"rates_plan_sid": "141e0b1f-ac9b-4347-bd44-cfaef65e6f93"
},
"total": 9
}
The request returns a list of inbound PSTN rates for calls.
GET | /calls/rates/inbound/pstn |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Download CSV of Inbound PSTN Rates
The following
GET
request returns inbound PSTN rates for a partner in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/inbound/pstn/csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV of all inbound PSTN rates matching the request criteria.
GET | /calls/rates/inbound/pstn/csv |
This request is enabled for Field Filtering.
Get Inbound VoIP Rates
The following
GET
request returns inbound VoIP rates for calls, targeted by the conference type.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/inbound/voip/conference' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Rate object.
{
"active": "yes",
"count": 1,
"effective_date": "2018-08-29T00:00:00.000Z",
"has_more": false,
"items": [
{
"billing_increment": "60",
"billing_minimum": "60",
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0"
}
],
"limit": 1000,
"offset": 0,
"pagination": null,
"partner_sid": "99953792-bd20-4ed0-a523-8c22788f15v6",
"rates_plan": {
"name": "voip_conference_in_zero_rate.txt",
"rates_plan_sid": "141e0b1f-ac9b-4347-bd44-cfaef65e6f93"
},
"total": 1
}
The request returns a list of inbound VoIP rates for calls, targeted by the endpoint type.
GET | /calls/rates/inbound/voip/{sub_type} |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
sub_type required |
string | The rate subtype. Values accepted in this field are:
|
Download CSV of Inbound VoIP Rates
The following
GET
request returns inbound VoIP rates for a partner in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/inbound/voip/{sub_type}/csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV of all inbound VoIP rates matching the request criteria.
GET | /calls/rates/inbound/voip/{sub_type}/csv |
This request is enabled for Field Filtering.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
sub_type required |
string | The rate subtype. Values accepted in this field are:
|
Get Outbound PSTN Rates
The following
GET
request returns outbound PSTN rates for calls.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/outbound/pstn?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Rate object.
{
"active": "yes",
"count": 1,
"effective_date": "2019-08-23T00:00:00.000Z",
"has_more": true,
"items": [
{
"billing_increment": "6",
"billing_minimum": "6",
"country_code": "USA",
"country_name": "United States",
"prefix": "1207991",
"price": "0.01"
}
],
"limit": 1,
"offset": 0,
"pagination": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"rates_plan": {
"name": "retail_voice_out-2019-08-16",
"rates_plan_sid": "0428d20f-7869-4cf5-aa5c-f44f99a19515"
},
"total": 110170
}
The request returns a list of outbound PSTN rates for calls.
GET | /calls/rates/outbound/pstn |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Download CSV of Outbound PSTN Rates
The following
GET
request returns outbound PSTN rates for a partner in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/outbound/pstn/csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV of all outbound PSTN rates matching the request criteria.
GET | /calls/rates/outbound/pstn/csv |
This request is enabled for Field Filtering.
Get Outbound VoIP Rates
The following
GET
request returns outbound VoIP rates for calls.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/outbound/voip/conference' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Rate object.
{
"active": "yes",
"count": 1,
"effective_date": "2018-08-29T00:00:00.000Z",
"has_more": false,
"items": [
{
"billing_increment": "60",
"billing_minimum": "60",
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0"
}
],
"limit": 1000,
"offset": 0,
"pagination": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"rates_plan": {
"name": "voip_conference_out_zero_rate.txt",
"rates_plan_sid": "0428d20f-7869-4cf5-aa5c-f44f99a19515"
},
"total": 1
}
The request returns a list of outbound VoIP rates for calls, targeted by endpoint type.
GET | /calls/rates/outbound/voip/{sub_type} |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
sub_type required |
string | The rate subtype. Values accepted in this field are:
|
Download CSV of Outbound VoIP Rates
The following
GET
request returns outbound VoIP rates for a partner in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/calls/rates/outbound/voip/conference/csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV of all outbound PSTN rates matching the request criteria.
GET | /calls/rates/outbound/voip/{sub_type}/csv |
This request is enabled for Field Filtering.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
sub_type required |
string | The rate subtype. Values accepted in this field are:
|
Countries
The Countries API holds data about countries, including universally accepted formats, mobile country codes, dialing prefixes, and more.
Country Object
This section describes the elements of the Country object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Country object:
{
"capital": "Washington D.C.",
"common_name": "United States",
"dialing_prefix": "1",
"domain": "us",
"iso_3166_alpha_2": "US",
"iso_3166_alpha_3": "USA",
"iso_3166_numeric": 840,
"mcc": "310,311,312,313,316",
"official_name": "United States of America",
"region": "Americas",
"subregion": "Northern America"
}
Attribute | Data Type | Description |
---|---|---|
capital read only | string | The capital of the country. |
common_name read only | string | The common name of the country. |
dialing_prefix read only | string | The telephone code of the country. |
domain read only | string | The Internet domain of the country. |
iso_3166_alpha_2 read only | string | The ISO 3166-1 alpha-2 code of the country. |
iso_3166_alpha_3 read only | string | The ISO 3166-1 alpha-3 code of the country. |
iso_3166_numeric read only | integer | The ISO 3166-1 numeric code of the country. |
mcc read only | string | The mobile country code. |
official_name read only | string | The official name of the country. |
region read only | string | The region of the country. |
subregion read only | string | The subregion of the country. |
Get Countries
The following
GET
request returns a list of countries.
curl -X GET \
'https://api.carrierx.com/core/v2/countries?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Country objects.
{
"count": 1,
"has_more": true,
"items": [
{
"capital": "Washington D.C.",
"common_name": "United States",
"dialing_prefix": "1",
"domain": "us",
"iso_3166_alpha_2": "US",
"iso_3166_alpha_3": "USA",
"iso_3166_numeric": 840,
"mcc": "310,311,312,313,316",
"official_name": "United States of America",
"region": "Americas",
"subregion": "Northern America"
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/countries?limit=1&offset=1"
},
"total": 249
}
This request returns a list of countries.
GET | /countries |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Country objects, the partner must have one of the following scopes enabled:
countries.manage
countries.read
Get Country by ISO Code
The following
GET
request returns a country, targeted by ISO code.
curl -X GET \
'https://api.carrierx.com/core/v2/countries/ITA?exclude_fields=common_name' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Country object.
{
"capital": "Rome",
"dialing_prefix": "39",
"domain": "it",
"iso_3166_alpha_2": "IT",
"iso_3166_alpha_3": "ITA",
"iso_3166_numeric": 380,
"mcc": "222",
"official_name": "Italian Republic",
"region": "Europe",
"subregion": "Southern Europe"
}
This request returns the country associated with an ISO 3166-1 alpha-3 code.
GET | /countries/{country_code} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Country object, the partner must have one of the following scopes enabled:
countries.manage
countries.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
country_code required |
string | The ISO 3166-1 alpha-3 code of the country. |
Get Country by IP Address
The following
GET
request returns a country, targeted by IP address.
curl -X GET \
'https://api.carrierx.com/core/v2/countries/ip/2.6.26.2' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Country object.
{
"city": "Bordeaux",
"common_name": "France",
"iso_3166_alpha_2": "FR",
"region": "Nouvelle-Aquitaine",
"state": null
}
This request returns the country associated with the IP address.
GET | /countries/ip/{ip_address} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Country object, the partner must have one of the following scopes enabled:
countries.manage
&lookup.ip_addresses.read
countries.read
&lookup.ip_addresses.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
ip_address required |
string | The IPv4 address. |
Endpoints
An endpoint represents a device that can receive voice calls. It may be an external SIP device, such as an Asterisk server or SIP PBX, or a hosted application that CarrierX runs.
New partners are provided a system_gateway
endpoint, which cannot be modified. This endpoint is a logical representation of the CarrierX switches, and determines the IP addresses where traffic is sent and received.
In call detail records, a call coming into the PSTN would designate the system_gateway
endpoint as the inbound leg. The endpoint being routed to would be listed as the outbound leg. Alternatively, for inbound calls sent to a third-party endpoint, users will need their switch to accept traffic from any of the IPs listed in the system_gateway
endpoint.
Endpoint Object
This section outlines the Endpoint object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample Endpoint object:
{
"addresses": [],
"attributes": {},
"capacity": 0,
"endpoint_sid": "358d56f9-1482-4b3d-85a9-efd29afc6ff2",
"name": "my_conf",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {
"account_sid": "6DcA986G-vcBel19O02iIbYUAawVidvB",
"api_url": "https://api.carrierx.com/conference/v1",
"container_sid": "null",
"login": "sample_conference_775",
"password": "YnAa9s8ixJKi"
},
"transformations": [],
"type": "conference",
"voip_token": null
}
Attribute | Data Type | Description |
---|---|---|
addresses create update | array of objects | The endpoint addresses. Refer to the table below for more information. |
attributes create update | object | The endpoint attributes. Refer to the table below for more information. |
capacity create update | integer | The maximum number of simultaneous inbound and outbound calls. |
endpoint_sid read only | string | The endpoint secure ID. |
name create update | string | The endpoint name. |
out_sip_password create | string | For calls sent to this endpoint and if proxy authentication is required, this password and out_sip_username will be used if no sip_password is set for the Endpoint Address object. |
out_sip_username create | string | For calls sent to this endpoint and if proxy authentication is required, this username and out_sip_password will be used if no sip_username is set for the Endpoint Address object. |
partner read only | object | The Partner object associated with the endpoint. This field is displayed if with_related is set to true when performing the GET queries. |
partner_sid create | string | The secure ID of the partner associated with the endpoint. |
properties create update | object | The endpoint properties. Refer to the table below for more information. |
transformations create update | array of objects | The transformations that apply to the endpoint. Refer to the transformations section for more information. |
type create | string | The type of endpoint. Values accepted in this field are:
|
voip_token read only | string | The endpoint authentication token. |
Endpoint Address Object
Attribute | Data Type | Description |
---|---|---|
direction create update | string | The direction for the address. Values accepted in this field are: inbound , outbound , and any . The default value for this field is any . |
dst_port create update | integer | If specified, this entry is only valid for calls that reach CarrierX on this port. CarrierX listens on port 5060-5069 , and any of these ports may be specified. The default port value is 5060 . |
ip create update | string | The IP address or fully qualified domain name (FQDN) associated with the endpoint. |
location_sid create update | string | The location secure ID. |
port create update | integer | The port. The default port value is 5060 . |
priority create update | integer | The priority of the address. Lower values have higher priority. The default value is 0 . |
sip_password create update | string | For calls sent to this endpoint and if proxy authentication is required, this password and sip_username will be used. This value overrides the out_sip_password value of the Endpoint object. |
sip_username create update | string | For calls sent to this endpoint and if proxy authentication is required, this username and sip_password will be used. This value overrides the out_sip_username value of the Endpoint object. |
transport create update | string | The protocol for the address. Values accepted in this field are: tcp , tls , and udp . The default value for this field is udp . This field applies to the Third Party endpoint. |
Attributes Object
Attribute | Data Type | Description | Applicable Endpoints |
---|---|---|---|
account_sid create update | string | The account secure ID. | Mediator |
api_url create update | string | The URL to the Mediator swagger. This field cannot be modified. | Mediator |
did_group_id create update | string | The DID group ID. | Conference, FlexML |
key create update | string | The attribute key. | Any |
subscriber_sid create update | string | The subscriber secure ID. | Conference, FlexML |
value create update | string | The attribute value. | Any |
Properties Object
Attribute | Data Type | Description |
---|---|---|
account_sid read only | string | The account secure ID. |
api_url read only | string | The URL of the API. |
callback_method create update | string | The callback method used with the Voicemail endpoint. Values accepted in this field are POST and GET . The default value is POST . |
callback_url create update | string | The callback URL used with the Voicemail endpoint. The default value is null . |
container_sid create update | string | The secure ID of the container where recordings will be stored. The default value is null . |
greeting create update | string | The name of the file used as a greeting for the Voicemail endpoint. The default value is null . |
login read only | string | The login for the endpoint. |
max_duration create update | number | The maximum length of the recording in seconds used with the Voicemail endpoint. |
password read only | string | The password for the endpoint. |
Create Endpoint
The following
POST
request creates a Conference endpoint.
curl -X POST \
'https://api.carrierx.com/core/v2/endpoints' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"my_conf", "type":"conference"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Endpoint object.
{
"addresses": [],
"attributes": {},
"capacity": 0,
"endpoint_sid": "358d56f9-1482-4b3d-85a9-efd29afc6ff2",
"name": "my_conf",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {
"account_sid": "6DcA986G-vcBel19O02iIbYUAawVidvB",
"api_url": "https://api.carrierx.com/conference/v1",
"container_sid": "null",
"login": "sample_conference_775",
"password": "YnAa9s8ixJKi"
},
"transformations": [],
"type": "conference",
"voip_token": null
}
The following
POST
request creates a Third Party endpoint.
curl -X POST \
'https://api.carrierx.com/core/v2/endpoints' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"EP_Т_1","addresses": ["ip": "1.1.2.13", "port": "5060"], "type":"third_party"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Endpoint object.
{
"addresses": [
{
"direction": "any",
"ip": "1.1.2.13",
"location_sid": null,
"port": 5060,
"priority": 0,
"sip_password": null,
"sip_username": null,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "473d1623-c615-4b43-ab4f-01cd5491c56b",
"name": "my_third_party",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "third_party",
"voip_token": "0cac0ffe-fed4-4ee3-8212-e50659e28088"
}
This request creates an endpoint.
POST | /endpoints |
For the Mediator, Conference, Conference Playback, and FlexML endpoints, only the name
and capacity
values can be edited after the endpoint has been created. For the Voicemail endpoint, the properties
attributes can be also modified.
Required Scopes
To create an Endpoint object, the partner must have one of the following scopes enabled:
endpoints.manage
endpoints.create
Body Arguments
JSON representation of the fields and values of the Endpoint object to be created.
A required field to create an endpoint is type
, for the third-party endpoint the required fields are ip
and type
. If no value for port
is specified, the value for port
will be assigned as 5060
.
Refer to this table to view all fields that appear in the Endpoint object.
Get Endpoints
The following
GET
request returns endpoints matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/endpoints?filter=addresses.ip+eq+"1.1.2.13"' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Endpoint objects.
{
"count": 2,
"has_more": false,
"items": [
{
"addresses": [
{
"direction": "any",
"ip": "1.1.2.13",
"location_sid": null,
"port": 5060,
"priority": 0,
"sip_password": null,
"sip_username": null,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "1a34c5e9-3a09-4de5-b553-5f6a9ef202ac",
"name": "EP_\u0422_1",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "third_party",
"voip_token": "2c95517b-a5e8-4415-b471-cdd81d5a6dcb"
},
{
"addresses": [
{
"direction": "any",
"ip": "1.1.2.13",
"location_sid": null,
"port": 5060,
"priority": 0,
"sip_password": null,
"sip_username": null,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "473d1623-c615-4b43-ab4f-01cd5491c56b",
"name": "my_third_party",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "third_party",
"voip_token": "0cac0ffe-fed4-4ee3-8212-e50659e28088"
}
],
"limit": 1000,
"offset": 0,
"pagination": {},
"total": 2
}
This request returns a list of endpoints.
GET | /endpoints |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Endpoint objects, the partner must have one of the following scopes enabled:
endpoints.manage
endpoints.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the endpoint should be shown. Values accepted in this field are true and false . The default value is false . |
Get Endpoint by SID
The following
GET
request returns an endpoint, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/endpoints/473d1623-c615-4b43-ab4f-01cd5491c56b' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Endpoint object.
{
"addresses": [
{
"direction": "any",
"ip": "1.1.2.13",
"location_sid": null,
"port": 5060,
"priority": 0,
"sip_password": null,
"sip_username": null,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "473d1623-c615-4b43-ab4f-01cd5491c56b",
"name": "my_third_party",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "third_party",
"voip_token": "0cac0ffe-fed4-4ee3-8212-e50659e28088"
}
This request returns data for an endpoint, targeted by secure ID.
GET | /endpoints/{endpoint_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about an Endpoint object, the partner must have one of the following scopes enabled:
endpoints.manage
endpoints.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
endpoint_sid required |
string | The endpoint secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the endpoint should be shown. Values accepted in this field are true and false . The default value is false . |
Update Endpoint
The following
PATCH
request updates the Endpoint object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/endpoints/00bf8b25-1e20-4f80-8529-8448df32d71a' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"my_third_party_ep"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Endpoint object.
{
"addresses": [
{
"direction": "any",
"ip": "1.1.2.13",
"location_sid": null,
"port": 5060,
"priority": 0,
"sip_password": null,
"sip_username": null,
"transport": "udp"
}
],
"attributes": {},
"capacity": 0,
"endpoint_sid": "1a34c5e9-3a09-4de5-b553-5f6a9ef202ac",
"name": "my_third_party_ep",
"out_sip_password": null,
"out_sip_username": null,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"properties": {},
"transformations": [],
"type": "third_party",
"voip_token": "2c95517b-a5e8-4415-b471-cdd81d5a6dcb"
}
This request updates an endpoint, targeted by secure ID.
PATCH | /endpoints/{endpoint_sid} |
PUT | /endpoints/{endpoint_sid} |
An Endpoint object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The endpoint secure ID is passed in the query URL, and the values to be modified are passed in the request body.The Endpoint object also contains nested Addresses, Attributes, Properties, and Transformations objects. Refer to this section to learn how nested objects can be updated using the
PATCH
request. -
A
PUT
request can be used to update an entire Endpoint object. The endpoint secure ID is passed in the query URL, and the entire Endpoint object is passed in the request body.
Required Scopes
To update an Endpoint object, the partner must have one of the following scopes enabled:
endpoints.manage
endpoints.update
Path Arguments
Parameter | Data Type | Description |
---|---|---|
endpoint_sid required |
string | The endpoint secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
nested_objects | string | Determines if the nested objects fields and values should be replaced. Value accepted in this field is replace . |
Body Arguments
JSON representation of the fields and values to be updated.
Refer to this table to view all fields that appear in the Endpoint object.
Delete Endpoint
The following
DELETE
request deletes an endpoint, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/endpoints/1a34c5e9-3a09-4de5-b553-5f6a9ef202ac' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes an endpoint, targeted by secure ID, from a partner account.
DELETE | /endpoints/{endpoint_sid} |
Required Scopes
To delete an Endpoint object, the partner must have one of the following scopes enabled:
endpoints.manage
endpoints.delete
Path Arguments
Parameter | Data Type | Description |
---|---|---|
endpoint_sid required |
string | The secure ID of the endpoint to be removed. |
Invoices
An Invoice object is automatically created when a new partner is added to the system. One invoice exists for each partner, and is updated when new charges occur.
Invoice Object
This section describes the elements of the Invoice object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Invoice object:
{
"amount": "0.38",
"amount_due": "0",
"amount_tax": "0.32",
"balance_forward": "-0.45",
"balance_previous": "-351.91",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"date_charge_expected": "2019-01-19T23:59:59.000Z",
"date_charged": null,
"date_created": "2018-12-19T23:30:01.000Z",
"date_issued": null,
"display_id": "004",
"invoice_items": [
{
"amount": "0.37",
"country_code": "USA",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"direction": "inbound",
"type": "toll",
"usage": 8880
}
],
"invoice_sid": "4169705e-4284-482f-8e72-e962a8aaad9d",
"paid": false,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"pay_items": [],
"status": "open",
"tax_items": [
{
"amount": "0.32",
"jurisdiction": "federal",
"type": "fed_universal_service_fund"
}
]
}
Attribute | Data Type | Description |
---|---|---|
amount read only | number | The amount on the invoice. This is not necessarily due at this time. |
amount_due read only | number | The amount due. |
amount_tax read only | number | The tax amount due. |
balance_forward read only | number | The balance that will be used as balance_previous for the next invoice. |
balance_previous read only | number | The previous balance on the invoice. |
date_billing_period_end read only | string | The date and time when the billing period ends. |
date_billing_period_start read only | string | The date and time when the billing period begins. |
date_charge_expected read only | string | The date and time when the invoice will be charged. |
date_charged read only | string | The date and time when the invoice was charged. |
date_created read only | string | The date and time when the invoice was created. |
date_issued read only | string | The date and time when the invoice was issued. |
display_id read only | string | The ID on the rendered invoice. |
invoice_items read only | array | The details about each of the invoice items. Refer to the table below for more information. |
invoice_sid read only | string | The invoice secure ID. |
paid read only | boolean | Shows if the invoice has been paid. Values accepted in this field are: true and false . |
partner read only | object | The Partner object associated with the invoice. This field is displayed if with_related is set to true when performing the GET queries. |
partner_sid read only | string | The secure ID of the partner associated with the invoice. |
pay_items read only | array of objects | The payments made while the invoice was open. Refer to the table below for more information. |
status read only | string | The invoice status. Values accepted in this field are:
|
tax_items read only | array of objects | The tax items details. Refer to the table below for more information. |
Invoice Item Object
Attribute | Data Type | Description |
---|---|---|
amount read only | number | The invoice item price total. |
country_code read only | string | The ISO 3166-1 alpha-3 code of the service type associated with this invoice item. |
date_billing_period_end read only | string | The date and time when this item billing period ended. |
date_billing_period_start read only | string | The date and time when this item billing period started. |
direction read only | string | The direction of the call or SMS/MMS, either inbound or outbound . |
type read only | string | The type of call or SMS/MMS. Values accepted in this field are:
|
usage read only | integer | The number of times the item was used. |
Invoice Pay Item Object
Attribute | Data Type | Description |
---|---|---|
amount read only | number | The amount of payment. |
billing_method read only | object | The billing method that was used for the payment. |
check_number read only | string | The check number that was used for the payment. |
date_charged read only | string | The date and time when the payment was made. |
pay_item_sid read only | string | The pay item secure ID. |
status read only | string | The invoice payment status. Values accepted in this field are:
|
type read only | string | The invoice payment type. Values accepted in this field are:
|
Invoice Tax Item Object
Attribute | Data Type | Description |
---|---|---|
amount read only | number | The amount of taxes. |
jurisdiction read only | string | The invoice tax jurisdiction. Values accepted in this field are: county , county_local , federal , local , other , state , state_county_local , and unincorporated . |
type read only | string | The invoice tax type. Values accepted in this field are: business_and_occupation_tax , ca_teleconnect_fund , carrier_gross_receipts , district_tax , district_tax_residential , e911_tax , e911_tax_business , e911_tax_pbx_trunk_line , e911_tax_residential , excise_tax , fed_telecommunications_relay_service , fed_universal_service_fund , fed_usf_a_school , federal_excise_tax , franchise_tax , license_tax , license_tax_business , ny_mctd_184a , ny_mctd_186c , optional_telecommunications_infrastructure_maintenance_fee , puc_fee , sales_tax , sales_tax_business , sales_web_hosting , service_tax , special_tax , state_deaf_and_disabled_fund , state_high_cost_fund , state_poison_control_fund , state_universal_service_fund , statutory_gross_receipts , surcharge , telecom_relay_surcharge , telecommunications_assistance_service_fund , telecommunications_infrastructure_fund , telecommunications_infrastructure_maintenance_fee , transit_tax , trs_business , universal_lifeline_telephone_service_charge , universal_service_fund_access_trunk_line , universal_service_fund_business_line , utility_users_tax , and utility_users_tax_business . |
Get Invoices
The following
GET
request returns invoices matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/invoices?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Invoice objects.
{
"count": 1,
"has_more": true,
"items": [
{
"amount": "0.38",
"amount_due": "0",
"amount_tax": "0.32",
"balance_forward": "-0.45",
"balance_previous": "-351.91",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"date_charge_expected": "2019-01-19T23:59:59.000Z",
"date_charged": null,
"date_created": "2018-12-19T23:30:01.000Z",
"date_issued": null,
"display_id": "004",
"invoice_items": [
{
"amount": "0.37",
"country_code": "USA",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"direction": "inbound",
"type": "toll",
"usage": 8880
},
{
"amount": "0.01",
"country_code": "USA",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"direction": "outbound",
"type": "toll",
"usage": 60
}
],
"invoice_sid": "4169705e-4284-482f-8e72-e962a8aaad9d",
"paid": false,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"pay_items": [],
"status": "open",
"tax_items": [
{
"amount": "0.32",
"jurisdiction": "federal",
"type": "fed_universal_service_fund"
}
]
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/invoices?limit=1&offset=1"
},
"total": 4
}
This request returns a list of invoices.
GET | /invoices |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Invoice objects, the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the invoice should be shown. Values accepted in this field are true and false . The default value is false . |
Get Invoice by SID
The following
GET
request returns an invoice, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/invoices/4169705e-4284-482f-8e72-e962a8aaad9d' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Invoice object.
{
"amount": "0.38",
"amount_due": "0",
"amount_tax": "0.32",
"balance_forward": "-0.45",
"balance_previous": "-351.91",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"date_charge_expected": "2019-01-19T23:59:59.000Z",
"date_charged": null,
"date_created": "2018-12-19T23:30:01.000Z",
"date_issued": null,
"display_id": "004",
"invoice_items": [
{
"amount": "0.37",
"country_code": "USA",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"direction": "inbound",
"type": "toll",
"usage": 8880
},
{
"amount": "0.01",
"country_code": "USA",
"date_billing_period_end": "2019-01-19T23:59:59.000Z",
"date_billing_period_start": "2018-12-20T00:00:00.000Z",
"direction": "outbound",
"type": "toll",
"usage": 60
}
],
"invoice_sid": "4169705e-4284-482f-8e72-e962a8aaad9d",
"paid": false,
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"pay_items": [],
"status": "open",
"tax_items": [
{
"amount": "0.32",
"jurisdiction": "federal",
"type": "fed_universal_service_fund"
}
]
}
This request returns data for an invoice, targeted by secure ID.
GET | /invoices/{invoice_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about an Invoice object, the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
invoice_sid required |
string | The invoice secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the invoice should be shown. Values accepted in this field are true and false . The default value is false . |
Get Invoice HTML Report by SID
The following
GET
request returns an invoice, targeted by secure ID, in HTML format.
curl -X GET \
'https://api.carrierx.com/core/v2/invoices/6765ca8a-91c7-4241-98c6-42803de77e74.html' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with the invoice in HTML format.
This request returns data for a particular invoice in HTML format. If the request succeeds, there will be a download link.
GET | /invoices/{invoice_sid}.html |
Required Scopes
To get an invoice in HTML format the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
invoice_sid required |
string | The invoice secure ID. |
Send Invoice HTML Report by SID to Email Addresses
The following
POST
request sends an invoice, targeted by secure ID, in HTML format to the email addresses specified in the request.
curl -X POST \
'https://api.carrierx.com/core/v2/invoices/6765ca8a-91c7-4241-98c6-42803de77e74.html/emails' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary 'emails=john.doe%40mail.com' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code and will send the invoice in HTML format to an email address.
This request sends this particular invoice in HTML format to the email addresses specified in the request.
POST | /invoices/{invoice_sid}.html/emails |
Required Scopes
To send an invoice in HTML format to an email address the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
invoice_sid required |
string | The invoice secure ID. |
Body Arguments
The body contains the list of the email addresses in the URL-encoded format this invoice must be sent to. If several email addresses are passed, they must be separated with commas also in URL-encoded format.
Get Invoice PDF Report by SID
The following
GET
request returns an invoice, targeted by secure ID, in PDF format.
curl -X GET \
'https://api.carrierx.com/core/v2/invoices/6765ca8a-91c7-4241-98c6-42803de77e74.pdf' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with the invoice in PDF format.
This request returns data for a particular invoice in PDF format. If the request succeeds, there will be a download link.
GET | /invoices/{invoice_sid}.pdf |
Required Scopes
To get an invoice in PDF format the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
invoice_sid required |
string | The invoice secure ID. |
Send Invoice PDF Report by SID to Email Addresses
The following
POST
request sends an invoice, targeted by secure ID, in PDF format to the email addresses specified in the request.
curl -X POST \
'https://api.carrierx.com/core/v2/invoices/6765ca8a-91c7-4241-98c6-42803de77e74.pdf/emails' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary 'emails=john.doe%40mail.com' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code and will send the invoice in PDF format to an email address.
This request sends this particular invoice in PDF format to the email addresses specified in the request.
POST | /invoices/{invoice_sid}.pdf/emails |
Required Scopes
To send an invoice in PDF format to an email address the partner must have one of the following scopes enabled:
invoices.manage
invoices.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
invoice_sid required |
string | The invoice secure ID. |
Body Arguments
The body contains the list of the email addresses in the URL-encoded format this invoice must be sent to. If several email addresses are passed, they must be separated with commas also in URL-encoded format.
Lookup
The Lookup API returns data regarding phone numbers and IP addresses.
Phonenumber Lookup Object
Sample Phonenumber Lookup object
{
"country_code": "USA",
"details": {
"carrier": {
"mcc": null,
"mnc": null,
"name": null,
"type": null
},
"cnam": {
"name": "",
"type": null
},
"lrn": "6466531111"
},
"e164_format": "+15162065319",
"in_country_format": "(516) 206-5319",
"international_format": "+1 516-206-5319",
"phonenumber": "15162065319",
"state": "NY"
}
This section outlines the Phonenumber Lookup object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Attribute | Data Type | Description |
---|---|---|
country_code read only | string | The ISO 3166-1 alpha-3 code of the country. |
details read only | object | The detail object contains cnam , lrn , and carrier data. Refer to the table below for more information. |
e164_format read only | string | The DID in E.164 format. |
in_country_format read only | string | The DID in national format. |
international_format read only | string | The DID in international format. |
phonenumber read only | string | The phone number. |
state read only | string | Geographic area codes of this DID (for the US DIDs only). |
Phonenumber Lookup Detail Object
Attribute | Data Type | Description |
---|---|---|
carrier read only | object | The carrier information for the phone number. Refer to the carrier table for more information. |
cnam read only | object | The cnam information for the phone number. Refer to the cnam table for more information. |
lrn read only | string | The location routing number. |
Phonenumber Lookup Detail Carrier Object
Attribute | Data Type | Description |
---|---|---|
mcc read only | integer | The mobile country code. |
mnc read only | integer | The mobile network code. |
name read only | string | The carrier name. |
type read only | string | The type of the DID. Values accepted in this field are: landline , mobile , and unknown . |
Phonenumber Lookup Detail Cnam Object
Attribute | Data Type | Description |
---|---|---|
name read only | string | The caller name. |
type read only | string | The caller type. |
Get Details for Phone Number
The following
GET
request returns phone number details.
curl -X GET \
'https://api.carrierx.com/core/v2/lookup/dids/15162065319?cnam=true&lrn=true&carrier=true' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with phone number details.
{
"country_code": "USA",
"details": {
"carrier": {
"mcc": null,
"mnc": null,
"name": null,
"type": null
},
"cnam": {
"name": "",
"type": null
},
"lrn": "6466531111"
},
"e164_format": "+15162065319",
"in_country_format": "(516) 206-5319",
"international_format": "+1 516-206-5319",
"phonenumber": "15162065319",
"state": "NY"
}
This request returns data for the specified phone number.
GET | /lookup/dids/{phonenumber} |
This request is enabled for Field Filtering.
Required Scopes
To query information for phone numbers the partner must have the following scope enabled:
lookup.dids.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
phonenumber required |
string | The phone number to look up. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
carrier | boolean | Determines if the carrier information should be shown. Values accepted in this field are true and false . |
cnam | boolean | Determines if the cnam information should be shown. Values accepted in this field are true and false . |
cnam_ttl | integer | Overrides the default CNAM cache TTL. |
country_code | string | The ISO 3166-1 alpha-3 code of the country for this phone number. |
guess | string | Optional recommendation whether this number is domestic or not. Values accepted in this field are:
north_america . |
lrn | boolean | Determines if the location routing number should be shown. Values accepted in this field are true and false . |
Phone Number Lookup Logic
CarrierX performs the phone number lookup based on the following logic:
- If the queried number is prefixed with
+
, the system will check for a full E.164 match only.- If there is a match, the system will return this match.
- Otherwise, it will return the
400
status code.
- When the
country_code
query parameter is passed, the system checks if the number passed could be valid in the country specified in the request (either in-country format or by international prefix).- If the number is valid against the specified country, the system returns this value immediately, no further checks are made.
- If no
country_code
query parameter was passed or if the match did not succeed, the system will check if it is both a valid NANP number (10 digit number + valid NPA) and if it is a valid E.164 number (prefix matches a valid country code).- If the number is only a valid NANP number or only a valid E.164 number, this match is returned.
- Otherwise, the system will make a guess. The
guess
query parameter parameter helps choose between the NANP match and the E.164 match. Default value ofnorth_america
will prefer the NANP number.
If the number could not be matched with any available valid phone numbers, the system will return the 400
error status code. If the number format is invalid, the system will return the 404
error status code.
IP2Location Object
Sample IP2Location object
{
"city": "Mountain View",
"common_name": "United States",
"iso_3166_alpha_2": "US",
"iso_3166_alpha_3": "USA",
"region": null,
"state": "CA"
}
This section outlines the IP2Location object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Attribute | Data Type | Description |
---|---|---|
city read only | string | The IP address city. |
common_name read only | string | The common name of the country the IP address belongs to. |
iso_3166_alpha_2 read only | string | The ISO 3166-1 alpha-2 two-letter code of the country. |
iso_3166_alpha_3 read only | string | The ISO 3166-1 alpha-3 three-letter code of the country. |
region read only | string | The IP address region. |
state read only | string | The IP address state. |
Get Details for IP Address
The following
GET
request returns IP address details.
curl -X GET \
'https://api.carrierx.com/core/v2/lookup/ip_addresses/8.8.8.8' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with the IP address details.
{
"city": "Mountain View",
"common_name": "United States",
"iso_3166_alpha_2": "US",
"iso_3166_alpha_3": "USA",
"region": null,
"state": "CA"
}
This request returns data for the specified IP address.
GET | /lookup/lookup/ip_addresses/{ip_address} |
This request is enabled for Field Filtering.
Required Scopes
To query information for IP addresses the partner must have the following scope enabled:
lookup.ip_addresses.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
ip_address required |
string | The IP address to look up. |
OAuth
OAuth tokens are used in API requests and allow to manage all other Core API objects for which the partner has the appropriate scopes set.
OAuth tokens with the token_type
set to bearer
are passed in request headers (e.g., -H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
) and are used as credentials for the authentication with the API.
The partners with appropriate scopes can generate OAuth tokens both for themselves and for sub-partners, targeting the sub-partners by their secure IDs.
OAuth Token Object
This section outlines the OAuth Token object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample OAuth Token object:
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
Attribute | Data Type | Description |
---|---|---|
access_token read only | string | The access token value to be used in authentication. |
client_id read only | string | The client ID. This is a unique string representing the registration information provided to the client upon request. |
client_secret read only | string | The client secret string. This is a unique string representing the registration information provided to the client upon request. This field is hidden and not returned in the response. |
date_created read only | string | The date and time when the token was created. |
date_expiration_access_token create update | string | The date and time when the token expires. |
date_expiration_refresh_token create update | string | The date and time when the refresh token expires. |
date_last_accessed read only | string | The date and time when the token was last accessed. |
ip_last_accessed read only | string | The IP address from which the token was last accessed. |
name create update | string | The friendly name used to identify the token. |
partner read only | object | The Partner object associated with the OAuth token. This field is displayed if with_related is set to true when performing the GET queries. |
partner_sid read only | string | The secure ID of the partner associated with the OAuth token. |
refresh_token read only | string | The refresh token value to create a new token. |
scopes create update | string | The scope of the access request available for this specific token. Any values in scopes must exist in available_scopes on the Partner object. Refer to the available_scopes table for a comprehensive list of scopes that can be assigned to a partner. If this field is not specified when creating an OAuth Token object, all available_scopes from the Partner object are added. |
token_sid read only | string | The token secure ID. |
token_type read only | string | The token type. |
Revoke OAuth Token
The following
POST
request terminates an OAuth token, targeted by the partner client ID and client secret.
curl -X POST \
'https://api.carrierx.com/core/v2/oauth/revoke' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary 'client_id=carrierx&client_secret=50339091-14fe-442c-bbcb-83b674dbf90c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request terminates the session of the partner targeted by cient ID and client secret.
POST | /oauth/revoke |
Required Scopes
To revoke an OAuth token the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
Body Arguments
Parameter | Data Type | Description |
---|---|---|
token | string | The access token that will be revoked. If no token is specified, the token that is used for the authorization in the current request will be revoked. |
client_id required |
string | The client ID. This is a unique string representing the registration information provided to the client upon request. |
client_secret required |
string | The client secret string. This is a unique string representing the registration information provided to the client upon request. |
token_type | string | The token type. |
Generate OAuth Bearer Token
The following
POST
request generates an OAuth bearer token for a partner.
curl -X POST \
'https://api.carrierx.com/core/v2/oauth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary 'grant_type=authorization_code&client_id=carrierx&client_secret=50339091-14fe-442c-bbcb-83b674dbf90c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the OAuth Token object.
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
This request generates a token for the partner upon request.
POST | /oauth/token |
Required Scopes
To generate an OAuth token the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
oauth.create
Body Arguments
Parameter | Data Type | Description |
---|---|---|
access_token_expires_in | integer | The access token expiration in seconds. |
client_id required |
string | The client ID. This is a unique string representing the registration information provided to the client upon request. |
client_secret required |
string | The client secret string. This is a unique string representing the registration information provided to the client upon request. |
grant_type required |
string | The grant type for the token. Values accepted in this field are:
|
name | string | The friendly name used to identify the token. |
password | string | The password of the partner (in the case of grant_type = password ). |
refresh_token | string | The refresh token (in the case of grant_type = refresh_token ). |
refresh_token_expires_in | integer | The refresh token expiration in seconds. |
refresh_token_type | string | The type of request (in the case of grant_type = refresh_token ). Values accepted in this field are:
|
scope | string | The OAuth token visibility scope. Values accepted in this field are:
|
username | string | The login of the partner (in the case of grant_type = password ). |
Generate OAuth Bearer Token for Sub-partner
The following
POST
request generates an OAuth bearer token for a sub-partner.
curl -X POST \
'https://api.carrierx.com/core/v2/oauth/token/cee93bf3-5746-43fe-a1a2-822c05fef687' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary 'client_id=carrierx&client_secret=50339091-14fe-442c-bbcb-83b674dbf90c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the OAuth Token object.
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
This request generates the token for a sub-partner, targeted by secure ID.
POST | /oauth/token/{partner_sid} |
Required Scopes
To generate an OAuth token for a sub-partner the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
oauth.create
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The sub-partner secure ID. |
Body Arguments
Parameter | Data Type | Description |
---|---|---|
access_token_expires_in | integer | The access token expiration in seconds. |
client_id required |
string | The client ID. This is a unique string representing the registration information provided to the client upon request. |
client_secret required |
string | The client secret string. This is a unique string representing the registration information provided to the client upon request. |
name | string | The friendly name used to identify the token. |
refresh_token_expires_in | integer | The refresh token expiration in seconds. |
scope | string | The OAuth token visibility scope. Values accepted in this field are:
|
Get All Active OAuth Tokens
The following
GET
request returns all active tokens for the logged-in partner.
curl -X GET \
'https://api.carrierx.com/core/v2/oauth/tokens' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with token data.
{
"count": 1,
"has_more": false,
"items": [
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
],
"limit": 10,
"offset": 0,
"pagination": {},
"total": null
}
This request returns the tokens of the logged-in partner.
GET | /oauth/token |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about OAuth tokens the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
oauth.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the OAuth token should be shown. Values accepted in this field are true and false . The default value is false . |
Get OAuth Token by SID
The following
GET
request returns an OAuth token, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/oauth/tokens/b3f45e4d-7d46-467b-9724-272f57ac420e' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with token data.
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
A successful request will return a
200
response code with a serialized copy of the OAuth Token object.
This request returns data for an OAuth token, targeted by secure ID.
GET | /oauth/token/{token_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about an OAuth token the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
oauth.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
token_sid required |
string | The OAuth token secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the OAuth token should be shown. Values accepted in this field are true and false . The default value is false . |
Update OAuth Token
The following
PATCH
request updates the OAuth Token object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/oauth/tokens/b3f45e4d-7d46-467b-9724-272f57ac420e' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"new_test_token"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated OAuth Token object.
{
"access_token": "8bfd6c6d-6291-488a-bed1-8784c195ce87",
"client_id": "carrierx",
"date_created": "2020-09-11T13:46:42.211Z",
"date_expiration_access_token": "2120-08-18T13:46:42.169Z",
"date_expiration_refresh_token": "2120-08-18T13:46:42.169Z",
"date_last_accessed": null,
"ip_last_accessed": null,
"name": "new_test_token",
"partner_sid": "cee93bf3-5746-43fe-a1a2-822c05fef687",
"refresh_token": "ed07dcd6-dfc5-4d7b-b7b4-891441371b3e",
"scopes": [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"token_sid": "b3f45e4d-7d46-467b-9724-272f57ac420e",
"token_type": "bearer"
}
This request updates an OAuth token, targeted by secure ID.
PATCH | /oauth/tokens/{token_sid} |
PUT | /oauth/tokens/{token_sid} |
An OAuth Token object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The OAuth token secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire OAuth Token object. The OAuth token secure ID is passed in the query URL, and the entire OAuth Token object is passed in the request body.
Required Scopes
To update an OAuth Token object, the partner must have one of the following scopes enabled:
oauth.manage_all_tokens
oauth.manage
oauth.update
To update an OAuth Token object scope
parameter, the partner must additionally have the oauth.allow_token_scope_update
scope enabled.
Path Arguments
Parameter | Data Type | Description |
---|---|---|
token_sid required |
string | The OAuth token secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
date_expiration_access_token
date_expiration_refresh_token
name
scopes
Refer to this table to view all fields that appear in the OAuth Token object.
Get Current Partner
The following
GET
request returns the currently logged-in partner.
curl -X GET \
'https://api.carrierx.com/core/v2/oauth/whoami' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with data about the currently logged-in partner.
{
"acls": [],
"address1": null,
"address2": null,
"attributes": {},
"available_scopes" : [
"accesscontrol.manage",
"endpoints.manage",
"oauth.manage",
"partners.manage",
"phonenumber.manage",
"push.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage"
],
"balance": "351.53",
"billing_email": "jsmith@freeconferencecall.com",
"callbacks": {},
"charge_at": "20",
"city": null,
"company_name": "CarrierX",
"country_code": "USA",
"date_created": "2018-09-20T21:34:55.000Z",
"display_id": "CX90576809",
"login": "johnsmith",
"name": "John Smith",
"owner_email": "jsmith@freeconferencecall.com",
"parent_assigned_acls": [],
"parent_sid": "ac38746e-d2e2-4cd6-29ae-b6658f0728b6",
"partner_sid": "ed437907-002d-4ecc-aa3a-efdf5e50dba0",
"payment_type": "prepay",
"phonenumber": "5162065319",
"prepay_amount": "100",
"spending_limit": "0",
"state": null,
"status": "active",
"system_attributes": {},
"tech_email": "jsmith@freeconferencecall.com",
"transformations": [],
"zip": "90804"
}
This request returns the currently logged-in partner.
GET | /oauth/whoami |
Refer to the Partner Object for a full list of the fields that appear in the Partner object.
Partners
A partner is an individual or company with CarrierX credentials. Partners can have sub-partners, each of which is governed by its own set of credentials.
Partner Object
This section goes over the parts of the Partner object. These fields and values make up the JSON object that gets returned with successful requests.
Sample Partner object:
{
"acls": [],
"address1": null,
"address2": null,
"attributes": {},
"balance": "5",
"billing_email": null,
"callbacks": {
"sms":"https://example.com/sms-callback-url"
},
"charge_at": null,
"city": null,
"company_name": "ABC",
"country_code": "USA",
"date_created": "2019-01-22T17:16:30.844Z",
"display_id": "CX57121051",
"login": "john",
"name": "John Smith",
"owner_email": null,
"parent_assigned_acls": [],
"parent_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"partner_sid": "aeda835c-6627-4f4c-ac73-9edcae95640b",
"payment_type": "postpay",
"phonenumber": "180045012323",
"prepay_amount": null,
"spending_limit": "100",
"state": "",
"status": "unverified",
"tech_email": null,
"transformations": [],
"zip": "90804"
}
Attribute | Data Type | Description |
---|---|---|
acls create update | array of objects | The Access Control List, as defined on the Partner object directly. This holds a list of rules that determine the scope of data to be checked in SIP calls. This field is assigned on the Partner object itself and cannot be assigned by a parent partner. Refer to the table below for more information. |
address1 create update | string | The partner address. |
address2 create update | string | The partner address second field. |
attributes create update | object | The partner attributes. |
available_scopes create update | array | The abilities that this specific partner has. This field is for internal use only. Refer to the table below for the complete list of available scopes. |
balance read only | number | The current balance of the partner. |
billing_email create update | string | The partner email address used for billing purposes. If this field is empty, the owner_email is used. |
callbacks create update | object | The callback URLs. The allowed callback URL types include:
|
charge_at create update | number | The balance value when the prepay account will be charged. |
city create update | string | The partner city. |
company_name create update | string | The partner company name. |
country_code create update | string | The partner country ISO 3166-1 alpha-3 code. |
date_created read only | string | The date and time when the partner was created. |
display_id read only | string | The partner unique ID. |
login admin create updatecreate | string | The login for web and Core API. |
name create update | string | The partner name. |
owner_email create update | string | The partner primary email address. |
parent_assigned_acls create update | array of objects | The Access Control List, as defined by a parent partner. This holds a list of rules that determine the scope of data to be checked in SIP calls. This field is assigned by the parent partner only. Refer to the table below for more information. |
parent_sid create update | string | The parent partner secure ID. |
partner_sid read only | string | The partner secure ID. |
password create update | string | The partner password for web and Core API. This field is required to create a partner, but is hidden in the serialized copy of the Partner objects received in responses to the requests for the security reasons. |
payment_type admin create updatecreate | string | The type of payment. Values accepted in this field are prepay and postpay . Note that the default value is prepay . To change the payment_type , contact technical support at support@carrierx.com. |
phonenumber create update | string | The partner contact phone number. |
prepay_amount create update | number | The charge amount for prepay customers. |
spending_limit admin create updatecreate | number | The maximum amount that a partner is allowed to spend on the account. |
state create update | string | The partner state; two-letter abbreviation code. |
status read only | string | The status of the partner. Values accepted in this field are:
|
tech_email create update | string | The partner email address used for technical purposes. If this field is empty, the owner_email is used. |
transformations create update | array of objects | The list of transformations that a call will undergo. Refer to the transformations section for more information. |
zip create update | string | The partner zip code. |
Partner Available Scopes
Value | Description |
---|---|
accesscontrol.create | The partner can create Access Control objects. |
accesscontrol.delete | The partner can delete Access Control objects. |
accesscontrol.manage | The partner can create, read, update, and delete Access Control objects. |
accesscontrol.read | The partner can read Access Control objects. |
accesscontrol.update | The partner can update Access Control objects. |
admin.create admin | The partner can create admin actions. |
admin.delete admin | The partner can delete admin actions. |
admin.manage admin | The partner can create, read, update, and delete admin actions. |
admin.read admin | The partner can read admin actions. |
admin.update admin | The partner can update admin actions. |
app.create admin | The partner can create Apps object actions. |
app.delete admin | The partner can delete Apps object actions. |
app.manage admin | The partner can create, read, update, and delete Apps object actions. |
app.read admin | The partner can read Apps object actions. |
app.read_descendant admin | The partner can view Apps object detailed records for the inherited partner. |
app.update admin | The partner can update Apps object actions. |
batch.create | The partner can create Batch actions. |
batch.delete | The partner can delete Batch actions. |
batch.manage | The partner can create, read, update, and delete Batch actions. |
batch.read | The partner can read Batch actions. |
batch.update | The partner can update Batch actions. |
calls.create | The partner can create Call objects. |
calls.delete | The partner can delete Call objects. |
calls.manage | The partner can create, read, update, and delete Call objects. |
calls.read | The partner can read Call objects. |
calls.read_descendant | The partner can view Call object detailed records for the inherited partners. |
calls.update | The partner can update Call objects. |
countries.create | The partner can create Country objects. |
countries.delete | The partner can delete Country objects. |
countries.manage | The partner can create, read, update, and delete Country objects. |
countries.read | The partner can read Country objects. |
countries.update | The partner can update Country objects. |
endpoints.create | The partner can create Endpoint objects. |
endpoints.delete | The partner can delete Endpoint objects. |
endpoints.manage | The partner can create, read, update, and delete Endpoint objects. |
endpoints.read | The partner can read Endpoint objects. |
endpoints.update | The partner can update Endpoint objects. |
invoices.adjustments | The partner can include the adjustments field when creating an Invoice object. |
invoices.chargebacks | The partner can include the chargebacks field when creating an Invoice object. |
invoices.create | The partner can create Invoice objects. |
invoices.credits | The partner can include the credits field when creating an Invoice object. |
invoices.delete | The partner can delete Invoice objects. |
invoices.immediately_charges | The partner can include the immediate charges field when creating an Invoice object. |
invoices.manage | The partner can create, read, update, and delete Invoice objects. |
invoices.read | The partner can read Invoice objects. |
invoices.refunds | The partner can include the refunds field when creating an Invoice object. |
invoices.update | The partner can update Invoice objects. |
lookup.dids.allow_carrier | The partner can read phone number carriers. |
lookup.dids.allow_cnam | The partner can read phone number cnams. |
lookup.dids.allow_lrn | The partner can read phone number lrns. |
lookup.dids.read | The partner can read phone numbers. |
lookup.ip_addresses.read | The partner can read IP addresses. |
oauth.allow_token_scope_update | The partner can update token.scope field modification. |
oauth.create | The partner can create OAuth Token objects. |
oauth.delete | The partner can delete OAuth Token objects. |
oauth.manage | The partner can create, read, update, and delete OAuth Token objects. |
oauth.manage_all_tokens | If bearer auth is used, allow the partner to create, read, update, and delete tokens. Otherwise, allow the partner to create, read, update, and delete the current token. |
oauth.read | The partner can read OAuth Token objects. |
oauth.update | The partner can update OAuth Token objects. |
partners.billing_method.create | The partner can create partner Billing Method objects. |
partners.billing_method.delete | The partner can delete partner Billing Method objects. |
partners.billing_method.manage | The partner can create, read, update, and delete Billing Method objects. |
partners.billing_method.read | The partner can read partner Billing Method objects. |
partners.billing_method.update | The partner can update partner Billing Method objects. |
partners.create | The partner can create Partner objects. |
partners.delete | The partner can delete Partner objects. |
partners.manage | The partner can create, read, update, and delete Partner objects. |
partners.read | The partner can read Partner objects. |
partners.skip_email_verifications | The partner can change the skip_email_verification field when creating a new Partner object. |
partners.skip_partner_review | The partner can change the skip_partner_review field when creating a new Partner object. |
partners.update | The partner can update Partner objects. |
phonenumber.create | The partner can create (rent) Phone Number objects. |
phonenumber.delete | The partner can delete Phone Number objects. |
phonenumber.emergency.manage | The partner can create, read, update, and delete DID Emergency objects. |
phonenumber.emergency.read | The partner can read DID Emergency objects. |
phonenumber.line_information.manage | The partner can create, read, update, and delete DID Line Information objects. |
phonenumber.line_information.read | The partner can read DID Line Information objects. |
phonenumber.manage | The partner can create, read, update, and delete Phone Number objects. |
phonenumber.read | The partner can read Phone Number objects. |
phonenumber.update | The partner can update Phone Number objects. |
porting.create admin preview | The partner can create Local Routing Number Order objects. |
porting.delete admin preview | The partner can delete Local Routing Number Order objects. |
porting.manage admin preview | The partner can create, read, update, and delete Local Routing Number Order objects. |
porting.read admin preview | The partner can read Local Routing Number Order objects. |
porting.update admin preview | The partner can update Local Routing Number Order objects. |
push.create | The partner can create Push objects. |
push.delete | The partner can delete Push objects. |
push.manage | The partner can create, read, update, and delete Push objects. |
push.read | The partner can read Push objects. |
push.update | The partner can update Push objects. |
rating.create | The partner can create Rating objects. |
rating.delete | The partner can delete Rating objects. |
rating.manage | The partner can create, read, update, and delete Rating objects. |
rating.read | The partner can read Rating objects. |
rating.update | The partner can update Rating objects. |
shortener.allow_domain_mode_proxypass | The partner can set the expired_mode and not_found_mode attributes for the Domain object to proxy_pass . |
shortener.allow_domain_secure_required | The partner can set the secure attribute for the Domain object to required . |
shortener.allow_link_mode_proxypass | The partner can set the mode attribute for the Link object to proxy_pass . |
shortener.create | The partner can create Shortener objects. |
shortener.delete | The partner can delete Shortener objects. |
shortener.manage | The partner can create, read, update, and delete Shortener objects. |
shortener.read | The partner can read Shortener objects. |
shortener.update | The partner can update Shortener objects. |
sms.create | The partner can create SMS objects. |
sms.delete | The partner can delete SMS objects. |
sms.manage | The partner can create, read, update, and delete SMS objects. |
sms.read | The partner can read SMS objects. |
sms.read_descendant | The partner can view SMS object detailed records for the inherited partners. |
sms.update | The partner can update SMS objects. |
storage.allow_container_publish_domain_update | The partner can modify the publish domain for the storage Container object. |
storage.create | The partner can create Storage objects. |
storage.delete | The partner can delete Storage objects. |
storage.manage | The partner can create, read, update, and delete Storage objects. |
storage.read | The partner can read Storage objects. |
storage.update | The partner can update Storage objects. |
system.create admin | The partner can create system actions. |
system.delete admin | The partner can delete system actions. |
system.manage admin | The partner can create, read, update, and delete system actions. |
system.read admin | The partner can read system actions. |
system.update admin | The partner can update system actions. |
trunk_groups.allow_external_handlers_update preview | The partner can modify the external_handlers attribute of the Trunk Group object. |
trunk_groups.create | The partner can create Trunk Group objects. |
trunk_groups.delete | The partner can delete Trunk Group objects. |
trunk_groups.manage | The partner can create, read, update, and delete Trunk Group objects. |
trunk_groups.read | The partner can read Trunk Group objects. |
trunk_groups.trunks.allow_trunk_allow_forward_update | The partner can modify the allow_forward attribute of the Trunk object. |
trunk_groups.trunks.create | The partner can create Trunk objects. |
trunk_groups.trunks.delete | The partner can delete Trunk objects. |
trunk_groups.trunks.manage | The partner can create, read, update, and delete Trunk objects. |
trunk_groups.trunks.read | The partner can read Trunk objects. |
trunk_groups.trunks.update | The partner can update Trunk objects. |
trunk_groups.update | The partner can update Trunk Group objects. |
verification.create | The partner can create Verification objects. |
verification.delete | The partner can delete Verification objects. |
verification.manage | The partner can create, read, update, and delete Verification objects. |
verification.read | The partner can read Verification objects. |
verification.update | The partner can update Verification objects. |
ACL Object
This object is used with acls
and parent_assigned_acls
.
Attribute | Data Type | Description |
---|---|---|
access_control_rules create update | array | The list of Access Control Rule secure IDs. Refer to the Access Control Rule object for more information about Access Control Rules. |
direction create update | string | The direction for the Access Control List. Values accepted in this field are:
|
sms_action_false create update | string | The action to be executed for SMS messages if no Access Control Rules are applied. Values accepted in this field are accept and reject . |
sms_action_true create update | string | The action to be executed for SMS messages if any Access Control Rules are applied. Values accepted in this field are accept and reject . |
voice_action_false create update | string | The action to be executed for calls if no Access Control Rules are applied. Values accepted in this field are:
|
voice_action_true create update | string | The action to be executed for calls if any Access Control Rules are applied. Values accepted in this field are:
|
Create Partner
The following
POST
request creates a partner.
curl -X POST \
'https://api.carrierx.com/core/v2/partners' \
-H 'Content-Type: application/json' \
--data-binary '{"login":"john", "password":"sample_password", "name":"John Smith", "company_name": "ABC", "parent_sid":"", "country_code":"USA", "zip":"90804", "owner_email": "johnsmith@carriex.com", "payment_type": "postpay", "phonenumber": "180045012323", "charge_at": 20, "prepay_amount": "100"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Partner object.
{
"acls": [],
"address1": null,
"address2": null,
"attributes": {},
"available_scopes" : [],
"balance": "5",
"billing_email": null,
"callbacks": {
"sms":"https://example.com/sms-callback-url"
},
"charge_at": null,
"city": null,
"company_name": "ABC",
"country_code": "USA",
"date_created": "2019-01-22T17:16:30.844Z",
"display_id": "CX57121051",
"login": "john",
"name": "John Smith",
"owner_email": null,
"parent_assigned_acls": [],
"parent_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"partner_sid": "aeda835c-6627-4f4c-ac73-9edcae95640b",
"payment_type": "postpay",
"phonenumber": "180045012323",
"prepay_amount": null,
"spending_limit": "100",
"state": "",
"status": "unverified",
"tech_email": null,
"transformations": [],
"zip": "90804"
}
This request creates a partner.
POST | /partners |
When a partner is created, a verification message is sent to the owner_email
, tech_email
, and billing_email
addresses provided. The email addresses will not appear in the Partner object until the link in the email body has been clicked, thereby confirming the email address and allowing the partner to use CarrierX services.
Required Scopes
To create a Partner object, the partner must have one of the following scopes enabled:
partners.manage
partners.create
Body Arguments
JSON representation of the fields and values of the Partner object to be created.
Required fields to create a partner are:
charge_at
company_name
country_code
login
owner_email
password
payment_type
phonenumber
prepay_amount
zip
Refer to this table to view all fields that appear in the Partner object.
Get Partners
The following
GET
request returns partners matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/partners' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Partner objects.
{
"count": 1,
"has_more": false,
"items": [
{
"acls": [],
"address1": null,
"address2": null,
"attributes": {},
"available_scopes": [
"accesscontrol.manage",
"app.manage",
"calls.manage",
"countries.manage",
"endpoints.manage",
"invoices.manage",
"lookup.dids.read",
"oauth.allow_token_scope_update",
"oauth.manage",
"oauth.manage_all_tokens",
"partners.billing_method.manage",
"partners.read",
"partners.update",
"phonenumber.manage",
"push.manage",
"rating.manage",
"shortener.manage",
"sms.manage",
"storage.manage",
"trunk_groups.manage",
"trunk_groups.trunks.manage",
"verification.manage"
],
"balance": "4.4",
"billing_email": "example@example.com",
"callbacks": {},
"charge_at": "20",
"city": null,
"company_name": "FreeConferenceCall",
"country_code": "USA",
"date_created": "2019-05-20T18:32:37.000Z",
"display_id": "CX15650613",
"login": "example",
"name": "John Smith",
"owner_email": "example@example.com",
"parent_assigned_acls": [
{
"access_control_rules": [
"41f8b2d4-68e4-42f7-43b7-357a090cb1ab"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": null,
"voice_action_false": null,
"voice_action_true": "reject403"
},
{
"access_control_rules": [
"50d74234-73c7-4da4-819e-6e34c451ed71"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": "reject",
"voice_action_false": null,
"voice_action_true": null
}
],
"parent_sid": "be128456-3098-4564-b0d1-67dbceee265f",
"partner_sid": "6bace9c5-3eef-4f75-8f48-fb98e04408be",
"payment_type": "prepay",
"phonenumber": "8448440707",
"prepay_amount": "100",
"spending_limit": "500",
"state": null,
"status": "active",
"tech_email": "example@example.com",
"transformations": [],
"zip": "90804"
}
],
"limit": 1000,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns a list of partners.
GET | /partners |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Partner objects, the partner must have one of the following scopes enabled:
partners.manage
partners.read
Get Partner by SID
The following
GET
request returns a partner, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/partners/ed437757-002d-4ecc-aa5a-efdf5e50dba0' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Partner object.
{
"acls": [],
"address1": null,
"address2": null,
"attributes": {},
"available_scopes": [],
"balance": "351.52",
"billing_email": "example@example.com",
"callbacks": {},
"charge_at": "20",
"city": null,
"company_name": "CarrierX",
"country_code": "USA",
"date_created": "2018-09-20T21:34:55.000Z",
"display_id": "CX72521509",
"login": "example",
"name": "John Smith",
"owner_email": "example@example.com",
"parent_assigned_acls": [
{
"access_control_rules": [
"93525bae-f9a9-446b-b92a-7f421df7a11e"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": "accept",
"voice_action_false": null,
"voice_action_true": null
}
],
"parent_sid": "ac38616e-d2e7-4cd6-99ae-b6658f0728b6",
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"payment_type": "prepay",
"phonenumber": "15162065819",
"prepay_amount": "100",
"spending_limit": "0",
"state": null,
"status": "active",
"tech_email": "example@example.com",
"transformations": [],
"zip": "90804"
}
This request returns data for a partner, targeted by secure ID.
GET | /partners/{partner_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Partner object, the partner must have one of the following scopes enabled:
partners.manage
partners.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The partner secure ID. |
Update Partner
The following
PATCH
request updates the Partner object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/partners/ed437757-002d-4ecc-aa5a-efdf5e50dba0' \
-H 'Content-Type: application/json' \
--data-binary '{"address1":"4300 E Pacific Coast Hwy"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Partner object.
{
"acls": [],
"address1": "4300 E Pacific Coast Hwy",
"address2": null,
"attributes": {},
"available_scopes": [],
"balance": "351.52",
"billing_email": "example@example.com",
"callbacks": {},
"charge_at": "20",
"city": null,
"company_name": "CarrierX",
"country_code": "USA",
"date_created": "2018-09-20T21:34:55.000Z",
"display_id": "CX72521509",
"login": "example",
"name": "John Smith",
"owner_email": "example@example.com",
"parent_assigned_acls": [
{
"access_control_rules": [
"93525bae-f9a9-336b-b92a-7f421df7a11e"
],
"direction": "outbound",
"sms_action_false": null,
"sms_action_true": "accept",
"voice_action_false": null,
"voice_action_true": null
}
],
"parent_sid": "ac38616e-d2e3-4cd6-99ae-b6658f0728b6",
"partner_sid": "ed437757-001d-4ecc-aa5a-efdf5e50dba0",
"payment_type": "prepay",
"phonenumber": "15162065574",
"prepay_amount": "100",
"spending_limit": "0",
"state": null,
"status": "active",
"tech_email": "example@example.com",
"transformations": [],
"zip": "90804"
}
This request updates a partner, targeted by secure ID.
PATCH | /partners/{partner_sid} |
PUT | /partners/{partner_sid} |
A Partner object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The partner secure ID is passed in the query URL, and the values to be modified are passed in the request body.The Partner object also contains nested ACLs, Attributes, Callbacks, Parent Assigned ACLs, and Transformations objects. Refer to this section to learn how nested objects can be updated using the
PATCH
request. -
A
PUT
request can be used to update an entire Partner object. The partner secure ID is passed in the query URL, and the entire Partner object is passed in the request body.
Required Scopes
To update a Partner object, the partner must have one of the following scopes enabled:
partners.manage
partners.update
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The partner secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
nested_objects | string | Determines if the nested objects fields and values should be replaced. Value accepted in this field is replace . |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
acls
address1
address2
attributes
billing_email
callbacks
city
company_name
name
owner_email
parent_assigned_acls
phonenumber
tech_email
transformations
zip
Refer to this table to view all fields that appear in the Partner object.
Delete Partner
The following
DELETE
request deletes a partner, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/partners/aeda835c-6627-4f4c-ac73-9edcae95640b' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes a partner, targeted by secure ID.
DELETE | /partners/{partner_sid} |
This action is not possible to accomplish until the selected partner owns sub-partners. All sub-partner accounts must be deleted before a parent partner is deleted.
Required Scopes
To delete a Partner object, the partner must have one of the following scopes enabled:
partners.manage
partners.delete
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The secure ID of the partner to be deleted. |
Billing Method Object
A billing method is how a partner will pay for services rendered. This section goes over the parts of the Billing Method object. These fields and values make up the JSON response that gets returned when a request is successful.
Sample Billing Method object:
{
"address1":"4300 E Pacific Coast Hwy",
"address2":"Suite 1",
"cc_expiration":"022019",
"cc_number":"8888",
"city":"Long Beach",
"country_code":"USA",
"first_name":"John",
"last_name":"Smith",
"phone":"15162065574",
"state":"CA",
"type":"visa",
"zip": "90804"
}
Attribute | Data Type | Description |
---|---|---|
address1 create | string | The customer address. |
address2 create | string | The customer address second field. |
cc_cid create | string | The credit card CID. This field is hidden in the serialized copy of the Billing Method objects received in responses to the requests for the security reasons. |
cc_expiration create | string | The credit card expiration date in mmyyyy format. |
cc_number create | string | The credit card number. |
city create | string | The customer city. |
country_code create | string | The partner country code. |
ec_account_number create | string | The electronic check account number. |
ec_routing_number create | string | The electronic check routing number. |
first_name create | string | The partner first name. |
last_name create | string | The partner last name. |
phone create | string | The partner phone number. |
state create | string | The customer state in two-letter abbreviation format. |
type create | string | The type of the billing method. Values accepted in this field are:
|
zip create | string | The customer zip code. |
Register Billing Method
The following
POST
request registers a billing method to a specific partner.
curl -X POST \
'https://api.carrierx.com/core/v2/partners/ed437757-002d-4ecc-aa5a-efdf5e50dba0/billing_method' \
-H 'Content-Type: application/json' \
--data-binary '{"type":"visa", "cc_number":"4012888818888", "cc_expiration":"022019", "cc_cid":"318", "first_name":"John", "last_name":"Smith", "address1":"4300 E Pacific Coast Hwy", "address2":"Suite 1", "city":"Los Angeles", "state":"CA", "zip":"90804", "country_code":"USA", "phone":"15162065574"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Billing Method object.
{
"address1":"4300 E Pacific Coast Hwy",
"address2":"Suite 1",
"cc_expiration":"022019",
"cc_number":"8888",
"city":"Long Beach",
"country_code":"USA",
"first_name":"John",
"last_name":"Smith",
"phone":"15162065574",
"state":"CA",
"type":"visa",
"zip": "90804"
}
This request registers the billing method for a customer.
POST | /partners/{partner_sid}/billing_method |
Required Scopes
To register a billing method the partner must have one of the following scopes enabled:
partners.billing_method.manage
partners.billing_method.create
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The partner secure ID. |
Body Arguments
JSON representation of the fields and values of the Billing Method object to be created.
Required fields to create a billing method are:
address1
(forcheck
,electronic_check
, andwire
billing methods)cc_cid
(for credit card billing methods)cc_expiration
(for credit card billing methods)cc_number
(for credit card billing methods)city
(forcheck
,electronic_check
, andwire
billing methods)country_code
first_name
last_name
phone
type
zip
Refer to this table to view all fields that appear in the Billing Method object.
Get Billing Method by Partner SID
The following
GET
request returns a billing method, targeted by partner secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/partners/ed437757-002d-4ecc-aa5a-efdf5e50dba0/billing_method' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Billing Method object.
{
"address1": "4300 E Pacific Coast Hwy",
"address2": "Suite 1",
"cc_expiration": "022020",
"cc_number": "8888",
"city": "Long Beach",
"country_code": "USA",
"first_name": "John",
"last_name": "Smith",
"phone": "15162065574",
"state": "CA",
"type": "visa",
"zip": "90804"
}
This request returns information registered for the selected partner.
GET | /partners/{partner_sid}/billing_method |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Billing Method object, the partner must have one of the following scopes enabled:
partners.billing_method.manage
partners.billing_method.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The partner secure ID. |
Delete Billing Method
The following
DELETE
request deletes a billing method associated with the targeted partner secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/partners/ed437757-002d-4ecc-aa5a-efdf5e50dba0/billing_method' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes a billing method of the partner, targeted by secure ID.
DELETE | /partners/{partner_sid}/billing_method |
When completed, no billing method will be registered for the specified partner.
Required Scopes
To delete a Billing Method object, the partner must have one of the following scopes enabled:
partners.billing_method.manage
partners.billing_method.delete
Path Arguments
Parameter | Data Type | Description |
---|---|---|
partner_sid required |
string | The partner secure ID. |
Phone Numbers
Phone numbers rentable through the CarrierX API are called Direct Inward Dialing numbers (DIDs). DIDs can be organized into DID groups.
Refer to the Browse Available DIDs section to query the phone number inventory for available phone numbers and their capabilities.
Prefixes are a sequence of integers added to the beginning of a phone number that will route incoming calls to the desired recipients.
Short codes are short phone numbers used for SMS communications.
DID Object
This section outlines the DID object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample DID object:
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "f448e2c3-88c1-4cd1-8cf2-3567c16e0794",
"in_country_format": "(516) 206-5575",
"international_format": "+1 516-206-5575",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"phonenumber": "15162065575",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
Attribute | Data Type | Description |
---|---|---|
attributes create update | object | The DID attributes. |
callback_url create update | string | The callback URL to receive events for SMS. |
capabilities admin create updateread only | integer | This field accepts numerical values. To enable more than one capability, add the corresponding integers together. The following are the numerical values for each capability:
1 and 4 together to make 5 . The maximum value for this field is 31 (1 + 2 + 4 + 8 + 16 ) for all capabilities: SMS (inbound and outbound), voice, and MMS (inbound and outbound). |
country_code read only | string | The ISO 3166-1 alpha-3 code of this DID. This field is assigned automatically. |
did_group_sid create update | string | The DID group secure ID. |
did_sid read only | string | The DID secure ID. |
in_country_format read only | string | The DID in a national format. |
international_format read only | string | The DID in an international format. |
locality read only | string | The locality or city of the DID. |
lrn_sid read only | string | The secure ID of the Location Routing Number, which this DID belongs to. |
name create update | string | The DID name. The default value is N/A . |
partner read only | object | The Partner object associated with the DID. This field is displayed if with_related is set to true when performing the GET queries. |
partner_sid admin create updateread only | string | The secure ID of the partner associated with the DID. |
phonenumber admin createcreate | string | The phone number for the DID in E.164 format. |
price read only | number | The price of the DID. |
state read only | string | The state or province of the DID. |
string_key_1 create update | string | A user-defined string key. |
string_key_2 create update | string | A user-defined string key. |
transformations create update | array of objects | The transformations that are applied to the DID. Refer to the transformations section for more information. |
trunk_group_sid create update | string | The secure ID of the trunk group associated with the DID. |
Rent DID
The following
POST
request assigns a DID to a partner.
curl -X POST \
'https://api.carrierx.com/core/v2/phonenumber/dids' \
-H 'Content-Type: application/json' \
--data-binary '{"phonenumber":"15162065575", "callback_url":null}'
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID object.
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "f448e2c3-88c1-4cd1-8cf2-3567c16e0794",
"in_country_format": "(516) 206-5575",
"international_format": "+1 516-206-5575",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"phonenumber": "15162065575",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request assigns a DID to a partner.
POST | /phonenumber/dids |
Required Scopes
To create a DID object, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.create
Body Arguments
JSON representation of the fields and values of the DID object to be created.
A valid and available phonenumber
is required to rent a DID.
Refer to this table to view all fields that appear in the DID object.
Get DIDs
The following
GET
request returns rented DIDs matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/dids' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of DID objects.
{
"count": 1,
"has_more": true,
"items": [
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "e8df62d5-07a3-4189-a67e-87585067c5fe",
"in_country_format": "(516) 206-5574",
"international_format": "+1 516-206-5574",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"phonenumber": "15162065574",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/phonenumber/dids?limit=1&offset=1"
},
"total": 2
}
This request returns a list of DIDs that have been rented.
GET | /phonenumber/dids |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about DID objects, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
trunk_group_sid | string | The trunk group secure ID, used to return DIDs only for a specific trunk group. |
with_related | boolean | Determines if the partner information related to the phone number should be shown. Values accepted in this field are true and false . The default value is false . |
Get DID by SID
The following
GET
request returns a DID, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/dids/e8df62d5-07a3-4189-a67e-87585067c5fe' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID object.
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "e8df62d5-07a3-4189-a67e-87585067c5fe",
"in_country_format": "(516) 206-5574",
"international_format": "+1 516-206-5574",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"phonenumber": "15162065574",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request returns data for a DID, targeted by secure ID.
GET | /phonenumber/dids/{did_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a DID object, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The secure ID of the DID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the phone number should be shown. Values accepted in this field are true and false . The default value is false . |
Update DID
The following
PATCH
request updates the DID object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/dids/e8df62d5-07a3-4189-a67e-87585067c5fe' \
-H 'Content-Type: application/json' \
--data-binary '{"attributes":{"name":"main line"}}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated DID object.
{
"attributes": {
"name": "main line"
},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "e8df62d5-07a3-4189-a67e-87585067c5fe",
"in_country_format": "(516) 206-5574",
"international_format": "+1 516-206-5574",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"phonenumber": "15162065574",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request updates a DID, targeted by secure ID.
PATCH | /phonenumber/dids/{did_sid} |
PUT | /phonenumber/dids/{did_sid} |
A DID object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The DID secure ID is passed in the query URL, and the values to be modified are passed in the request body.The DID object also contains nested Attributes and Transformations objects. Refer to this section to learn how nested objects can be updated using the
PATCH
request. -
A
PUT
request can be used to update an entire DID object. The DID secure ID is passed in the query URL, and the entire DID object is passed in the request body.
Required Scopes
To update a DID object, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.update
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The DID secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
nested_objects | string | Determines if the nested objects fields and values should be replaced. Value accepted in this field is replace . |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
attributes
callback_url
did_group_sid
name
string_key_1
string_key_2
transformations
trunk_group_sid
Refer to this table to view all fields that appear in the DID object.
Release DID
The following
DELETE
request releases a DID, targeted by secure ID, from a partner account.
curl -X DELETE \
'https://api.carrierx.com/core/v2/phonenumber/dids/e8df62d5-07a3-4189-a67e-87585067c5fe' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request releases a DID, targeted by secure ID, from a partner account.
DELETE | /phonenumber/dids/{did_sid} |
Required Scopes
To release a DID object, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.delete
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The secure ID of the DID. |
Browse Available DIDs
The following
GET
request returns available DIDs matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/available_dids?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of available DID objects.
{
"count": 1,
"has_more": true,
"items": [
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "07e3dee3-2f0d-4254-b635-21334ccde8b9",
"in_country_format": "(516) 206-5573",
"international_format": "+1 516-206-5573",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": null,
"phonenumber": "15162065573",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/phonenumber/available_dids?limit=1&offset=1"
},
"total": null
}
This request returns a pool of rentable phone numbers.
GET | /phonenumber/available_dids |
GET | /dids/inventory (deprecated) |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about rentable numbers the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Get Available DID by SID
The following
GET
request returns available DID, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/available_dids/07e3dee3-2f0d-4254-b635-21334ccde8b9' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID object.
{
"attributes": {},
"callback_url": null,
"capabilities": 7,
"country_code": "USA",
"did_group_sid": null,
"did_sid": "07e3dee3-2f0d-4254-b635-21334ccde8b9",
"in_country_format": "(516) 206-5573",
"international_format": "+1 516-206-5573",
"locality": "NEW YORK",
"lrn_sid": null,
"name": "N/A",
"partner_sid": null,
"phonenumber": "15162065573",
"price": "0.6",
"state": "NY",
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request returns data for a rentable phone number, targeted by secure ID.
GET | /phonenumber/available_dids/{did_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about rentable numbers the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The secure ID of the DID. |
DID Classification Object
Sample DID Classification object
{
"aging_policy": 86400,
"classification_sid": "17f4d954-d635-4cda-912b-c2a2fa3a6860",
"name": "Default"
}
This section goes over the parts of the DID Classification object. These fields and values make up the JSON response that gets returned when a request is successful.
Attribute | Data Type | Description |
---|---|---|
aging_policy admin create updateread only | string | The time during which the phone number is considered aging and cannot be rented again. |
classification_sid read only | string | The DID classification secure ID. |
name admin create updateread only | string | The DID classification name. |
Get DID Classifications
The following
GET
request returns DID classifications matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/classifications' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of DID Classification objects.
{
"count": 1,
"has_more": false,
"items": [
{
"aging_policy": 86400,
"classification_sid": "17f4d954-d635-4cda-912b-c2a2fa3a6860",
"name": "Default"
}
],
"limit": null,
"offset": null,
"pagination": {},
"total": 1
}
This request returns a list of DID classifications.
GET | /phonenumber/classifications |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about DID Classification objects, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Get DID Classification by SID
The following
GET
request returns a DID classification, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/classifications/17f4d954-d635-4cda-912b-c2a2fa3a6860' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID Classification object.
{
"aging_policy": 86400,
"classification_sid": "17f4d954-d635-4cda-912b-c2a2fa3a6860",
"name": "Default"
}
This request returns data for a DID classification, targeted by secure ID.
GET | /phonenumber/classifications/{classification_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a DID Classification object, the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
classification_sid required |
string | The DID classification secure ID. |
DID Emergency Object
This section goes over the parts of the DID Emergency object. These fields and values make up the JSON response that gets returned when a request is successful.
To view or manage the emergency locations, the partner must have the appropriate scopes enabled (phonenumber.emergency.manage
, phonenumber.emergency.read
)
Sample DID Emergency object:
{
"caller_name": "J Smith",
"enabled": true,
"locations": [
{
"address_1": "8104 E Nora Ave",
"address_2": "",
"city": "Spokane Valley",
"country_code": "USA",
"state": "WA",
"zip": "99212"
}
]
}
Attribute | Data Type | Description |
---|---|---|
caller_name update | string | The name that will appear on receiving party phones. |
enabled update | boolean | If this field is set to false , no record is stored in the central CNAM registry. Fields can still be updated when the value is false . |
locations update | array of objects | The list of locations that will be used for emergency. Refer to the table below for the description of the location object parameters. |
Location Object
Attribute | Data Type | Description |
---|---|---|
address_1 update | string | The emergency location address line 1. |
address_2 update | string | The emergency location address line 2. |
city update | string | The emergency location city. |
country_code update | string | The ISO 3166-1 alpha-3 code of this emergency location country. |
state update | string | The emergency location state in two-letter abbreviation format. |
zip update | string | The emergency location zip code. |
Get DID Emergency
The following
GET
request returns DID Emergency object for the DID, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/emergency' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID Emergency object.
{
"caller_name": "John Smith",
"enabled": true,
"locations": [
{
"address_1": "8104 E Nora Ave",
"address_2": "",
"city": "Spokane Valley",
"country_code": "USA",
"state": "WA",
"zip": "99212"
},
{
"address_1": "600 Boll Weevil Cir",
"address_2": "",
"city": "Enterprise",
"country_code": "USA",
"state": "AL",
"zip": "36330"
}
]
}
This request returns data for DID emergency, targeted by the DID secure ID.
GET | /phonenumber/dids/{did_sid}/emergency |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about DID Emergency objects, the partner must have one of the following scopes enabled:
phonenumber.emergency.manage
phonenumber.emergency.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The DID secure ID. |
Update DID Emergency
The following
PATCH
request updates the DID Emergency object, targeted by the DID secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/emergency' \
-H 'Content-Type: application/json' \
--data-binary '{"caller_name": "J Smith"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated DID Emergency object.
{
"caller_name": "J Smith",
"enabled": true,
"locations": [
{
"address_1": "8104 E Nora Ave",
"address_2": "",
"city": "Spokane Valley",
"country_code": "USA",
"state": "WA",
"zip": "99212"
},
{
"address_1": "600 Boll Weevil Cir",
"address_2": "",
"city": "Enterprise",
"country_code": "USA",
"state": "AL",
"zip": "36330"
}
]
}
This request updates a DID emergency, targeted by the DID secure ID.
PATCH | /phonenumber/dids/{did_sid}/emergency |
PUT | /phonenumber/dids/{did_sid}/emergency |
A DID Emergency object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The DID emergency secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire DID Emergency object. The DID emergency secure ID is passed in the query URL, and the entire DID Emergency object is passed in the request body.
Required Scopes
To update a DID Emergency object, the partner must have the following scope enabled:
phonenumber.emergency.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The DID secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
All fields can be updated.
Refer to this table to view all fields that appear in the DID Emergency object.
Delete DID Emergency
The following
DELETE
request deletes a DID emergency, targeted by the DID secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/emergency' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes DID Emergency from a specific DID.
DELETE | /phonenumber/dids/{did_sid}/emergency |
Required Scopes
To delete a DID Emergency object, the partner must have the following scope enabled:
phonenumber.emergency.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The secure ID of the DID with the emergency that is to be deleted. |
DID Line Information Object
This section goes over the parts of the Line Information object. These fields and values make up the JSON response that gets returned when a request is successful.
Sample DID Line Information object:
{
"caller_name": "John Smith",
"class_of_service": "business",
"enabled": true,
"extended_business_name": "J Smith Carpenter",
"extended_first_name": "John",
"extended_last_name": "Smith",
"privacy": "public",
"screening": "allow_all"
}
Attribute | Data Type | Description |
---|---|---|
caller_name update | string | The name that will appear on receiving party phones. |
class_of_service update | string | The type of establishment that the service is for. Values accepted in this field are:
none . |
enabled update | boolean | If this field is set to false , no record is stored in the central CNAM registry. Fields can still be updated when the value is false . |
extended_business_name update | string | The business name associated with the caller. This extended information is given according to the provider and phone device. |
extended_first_name update | string | The first name of the caller. This extended information is given according to the provider and phone device. |
extended_last_name update | string | The last name of the caller. This extended information is given according to the provider and phone device. |
privacy update | string | Either public or private . This is whether or not the caller name will be displayed. The default is public . |
screening update | string | Determines what types of calls are accepted. Values accepted in this field are:
block_third_number_collect . |
Get DID Line Information
The following
GET
request returns DID Line Information object for the DID, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/line_information' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID Line Information object.
{
"caller_name": "John Smith",
"class_of_service": "business",
"enabled": true,
"extended_business_name": "J Smith Carpenter",
"extended_first_name": "John",
"extended_last_name": "Smith",
"privacy": "public",
"screening": "allow_all"
}
This request returns data for DID line information.
GET | /phonenumber/dids/{did_sid}/line_information |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about DID Line Information objects, the partner must have one of the following scopes enabled:
phonenumber.line_information.manage
phonenumber.line_information.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The DID secure ID. |
Update DID Line Information
The following
PATCH
request updates the DID Line Information object, targeted by the DID secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/line_information' \
-H 'Content-Type: application/json' \
--data-binary '{"caller_name": "J Smith"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated DID Line Information object.
{
"caller_name": "J Smith",
"class_of_service": "business",
"enabled": true,
"extended_business_name": "J Smith Carpenter",
"extended_first_name": "John",
"extended_last_name": "Smith",
"privacy": "public",
"screening": "allow_all"
}
This request updates a DID line information, targeted by the DID secure ID.
PATCH | /phonenumber/dids/{did_sid}/line_information |
PUT | /phonenumber/dids/{did_sid}/line_information |
A DID Line Information object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The DID line information secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire DID Line Information object. The DID line information secure ID is passed in the query URL, and the entire DID Line Information object is passed in the request body.
Required Scopes
To update a DID Line Information object, the partner must have the following scope enabled:
phonenumber.line_information.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The DID secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
All fields can be updated.
Refer to this table to view all fields that appear in the DID Line Information object.
Delete DID Line Information
The following
DELETE
request deletes a DID line information, targeted by the DID secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/phonenumber/dids/0493d917-e23c-41db-8067-0c986df71007/line_information' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes DID line information from a specific DID.
DELETE | /phonenumber/dids/{did_sid}/line_information |
Required Scopes
To delete a DID Line Information object, the partner must have the following scope enabled:
phonenumber.line_information.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_sid required |
string | The secure ID of the DID with the line information that is to be deleted. |
DID Group Object
This section goes over the parts of the DID Group object. These fields and values make up the JSON response that gets returned when a request is successful.
The following fields appear in an items
object.
Sample DID Group object:
{
"callback_url": null,
"did_group_sid": "41e21049-e5eb-433c-a93d-d57417b1863c",
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f"
}
Attribute | Data Type | Description |
---|---|---|
callback_url create update | string | The callback URL to receive events for SMS. |
did_group_sid read only | string | The DID group secure ID. |
name create update | string | The name of the DID group. |
partner read only | object | The Partner object associated with the DID group. This field is displayed if with_related is set to true when performing the GET queries. |
partner_sid read only | string | The secure ID of the partner associated with the DID group. |
Create DID Group
The following
POST
request creates a DID Group.
curl -X POST \
'https://api.carrierx.com/core/v2/phonenumber/did_groups' \
-H 'Content-Type: application/json' \
--data-binary '{}'
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID Group object.
{
"callback_url": null,
"did_group_sid": "41e21049-e5eb-433c-a93d-d57417b1863c",
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f"
}
This request creates a DID group.
POST | /phonenumber/did_groups |
Required Scopes
To create a DID Group object, the partner must have the following scope enabled:
phonenumber.manage
Body Arguments
JSON representation of the fields and values of the DID Group object to be created.
No fields are required to create a DID group, an empty object can be passed.
Refer to this table to view all fields that appear in the DID Group object.
Get DID Groups
The following
GET
request returns DID groups matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/did_groups?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of DID Group objects.
{
"count": 1,
"has_more": true,
"items": [
{
"callback_url": null,
"did_group_sid": "41e21049-e5eb-433c-a93d-d57417b1863c",
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f"
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/phonenumber/did_groups?limit=1&offset=1"
},
"total": 2
}
This request returns a list of DID groups.
GET | /phonenumber/did_groups |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about DID Group objects, the partner must have the following scope enabled:
phonenumber.manage
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the DID group should be shown. Values accepted in this field are true and false . The default value is false . |
Get DID Group by SID
The following
GET
request returns a DID Group, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/did_groups/41e21049-e5eb-433c-a93d-d57417b1863c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the DID Group object.
{
"callback_url": null,
"did_group_sid": "41e21049-e5eb-433c-a93d-d57417b1863c",
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f"
}
This request returns data for a DID group, targeted by secure ID.
GET | /phonenumber/did_groups/{did_group_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a DID Group object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_group_sid required |
string | The secure ID of the DID group. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the DID group should be shown. Values accepted in this field are true and false . The default value is false . |
Update DID Group
The following
PATCH
request updates the DID Group object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/did_groups/41e21049-e5eb-433c-a93d-d57417b1863c' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"my_did_group"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated DID Group object.
{
"callback_url": null,
"did_group_sid": "41e21049-e5eb-433c-a93d-d57417b1863c",
"name": "my_did_group",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f"
}
This request updates a DID group, targeted by secure ID.
PATCH | /phonenumber/did_groups/{did_group_sid} |
PUT | /phonenumber/did_groups/{did_group_sid} |
A DID group object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The DID group secure ID is passed in the query URL, and the values to be modified are passed in the request body. -
A
PUT
request can be used to update an entire DID group object. The DID group secure ID is passed in the query URL, and the entire DID group object is passed in the request body.
Required Scopes
To update a DID group object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_group_sid required |
string | The DID group secure ID. |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
callback_url
name
Refer to this table to view all fields that appear in the DID group object.
Delete DID Group
The following
DELETE
request deletes a DID group, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/phonenumber/did_groups/41e21049-e5eb-433c-a93d-d57417b1863c' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes a DID group, targeted by secure ID.
DELETE | /phonenumber/did_groups/{did_group_sid} |
Required Scopes
To delete a DID Group object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
did_group_sid required |
string | The secure ID of the DID group to be deleted. |
Prefix Object
This section outlines the Prefix object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample Prefix object:
{
"attributes": {},
"callback_url": null,
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"prefix": "111111111111111",
"prefix_sid": "cc367acb-94c8-418f-b247-85dce5806ef4",
"source_trunk_group_sid": null,
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
Attribute | Data Type | Description |
---|---|---|
attributes create update | object | The prefix attributes. |
callback_url create update | string | The callback URL. |
lrn_sid read only | string | The secure ID of the Location Routing Number, which this prefix belongs to. |
name create update | string | The prefix name. The default value is N/A . |
partner_sid create update | string | The secure ID of the partner associated with the prefix. |
prefix create update | string | The prefix that will enable routing logic. |
prefix_sid read only | string | The prefix secure ID. |
source_trunk_group_sid create update | string | The prefix source trunk group secure ID. |
string_key_1 create update | string | A user-defined string key. |
string_key_2 create update | string | A user-defined string key. |
transformations create update | array | The prefix transformations. |
trunk_group_sid create update | string | The trunk group secure ID. |
Create Prefix
The following
POST
request creates a prefix.
curl -X POST \
'https://api.carrierx.com/core/v2/phonenumber/prefixes' \
-H 'Content-Type: application/json' \
--data-binary '{"prefix":"111111111111111"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Prefix object.
{
"attributes": {},
"callback_url": null,
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"prefix": "111111111111111",
"prefix_sid": "cc367acb-94c8-418f-b247-85dce5806ef4",
"source_trunk_group_sid": null,
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request creates a Prefix object.
POST | /phonenumber/prefixes |
Required Scopes
To create a Prefix object, the partner must have the following scope enabled:
phonenumber.manage
Body Arguments
JSON representation of the fields and values of the Prefix object to be created.
A required field to create a prefix is prefix
.
Refer to this table to view all fields that appear in the prefix object.
Get Prefixes
The following
GET
request returns prefixes matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/prefixes' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Prefix objects.
{
"count": 1,
"has_more": false,
"items": [
{
"attributes": {},
"callback_url": null,
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"prefix": "111111111111111",
"prefix_sid": "cc367acb-94c8-418f-b247-85dce5806ef4",
"string_key_1": null,
"string_key_2": null,
"source_trunk_group_sid": null,
"transformations": [],
"trunk_group_sid": null
}
],
"limit": 10,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns a list of Prefix objects.
GET | /phonenumber/prefixes |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Prefix objects, the partner must have the following scope enabled:
phonenumber.manage
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the prefix should be shown. Values accepted in this field are true and false . The default value is false . |
Get Prefix by SID
The following
GET
request returns a prefix, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/prefixes/cc367acb-94c8-418f-b247-85dce5806ef4' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Prefix object.
{
"attributes": {},
"callback_url": null,
"lrn_sid": null,
"name": "N/A",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"prefix": "111111111111111",
"prefix_sid": "cc367acb-94c8-418f-b247-85dce5806ef4",
"source_trunk_group_sid": null,
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request returns data for a prefix, targeted by secure ID.
GET | /phonenumber/prefixes/{prefix_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Prefix object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
prefix_sid required |
string | The prefix secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the prefix should be shown. Values accepted in this field are true and false . The default value is false . |
Update Prefix
The following
PATCH
request updates the Prefix object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/prefixes/cc367acb-94c8-418f-b247-85dce5806ef4' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"main prefix"}' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Prefix object.
{
"attributes": {},
"callback_url": null,
"lrn_sid": null,
"name": "main prefix",
"partner_sid": "e00430c3-a7d0-4666-ab5c-f7202448382f",
"prefix": "111111111111111",
"prefix_sid": "cc367acb-94c8-418f-b247-85dce5806ef4",
"source_trunk_group_sid": null,
"string_key_1": null,
"string_key_2": null,
"transformations": [],
"trunk_group_sid": null
}
This request updates a prefix, targeted by secure ID.
PATCH | /phonenumber/prefixes/{prefix_sid} |
PUT | /phonenumber/prefixes/{prefix_sid} |
A Prefix object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The prefix secure ID is passed in the query URL, and the values to be modified are passed in the request body.The Prefix object also contains nested Attributes and Transformations objects. Refer to this section to learn how nested objects can be updated using the
PATCH
request. -
A
PUT
request can be used to update an entire Prefix object. The prefix secure ID is passed in the query URL, and the entire Prefix object is passed in the request body.
Required Scopes
To update a Prefix object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
prefix_sid required |
string | The prefix secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
nested_objects | string | Determines if the nested objects fields and values should be replaced. Value accepted in this field is replace . |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
attributes
callback_url
name
prefix
source_trunk_group_sid
string_key_1
string_key_2
transformations
Refer to this table to view all fields that appear in the Prefix object.
Delete Prefix
The following
DELETE
request deletes a prefix, targeted by secure ID.
curl -X DELETE \
'https://api.carrierx.com/core/v2/phonenumber/prefixes/cc367acb-94c8-418f-b247-85dce5806ef4' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
204
response code with an empty body.
This request deletes a prefix, targeted by secure ID.
DELETE | /phonenumber/prefixes/{prefix_sid} |
Required Scopes
To delete a Prefix object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
prefix_sid required |
string | The secure ID of the prefix. |
Rate DID Object
This section outlines the Rate DID object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample Rate DID object:
{
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0.6"
}
Attribute | Data Type | Description |
---|---|---|
country_code read only | string | The ISO 3166-1 alpha-3 code of this rate. |
country_name read only | string | The country name of this rate. |
prefix read only | string | The number prefix for the DID. |
price read only | number | The price for this rate. |
Get Rates
The following
GET
request returns phone number rates matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/rates?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with phone number rates.
{
"active": "yes",
"count": 1,
"effective_date": "2017-08-03T00:00:00.000Z",
"has_more": false,
"items": [
{
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0.6"
}
],
"limit": 1,
"offset": 0,
"pagination": {},
"partner_sid": "ed437757-002d-4ecc-aa5a-efdf5e50dba0",
"rates_plan": {
"name": "did_retail-2017-08-03.txt",
"rates_plan_sid": "326d2ec0-c58c-43e2-85f3-a92d647e46ac"
},
"total": 1
}
This request returns monthly rental fees for a phone number matching the defined criteria.
GET | /phonenumber/rates |
GET | /dids/rates (deprecated) |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about rates the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Look Up Rates by Phone Number
The following
GET
request returns rates for a specific phone number.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/rates/15162065319?limit=1' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with phone number rates.
{
"count": 1,
"has_more": false,
"items": [
{
"country_code": null,
"country_name": null,
"prefix": null,
"price": "0.6"
}
],
"limit": 1,
"offset": 0,
"pagination": {},
"total": null
}
This request returns rates for a specified phone number.
GET | /phonenumber/rates/{phonenumber} |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about rates the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Path Arguments
Parameter | Data Type | Description |
---|---|---|
phonenumber required |
string | The phone number. |
Download CSV with Rates
The following
GET
request returns rates in CSV format.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/rates/csv' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response and a CSV download.
This request returns a CSV with all phone number rates.
GET | /phonenumber/rates/csv |
This request is enabled for Field Filtering.
Required Scopes
To get a CSV with the rates the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Short Code Object
This section outlines the Short Code object. The fields listed in the table below will be returned in a JSON object when a successful request has been made.
Sample Short Code object:
{
"attributes": {},
"callback_url": null,
"country_code": "USA",
"did_group_sid": "9cf3c0aa-3f80-43f7-b8c2-8f88251ff562",
"locality": null,
"lrn_sid": null,
"name": "test",
"partner_sid": "b9ba2c8b-2368-4a0b-9ba0-866ff2618417",
"short_code": "26399",
"short_code_sid": "531f65b7-dff7-42b4-b638-597f91da9ccc",
"state": "IL",
"string_key_1": null,
"string_key_2": null
}
Attribute | Data Type | Description |
---|---|---|
attributes update | object | The attributes of the short code. |
callback_url update | string | The callback URL. |
country_code read only | string | The country of the short code. |
did_group_sid update | string | The DID group secure ID. |
locality read only | string | The region of the short code. |
lrn_sid read only | string | The secure ID of the Location Routing Number, which this short code belongs to. |
name update | string | The short code name. |
partner_sid read only | string | The secure ID of the partner associated with the short code. |
short_code read only | string | The short code value. |
short_code_sid read only | string | The short code secure ID. |
state read only | string | The state of the short code. |
string_key_1 update | string | A user-defined string key. |
string_key_2 update | string | A user-defined string key. |
Get Short Codes
The following
GET
request returns short codes matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/short_codes' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a list of Short Code objects.
{
"count": 1,
"has_more": false,
"items": [
{
"attributes": {},
"callback_url": null,
"country_code": "USA",
"did_group_sid": "9cf3c0aa-3f80-43f7-b8c2-8f88251ff562",
"locality": null,
"lrn_sid": null,
"name": "test",
"partner_sid": "b9ba2c8b-2368-4a0b-9ba0-866ff2618417",
"short_code": "26399",
"short_code_sid": "531f65b7-dff7-42b4-b638-597f91da9ccc",
"state": "IL",
"string_key_1": null,
"string_key_2": null
}
],
"limit": 10,
"offset": 0,
"pagination": {},
"total": 1
}
This request returns a list of Short Code objects.
GET | /phonenumber/short_codes |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about Short Code objects, the partner must have the following scope enabled:
phonenumber.manage
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the short code should be shown. Values accepted in this field are true and false . The default value is false . |
Get Short Code by SID
The following
GET
request returns a short code, targeted by secure ID.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/short_codes/531f65b7-dff7-42b4-b638-597f91da9ccc' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the Short Code object.
{
"attributes": {},
"callback_url": null,
"country_code": "USA",
"did_group_sid": "9cf3c0aa-3f80-43f7-b8c2-8f88251ff562",
"locality": null,
"lrn_sid": null,
"name": "test",
"partner_sid": "b9ba2c8b-2368-4a0b-9ba0-866ff2618417",
"short_code": "26399",
"short_code_sid": "531f65b7-dff7-42b4-b638-597f91da9ccc",
"state": "IL",
"string_key_1": null,
"string_key_2": null
}
This request returns data for a short code, targeted by secure ID.
GET | /phonenumber/short_codes/{short_code_sid} |
This request is enabled for Field Filtering.
Required Scopes
To get information about a Short Code object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
short_code_sid required |
string | The short code secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
with_related | boolean | Determines if the partner information related to the short code should be shown. Values accepted in this field are true and false . The default value is false . |
Update Short Code
The following
PATCH
request updates the Short Code object, targeted by secure ID, with the values in the request body.
curl -X PATCH \
'https://api.carrierx.com/core/v2/phonenumber/short_codes/531f65b7-dff7-42b4-b638-597f91da9ccc' \
-H 'Content-Type: application/json' \
--data-binary '{"name":"new shortcode name"}'
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with a serialized copy of the updated Short Code object.
{
"attributes": {},
"callback_url": null,
"country_code": "USA",
"did_group_sid": "9cf3c0aa-3f80-43f7-b8c2-8f88251ff562",
"locality": null,
"lrn_sid": null,
"name": "new short code name",
"partner_sid": "b9ba2c8b-2368-4a0b-9ba0-866ff2618417",
"short_code": "26399",
"short_code_sid": "531f65b7-dff7-42b4-b638-597f91da9ccc",
"state": "IL",
"string_key_1": null,
"string_key_2": null
}
This request updates a short code, targeted by secure ID.
PATCH | /phonenumber/short_codes/{short_code_sid} |
PUT | /phonenumber/short_codes/{short_code_sid} |
A Short Code object can be updated using either a PATCH
or PUT
request.
-
A
PATCH
request can be used to update one or more attribute values. When using aPATCH
request, only the attributes specified in the request payload will be updated, all other attributes and values will remain the same. The short code secure ID is passed in the query URL, and the values to be modified are passed in the request body.The Short Code object also contains a nested Attributes object. Refer to this section to learn how nested objects can be updated using the
PATCH
request. -
A
PUT
request can be used to update an entire Short Code object. The short code secure ID is passed in the query URL, and the entire Short Code object is passed in the request body.
Required Scopes
To update a Short Code object, the partner must have the following scope enabled:
phonenumber.manage
Path Arguments
Parameter | Data Type | Description |
---|---|---|
short_code_sid required |
string | The short code secure ID. |
Query Arguments
Parameter | Data Type | Description |
---|---|---|
nested_objects | string | Determines if the nested objects fields and values should be replaced. Value accepted in this field is replace . |
Body Arguments
JSON representation of the fields and values to be updated.
Fields that can be modified are:
attributes
callback_url
did_group_sid
name
string_key_1
string_key_2
Refer to this table to view all fields that appear in the Short Code object.
Browse Coverage
The following
GET
request returns data about available phone numbers matching the criteria in the request URL.
curl -X GET \
'https://api.carrierx.com/core/v2/phonenumber/coverage?limit=1&group_by=state' \
-H 'Authorization: Bearer 5ebc03d6-8b2b-44ad-bf65-72d4f1491dda'
A successful request will return a
200
response code with data about available phone numbers.
{
"count": 1,
"has_more": true,
"items": [
{
"count": 81,
"key": "IL"
}
],
"limit": 1,
"offset": 0,
"pagination": {
"next": "https://api.carrierx.com/core/v2/phonenumber/coverage?limit=1&group_by=state&offset=1"
},
"total": 5
}
This request returns data about available phone numbers rentable through CarrierX. Responses can also include inventory levels.
GET | /phonenumber/coverage |
This request is enabled for Pagination, Result Filtering, and Field Filtering.
Required Scopes
To get information about phone numbers the partner must have one of the following scopes enabled:
phonenumber.manage
phonenumber.read
Query Arguments
Parameter | Data Type | Description |
---|---|---|
group_by required |
string | Which criteria the results should be grouped by. Values accepted in this field are:
|
Response Object
Attribute | Data Type | Description |
---|---|---|
count | integer | The total quantity of phone numbers for the given NPA. |
key | string | The value by which the phone numbers are grouped in the response. |