API
Pagination Parameters
Pagination is based on a cursor, rather than a offset.
after and before are the cursor values, while first and last control how many records should be returned.
If the first 20 records are needed for example, only the first parameter needs to be provided.
| Name | Type | Description |
|---|---|---|
first |
Integer |
How many records should be returned after the cursors |
last |
Integer |
How many records should be returned before the cursors |
after |
String |
The pagination cursor, taken from the page_info.last |
before |
String |
The pagination cursor taken from the page_info.first |
query |
String |
A query string to filter the records by. |
Note that routes that use pagination, will require at least first or last to be specified.
The cursor values can be obtained from the document returned by those APIs under its paginat
The pagination works in pairs:
firstandafterlastandbefore
Specifying both first and last at the same time will result in an error, or undesired behaviour.
query varies by resource, see their respective sections on the expected values.
Common Parameters
All management APIs have a similar root structure, where the document contains a data field and type field on request.
Depending on the resource being handled the type and data changes accordingly.
RequestDocument
{
"data": {},
"type": "document_type"
}
| Name | Type | Description |
|---|---|---|
data * |
T |
Depends on the resource, each resource section will specify their data structure |
type * |
DocumentType |
Depends on the resource, each resource has its own type |
Request documents are used when performing a request to the API, these are normally associated with POST, PATCH, and PUT routes.
ResponseDetailDocument
{
"data": {},
"type": "document_type"
}
| Name | Type | Description |
|---|---|---|
data * |
T |
Depends on the resource |
type * |
DocumentType |
Depends on the resource |
Resposne Detail documents are returned whenver a single resource is needed or modified.
ResponseIndexDocument
{
"results": [],
"count": 0,
"page_info": {
"start_cursor": "",
"end_cursor": "",
"has_next_page": false,
"has_previous_page": false
}
}
| Name | Type | Description |
|---|---|---|
results * |
Array<ResponseDetailDocument<T>> |
A list of detail documents with their type |
count * |
Integer |
How many records are in the results? |
page_info * |
PageInfo |
Contains pagination information |
Response Index documents are returned from index routes (i.e. GET /api/v1/:resource)
PageInfo
{
"start_cursor": "",
"end_cursor": "",
"has_next_page": false,
"has_previous_page": false
}
| Name | Type | Description |
|---|---|---|
start_cursor |
String |
The new before cursor (if needed) |
end_cursor |
String |
The new after cursor (if needed) |
has_next_page |
Boolean |
Is there another page after this one? |
has_previous_page |
Boolean |
Is there a page before this one? |
Page Info is an object that contains any additional pagination information from an index request.
first and last are the individual cursors and should not be confused with the first and last pagination values (i.e. page size).
has_next_page and has_prev_page are convenience fields that denote whether or not there are any more pages in either direction.
For example, fetching the first 20 DIDs, if the account has more dids, then has_next_page will be true and the last cursor will be populated.
To get to the next page, simple change the pagination parameters accordingly:
if (page_info.has_next_page) {
let after = page_info.end_cursor;
fetch_more({
after,
first: 20,
});
}
Paths
The following are all the available paths, note that some may not be covered in this document.
-
GET|POST /api/v1/api_keys -
GET /api/v1/api_keys/{api_key_id}/switches -
DELETE|GET|PATCH|PUT /api/v1/api_keys/{id} -
GET|POST /api/v1/auto_responses -
DELETE|GET|PATCH|PUT /api/v1/auto_responses/{id} -
GET /api/v1/brands -
GET /api/v1/brands/{id} -
GET|POST /api/v1/bulk_dip_tasks -
GET /api/v1/bulk_dip_tasks/{id} -
GET|POST /api/v1/call_data_webhooks -
DELETE|GET|PATCH|PUT /api/v1/call_data_webhooks/{id} -
GET /api/v1/campaign_optout_items -
DELETE|GET /api/v1/campaign_optout_items/{id} -
GET /api/v1/campaigns -
POST /api/v1/campaigns/{campaign_id}/share_with/accounts/{account_id} -
POST /api/v1/campaigns/{campaign_id}/share_with/shared_resource_groups/{shared_resource_group_id} -
DELETE|GET /api/v1/campaigns/{campaign_id}/shared_resource_group -
GET /api/v1/campaigns/{id} -
GET|POST /api/v1/carts -
POST /api/v1/carts/{cart_id}/checkout -
GET|POST /api/v1/carts/{cart_id}/requests -
DELETE|GET|PATCH|PUT /api/v1/carts/{cart_id}/requests/{id} -
GET|POST /api/v1/carts/{cart_id}/requests/{request_id}/documents -
GET /api/v1/carts/{cart_id}/requests/{request_id}/documents/{document_id}/download -
DELETE|GET /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} -
DELETE|GET|PATCH|PUT /api/v1/carts/{id} -
GET|POST /api/v1/cdr_export_tasks -
DELETE|GET /api/v1/cdr_export_tasks/{id} -
GET /api/v1/cdrs -
GET /api/v1/cdrs/{cdr_id}/result -
GET /api/v1/cdrs/{id} -
GET /api/v1/cdrs_by_type/{type} -
GET /api/v1/csp/enum/alt_business_id_types -
GET /api/v1/csp/enum/brand_relationships -
GET /api/v1/csp/enum/campaign_statuses -
GET /api/v1/csp/enum/cnps -
GET /api/v1/csp/enum/dcas -
GET /api/v1/csp/enum/entity_types -
GET /api/v1/csp/enum/error_codes -
GET /api/v1/csp/enum/event_categories -
GET /api/v1/csp/enum/mno_operation_statuses -
GET /api/v1/csp/enum/mnos -
GET /api/v1/csp/enum/stock_exchanges -
GET /api/v1/csp/enum/sub_usecases -
GET /api/v1/csp/enum/usecases -
GET /api/v1/csp/enum/verticals -
GET /api/v1/csp/enum/vetting_classes -
GET /api/v1/csp/enum/vetting_feedback_codes -
GET /api/v1/csp/enum/vetting_providers -
GET|POST /api/v1/event_subscriptions -
DELETE|GET|PATCH|PUT /api/v1/event_subscriptions/{id} -
GET /api/v1/number_client_suspensions -
DELETE|GET|PATCH|PUT /api/v1/number_client_suspensions/{id} -
GET /api/v1/number_inventory/{type}/coverage -
GET /api/v1/number_inventory/{type}/numbers -
GET /api/v1/numbers -
GET|PATCH|PUT /api/v1/numbers/{id} -
GET /api/v1/numbers/{number_id}/api_keys -
DELETE|POST /api/v1/numbers/{number_id}/api_keys/{api_key_id}/bind -
POST /api/v1/numbers/{number_id}/api_keys/{api_key_id}/unbind -
GET /api/v1/numbers/{number_id}/api_keys/{id} -
DELETE|GET /api/v1/numbers/{number_id}/auto_response -
PUT /api/v1/numbers/{number_id}/auto_response/{id} -
GET /api/v1/numbers/{number_id}/campaign -
GET|POST /api/v1/numbers/{number_id}/client_suspensions -
GET|POST /api/v1/numbers/{number_id}/destinations -
DELETE|GET|PATCH|PUT /api/v1/numbers/{number_id}/destinations/{id} -
DELETE|GET /api/v1/numbers/{number_id}/messaging_switch -
PUT /api/v1/numbers/{number_id}/messaging_switch/{id} -
GET|POST /api/v1/numbers/{number_id}/optout_items -
DELETE|GET /api/v1/numbers/{number_id}/voice_switch -
PUT /api/v1/numbers/{number_id}/voice_switch/{id} -
GET /api/v1/optout_items -
DELETE|GET /api/v1/optout_items/{id} -
GET /api/v1/orders -
GET|PATCH|PUT /api/v1/orders/{id} -
GET /api/v1/orders/{order_id}/requests -
GET /api/v1/osr/overwrite_requests -
GET /api/v1/osr/overwrite_requests/{id} -
POST /api/v1/osr/overwrite_requests/{overwrite_request_id}/review -
GET /api/v1/provision_records -
GET /api/v1/provision_records/{id} -
GET /api/v1/requests -
GET|PATCH|PUT /api/v1/requests/{id} -
GET|POST /api/v1/requests/{request_id}/documents -
GET /api/v1/requests/{request_id}/documents/{document_id}/download -
DELETE|GET /api/v1/requests/{request_id}/documents/{id} -
GET /api/v1/requests/{request_id}/provision_records -
GET /api/v1/role_policies -
GET|POST /api/v1/roles -
DELETE|GET|PATCH|PUT /api/v1/roles/{id} -
GET|POST /api/v1/secret_keys -
DELETE|GET|PATCH|PUT /api/v1/secret_keys/{id} -
GET /api/v1/secret_keys/{secret_key_id}/mms_encrypted_switches -
GET /api/v1/secret_keys/{secret_key_id}/mms_signed_switches -
GET /api/v1/secret_keys/{secret_key_id}/sms_encrypted_switches -
GET /api/v1/secret_keys/{secret_key_id}/sms_signed_switches -
GET /api/v1/shared_resource_groups -
GET /api/v1/shared_resource_groups/{id} -
GET|POST /api/v1/switches -
DELETE|GET|PATCH|PUT /api/v1/switches/{id} -
DELETE|GET /api/v1/switches/{switch_id}/api_key -
PUT /api/v1/switches/{switch_id}/api_key/{id} -
DELETE|GET /api/v1/switches/{switch_id}/mms_encryption_key -
PUT /api/v1/switches/{switch_id}/mms_encryption_key/{id} -
DELETE|GET /api/v1/switches/{switch_id}/mms_signing_key -
PUT /api/v1/switches/{switch_id}/mms_signing_key/{id} -
DELETE|GET /api/v1/switches/{switch_id}/sms_encryption_key -
PUT /api/v1/switches/{switch_id}/sms_encryption_key/{id} -
DELETE|GET /api/v1/switches/{switch_id}/sms_signing_key -
PUT /api/v1/switches/{switch_id}/sms_signing_key/{id} -
GET|POST /api/v1/tts/message_sets -
DELETE|GET|PATCH|PUT /api/v1/tts/message_sets/{id} -
GET|POST /api/v1/tts/message_sets/{message_set_id}/messages -
DELETE|GET|PATCH|PUT /api/v1/tts/message_sets/{message_set_id}/messages/{id} -
GET /api/v1/tts/voices -
GET /api/v1/tts/voices/{id} -
GET|POST /api/v1/users -
DELETE|GET|PATCH|PUT /api/v1/users/{id} -
GET /api/v1/users/{user_id}/role