DIDs
Schema
A provisioned did
Type Object
| Name | Type | Description |
|---|---|---|
activated |
Boolean | Desc. activated |
brand_name |
String(0..255) | Desc. brand_name |
description |
String | Desc. description |
forward_number |
String | Desc. forward_number |
help_message |
String(0..255) | Desc. help_message |
id |
String(format:uuid) | Desc. id |
inserted_at |
String(format:date-time) | An ISO8601 formatted timestamp |
message_class |
Enum(NONE, A2P, P2P):String |
|
mms_enabled |
Boolean | Desc. mms_enabled |
number |
String | Desc. number |
rate_center |
String | |
segment_overrides |
Array:SubObject | Desc. segment_overrides |
segment_threshold |
Integer | Desc. segment_threshold |
sms_enabled |
Boolean | Desc. sms_enabled |
state |
String | |
tier |
Enum:String | Desc. tier |
updated_at |
String(format:date-time) | An ISO8601 formatted timestamp |
upgrade_asset_handling |
Enum:String | The asset handling flag for SMS Upgrades |
voice_enabled |
Boolean | Desc. voice_enabled |
Desc. activated
Is the DID active for use?
Desc. brand_name
Custom Brand Name when the number is not actively apart of TCR's Campaign setup, this field will be used in place of the brand name.
Added on 2026-05-04.
Desc. description
Any notes to attach to the number.
Desc. forward_number
When this DID receives an inbound message, the message will be routed to the specified forward_number.
Note. using forward_number or its switch equivalent will charge the account for 2 messages, instead of 1: * Once for the inbound (to the host number) * Again for the outbound (from the host number to the forward number)
If this field is nil, or blank the sms_switch will be used for routing instead
Desc. help_message
Custom HELP Message that should be sent when an inbound message matching "HELP" is received.
For help messages longer than 255 characters, they must handled by the receiver.
Desc. id
A Universally unique identifier, which identifies the resource
Desc. mms_enabled
Whether or not the number is MMS capable, does not affect SMS or SMS to MMS upgrades.
Desc. number
The 3 to 15 digit code of the number.
SubObject
Sub-Schema
Type Object
| Name | Type | Description |
|---|---|---|
encoding |
Integer | Desc. encoding |
id |
String(format:uuid) | Desc. id |
segment_threshold |
Integer | Desc. segment_threshold |
target_reference_id |
String | Desc. target_reference_id |
Desc. encoding
The SMS encoding that this override should trigger on.
Desc. id
The UUID of the specific segment override, required when changing an existing override.
Desc. segment_threshold
See number's segment_threshold for more information.
Desc. target_reference_id
Internal reference_id for a carrier, contact support for details or if a required carrier is not available.
Reference ids tend to have the form:
<country_code>_<name>
Example:
us_tmobile
ca_rogers
dm_digicel
Desc. segment_overrides
While the segment_threshold can be used to apply to all outgoing sms messages, sometimes its required to tailor fit an upgrade to a particular carrier.
Note, when updating the segment_overrides, all overrides must be provided for the did, any unspecified overrides will be removed.
Desc. segment_threshold
How many segments should a outgoing message have before it triggers an MMS upgrade.
Contact support to learn more about MMS upgrades.
0 will disable upgrades, any value greater than 1 will trigger an upgrade when that many sms segments would have been sent.
Upgrades only apply to HTTP originated traffic, customers using SMPP will not for outbound are not subject to upgrades.
Desc. sms_enabled
Whether or not a number is messaging capable.
Note that this flag also affects mms availability.
Enum Values tier
Allowed values
L0L1T1T2T3AKHICANPRTFSHORTCODEM0M1BYON
Desc. tier
The billing tier associated with the number:
L0- Tychron OCN Tier 0L1- Tychron OCN Tier 1T1- Partner Tier 0T2- Partner Tier 1T3- Partner Tier 3AK- AlaskaHI- HawaiiCAN- CanadaPR- Puerto RicoTF- TollfreeSHORTCODE- General ShortcodeM0- Mobile Tier 0M1- Mobile Tier 1BYON- Bring-Your-Own-Number
Enum Values upgrade_asset_handling
Allowed values
FALLBACKOFFALWAYS_UPGRADESEGMENT_UPGRADE
Desc. voice_enabled
Whether or not the specified number is voice-capable (only affects outgoing)
Example
{
"activated": true,
"brand_name": "ACME Corp.",
"description": "Test number used for XYZ.Corp\n",
"forward_number": "12003004000",
"help_message": "Available Keywords are: HELP, SUBSCRIBED, UNSUBSCRIBE.",
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"inserted_at": "2021-08-13T04:08:44.762841Z",
"message_class": "A2P",
"mms_enabled": true,
"number": "12003004000",
"rate_center": "KISSIMEE",
"segment_overrides": [
{
"encoding": 0,
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"segment_threshold": 0,
"target_reference_id": "us_tmobile"
}
],
"segment_threshold": 1,
"sms_enabled": true,
"state": "FL",
"tier": "T1",
"updated_at": "2021-08-13T04:08:44.762841Z",
"upgrade_asset_handling": "FALLBACK",
"voice_enabled": true
}
Summary
DIDs, or Numbers represent a Longcode (10DLC, Tollfree, International), Shortcode or Sender ID.
They are the primary resource for messaging and VoIP operations.
API
Update DID
PATCH /api/v1/numbers/{id} HTTP/1.1
Update some features on the specified number.
Path Parameters
| Name | Type | Description |
|---|---|---|
| id | String(format:uuid)! | Number or ID |
Request application/json
PATCH /api/v1/numbers/{id} HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 505
{
"data": {
"description": "Test number used for XYZ.Corp\n",
"forward_number": "12003004000",
"help_message": "Available Keywords are: HELP, SUBSCRIBED, UNSUBSCRIBE.",
"mms_enabled": true,
"segment_overrides": [
{
"encoding": 0,
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"segment_threshold": 0,
"target_reference_id": "us_tmobile"
}
],
"segment_threshold": 1,
"upgrade_asset_handling": "FALLBACK"
},
"type": "number"
}
Response 200
application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 1209
{
"associations": {
"campaign": {
"id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
"tcr_brand_id": "B000000",
"tcr_campaign_id": "C000000"
},
"messaging_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
},
"voice_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
}
},
"data": {
"activated": true,
"brand_name": "ACME Corp.",
"description": "Test number used for XYZ.Corp\n",
"forward_number": "12003004000",
"help_message": "Available Keywords are: HELP, SUBSCRIBED, UNSUBSCRIBE.",
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"inserted_at": "2021-08-13T04:08:44.762841Z",
"message_class": "A2P",
"mms_enabled": true,
"number": "12003004000",
"rate_center": "KISSIMEE",
"segment_overrides": [
{
"encoding": 0,
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"segment_threshold": 0,
"target_reference_id": "us_tmobile"
}
],
"segment_threshold": 1,
"sms_enabled": true,
"state": "FL",
"tier": "T1",
"updated_at": "2021-08-13T04:08:44.762841Z",
"upgrade_asset_handling": "FALLBACK",
"voice_enabled": true
},
"type": "number"
}
Response 403
application/json
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
{
"errors": [
{
"code": "access_denied.no_scope",
"detail": "No scope available to user role",
"params": {
"action": "index",
"level": "guest",
"resource": "resource"
},
"sub_code": "none",
"title": "Access Denied, no scope available"
}
]
}
Response 404
application/json
HTTP/1.1 404
Content-Type: application/json
Content-Length: 314
{
"errors": [
{
"code": "not_found",
"detail": "The specified resource could not be found",
"params": {
"resource": {
"id": "3fbb573a-6049-44a0-a12c-d3a1ffae0b69",
"type": "user"
}
},
"sub_code": "none",
"title": "Not Found"
}
]
}
List DIDs
GET /api/v1/numbers HTTP/1.1
Retrieve a list of numbers provisioned on the account.
Query Parameters
| Name | Type | Description |
|---|---|---|
| first | Integer | Query Desc. first |
| last | Integer | Query Desc. last |
| after | String | Query Desc. after |
| before | String | Query Desc. before |
Query Desc. first
The number of items to return starting from the 'after' cursor
Query Desc. last
The number of items to return behind the 'before' cursor
Query Desc. after
The cursor representing the starting point of a 'first' based paging
Query Desc. before
The cursor representing the starting point of a 'last' based paging
Request
GET /api/v1/numbers HTTP/1.1
Accept: application/json
Response 200
application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 1546
{
"count": 1,
"page_info": {
"first": "string",
"has_next_page": true,
"has_previous_page": true,
"last": "string"
},
"results": [
{
"associations": {
"campaign": {
"id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
"tcr_brand_id": "B000000",
"tcr_campaign_id": "C000000"
},
"messaging_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
},
"voice_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
}
},
"data": {
"activated": true,
"brand_name": "ACME Corp.",
"description": "Test number used for XYZ.Corp\n",
"forward_number": "12003004000",
"help_message": "Available Keywords are: HELP, SUBSCRIBED, UNSUBSCRIBE.",
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"inserted_at": "2021-08-13T04:08:44.762841Z",
"message_class": "A2P",
"mms_enabled": true,
"number": "12003004000",
"rate_center": "KISSIMEE",
"segment_overrides": [
{
"encoding": 0,
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"segment_threshold": 0,
"target_reference_id": "us_tmobile"
}
],
"segment_threshold": 1,
"sms_enabled": true,
"state": "FL",
"tier": "T1",
"updated_at": "2021-08-13T04:08:44.762841Z",
"upgrade_asset_handling": "FALLBACK",
"voice_enabled": true
},
"type": "number"
}
]
}
Response 403
application/json
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
{
"errors": [
{
"code": "access_denied.no_scope",
"detail": "No scope available to user role",
"params": {
"action": "index",
"level": "guest",
"resource": "resource"
},
"sub_code": "none",
"title": "Access Denied, no scope available"
}
]
}
Get DID
GET /api/v1/numbers/{id} HTTP/1.1
Lookup a number by ID or it's number
Path Parameters
| Name | Type | Description |
|---|---|---|
| id | String(format:uuid)! | Number or ID |
Request
GET /api/v1/numbers/{id} HTTP/1.1
Accept: application/json
Response 200
application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 1209
{
"associations": {
"campaign": {
"id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
"tcr_brand_id": "B000000",
"tcr_campaign_id": "C000000"
},
"messaging_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
},
"voice_switch": {
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
}
},
"data": {
"activated": true,
"brand_name": "ACME Corp.",
"description": "Test number used for XYZ.Corp\n",
"forward_number": "12003004000",
"help_message": "Available Keywords are: HELP, SUBSCRIBED, UNSUBSCRIBE.",
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"inserted_at": "2021-08-13T04:08:44.762841Z",
"message_class": "A2P",
"mms_enabled": true,
"number": "12003004000",
"rate_center": "KISSIMEE",
"segment_overrides": [
{
"encoding": 0,
"id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
"segment_threshold": 0,
"target_reference_id": "us_tmobile"
}
],
"segment_threshold": 1,
"sms_enabled": true,
"state": "FL",
"tier": "T1",
"updated_at": "2021-08-13T04:08:44.762841Z",
"upgrade_asset_handling": "FALLBACK",
"voice_enabled": true
},
"type": "number"
}
Response 403
application/json
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
{
"errors": [
{
"code": "access_denied.no_scope",
"detail": "No scope available to user role",
"params": {
"action": "index",
"level": "guest",
"resource": "resource"
},
"sub_code": "none",
"title": "Access Denied, no scope available"
}
]
}
Response 404
application/json
HTTP/1.1 404
Content-Type: application/json
Content-Length: 314
{
"errors": [
{
"code": "not_found",
"detail": "The specified resource could not be found",
"params": {
"resource": {
"id": "3fbb573a-6049-44a0-a12c-d3a1ffae0b69",
"type": "user"
}
},
"sub_code": "none",
"title": "Not Found"
}
]
}