API for importing, hosting, and qualifying numbers to enable them for use with Sinch SMS text messaging services.
Imported Numbers and Hosting Orders (1.0)
https://imported.numbers.api.sinch.com/
Hosting Orders
Hosted numbers provide you with an easy method to port your SMS enabled numbers to Sinch or to use SMS messaging and other products to send and receive messages, on voice-enabled numbers (including landline numbers) that you already own.
Note: The SMS enablement process is only supported in United States and Canada.
The Hosting Orders API allows you to manage all the numbers that you are hosting on the Sinch platform. This includes numbers that you have ported to Sinch and/or any non- Sinch numbers that you already own and are hosting on Sinch to enable Sinch SMS messaging and other products.
Found on your Sinch Customer Dashboard. Settings > Projects.
The hosting order states
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_STATE_UNSPECIFIED | State is unspecified. |
| DRAFT | Hosting order is a draft. |
| SUBMITTED | Hosting order has been submitted. |
| WAITING_FOR_LOA_SIGNATURE | Hosting order is waiting for the LoA signature. |
| IN_PROGRESS | Hosting order is in progress. |
| COMPLETED | Hosting order is completed. |
| REJECTED | Hosting order is rejected. |
The hosting order type
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_TYPE_UNSPECIFIED | Type is unspecified. |
| IMPORT | Type is importing numbers. |
| TYPE_TEXT_ENABLE | Type is text enabling numbers. |
The hosting order servicePlanId
The hosting order campaignId
Region code to filter by. ISO 3166-1 alpha-2 country code of the phone number. Currently supported are US, CA
Parameter used to order the returned hosting orders
| Enum Value | Description |
|---|---|
| createdTime | Order by the time the hosting order was created. |
| updatedTime | Order by the time the hosting order was last updated. |
The next page token value returned from a previous listing.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders?states=HOSTING_ORDER_STATE_UNSPECIFIED&type=HOSTING_ORDER_TYPE_UNSPECIFIED&servicePlanId=324e4567-e89b-12d3-a456-426614174000&campaignId=123e4567-e89b-12d3-a456-426614174000®ionCode=US&orderBy=createdTime&pageToken=C2VNYXJrEg4KDCsxMjAxMjI2MzUyOQ%3D%3D&pageSize=20'{ "hostingOrders": [ { … } ], "nextPageToken": "string", "totalSize": 0 }
Found on your Sinch Customer Dashboard. Settings > Projects.
Found on your Sinch Customer Dashboard. Settings > Projects.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders/{hostingOrderId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders/01arz3ndektsv4rrffq69g5favOK
The region code of the hosting order. Number hosting is only available for the US and Canada, so you must enter either "US" or "CA".
The state of the hosting order.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_STATE_UNSPECIFIED | State is unspecified. |
| DRAFT | Hosting order is a draft. |
| SUBMITTED | Hosting order has been submitted. |
| WAITING_FOR_LOA_SIGNATURE | Hosting order is waiting for the LoA signature. |
| IN_PROGRESS | Hosting order is in progress. |
| COMPLETED | Hosting order is completed. |
| REJECTED | Hosting order is rejected. |
The hosting order type.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_TYPE_UNSPECIFIED | The type of hosting order is unspecified. |
| IMPORT | Hosting order to import numbers. |
| TYPE_TEXT_ENABLE | Hosting order to text-enable numbers. |
The service plan to which the hosting order is associated.
Displays if a number is assigned to another aggregator in T-Mobile's platform, and requires migration from previous aggregator to Sinch.
{ "projectId": "d1923022-5199-4bb3-a513-c47n7a656bc5", "hostingOrderId": "01arz3nhyrtsv4rrffq69g5fav", "displayName": "Hosting order with campaignId, nnid and smsAppId", "regionCode": "US", "state": "SUBMITTED", "type": "IMPORT", "createdTime": "2023-01-12T14:34:40.968Z", "updatedTime": "2023-01-12T14:34:40.968Z", "scheduledOsrUpdateTime": "2023-01-13T14:34:40.968Z", "servicePlanId": "16e5c8d2odc842bda9a1b90e1673c174", "campaignId": "C3O84GA", "migrateToSinchTmo": true, "callbackUrl": "https://www.your-callback-server.com/callback", "hostingOrderInfo": { "businessName": "Sinch AB", "authorisedPerson": { … }, "address": { … }, "serviceProvider": "Sinch America Inc.", "currentVoiceCarrier": "Verizon", "nnid": "104029", "loaType": "DIRECT" } }
Found on your Sinch Customer Dashboard. Settings > Projects.
Found on your Sinch Customer Dashboard. Settings > Projects.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders/{hostingOrderId}/report
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders/01arz3ndektsv4rrffq69g5fav/report{ "total": 1, "osrUpdated": 1, "smsProvisioned": 1, "addedToCampaign": 1 }
Found on your Sinch Customer Dashboard. Settings > Projects.
Found on your Sinch Customer Dashboard. Settings > Projects.
Parameter used to order the returned hosting orders
| Enum Value | Description |
|---|---|
| createdTime | Order by the time the hosting order was created. |
| updatedTime | Order by the time the hosting order was last updated. |
The next page token value returned from a previous listing.
The maximum number of items to return, server can enforce an upper limit and overwrite the value.
Filter the results by the state of the OSR update.
| Enum Value | Description |
|---|---|
| DONE | The operation was completed successfully. |
| FAILED | The operation has failed. |
| IN_PROGRESS | The operation is currently in progress. |
| WAITING | The operation is pending and has not yet started. |
| STATE_UNSPECIFIED | The state is unspecified. |
Filter the results by the state of the campaign provisioning.
| Enum Value | Description |
|---|---|
| DONE | The operation was completed successfully. |
| FAILED | The operation has failed. |
| IN_PROGRESS | The operation is currently in progress. |
| WAITING | The operation is pending and has not yet started. |
| STATE_UNSPECIFIED | The state is unspecified. |
Filter the results by the state of the platform provisioning.
| Enum Value | Description |
|---|---|
| DONE | The operation was completed successfully. |
| FAILED | The operation has failed. |
| IN_PROGRESS | The operation is currently in progress. |
| WAITING | The operation is pending and has not yet started. |
| STATE_UNSPECIFIED | The state is unspecified. |
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders/{hostingOrderId}/numbers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders/01arz3ndektsv4rrffq69g5fav/numbers?orderBy=createdTime&pageToken=C2VNYXJrEg4KDCsxMjAxMjI2MzUyOQ%3D%3D&pageSize=20&osrUpdateState=DONE&campaignProvisioningState=DONE&platformProvisioningState=DONE'{ "numbers": [ { … } ], "nextPageToken": "string", "totalSize": 0 }
Found on your Sinch Customer Dashboard. Settings > Projects.
Found on your Sinch Customer Dashboard. Settings > Projects.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders/{hostingOrderId}/numbers/{phoneNumber}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders/01arz3ndektsv4rrffq69g5fav/numbers/+12025550134'{ "projectId": "YOUR_project_id", "hostingOrderId": "YOUR_hosting_order_id", "phoneNumber": "+12025550134", "osrUpdate": { "nnid": "string", "state": "DONE" }, "campaignProvisioning": { "campaignId": "YOUR_campaign_id", "state": "DONE" }, "platformProvisioning": { "servicePlanId": "YOUR_service_plan_id", "state": "DONE" }, "smsAtt": { "state": "DONE", "errorCode": "", "errorMessage": "string", "updateTime": "2025-04-02T19:45:28.650924Z" }, "smsTmo": { "state": "DONE", "errorCode": "", "errorMessage": "string", "updateTime": "2025-04-02T19:45:28.650924Z" }, "mmsAtt": { "state": "DONE", "errorCode": "", "errorMessage": "string", "updateTime": "2025-04-02T19:45:28.650924Z" }, "mmsTmo": { "state": "DONE", "errorCode": "", "errorMessage": "string", "updateTime": "2025-04-02T19:45:28.650924Z" } }
Request
Import numbers associated with hosting orders of a specific project and schedule the async provisioning to Sinch SMS platform and linking to campaign if applicable.
Note: This operation is limited to five numbers. If you want to increase the quantity of numbers you can import using this operation, please contact your account manager for authorization.
Found on your Sinch Customer Dashboard. Settings > Projects.
The request to import hosting orders numbers in the current project
An array of all the phone numbers associated with the import request.
The ID of the service plan to which the import request is associated.
The ID of the project to which the import request is associated.
The ID of the campaign to which the request is associated.
If a number is assigned to another aggregator in T-Mobile's platform, then T-Mobile will give an error code 60135 indicating that number needs to be “migrated” from previous aggregator to Sinch. This “migration” requires provisioning of number by setting this flag named to true for successful number linking process.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders:importNumbers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders:importNumbers \
-H 'Content-Type: application/json' \
-d '{
"displayName": "Import numbers order",
"regionCode": "US",
"numbers": [
"+17724295286",
"+17724295287"
],
"servicePlanId": "07d6c2621f364b68856fe4938b7bb78f",
"campaignId": "C3O8OGA",
"callbackUrl": "https://www.your-callback-server.com/callback",
"migrateToSinchTmo": true
}'A successful response with a hosting order, or an error
The region code of the hosting order. Number hosting is only available for the US and Canada, so you must enter either "US" or "CA".
The state of the hosting order.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_STATE_UNSPECIFIED | State is unspecified. |
| DRAFT | Hosting order is a draft. |
| SUBMITTED | Hosting order has been submitted. |
| WAITING_FOR_LOA_SIGNATURE | Hosting order is waiting for the LoA signature. |
| IN_PROGRESS | Hosting order is in progress. |
| COMPLETED | Hosting order is completed. |
| REJECTED | Hosting order is rejected. |
The hosting order type.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_TYPE_UNSPECIFIED | The type of hosting order is unspecified. |
| IMPORT | Hosting order to import numbers. |
| TYPE_TEXT_ENABLE | Hosting order to text-enable numbers. |
The service plan to which the hosting order is associated.
Displays if a number is assigned to another aggregator in T-Mobile's platform, and requires migration from previous aggregator to Sinch.
{ "projectId": "d1923022-5199-4bb3-a513-c47n7a656bc5", "hostingOrderId": "01arz3nhyrtsv4rrffq69g5fav", "displayName": "Hosting order with campaignId and smsAppId", "regionCode": "US", "state": "SUBMITTED", "type": "IMPORT", "createdTime": "2023-01-12T14:34:40.968Z", "updatedTime": "2023-01-12T14:34:40.968Z", "servicePlanId": "16e5c8d2odc842bda9a1b90e1673c174", "campaignId": "C3O84GA", "migrateToSinchTmo": true, "callbackUrl": "https://www.your-callback-server.com/callback", "numberImport": "{}" }
Found on your Sinch Customer Dashboard. Settings > Projects.
The request to text-enable hosting orders numbers in the current project
An array of all the phone numbers associated with the hosting order.
The ID of the service plan to which the hosting order is associated.
The ID of the project to which the hosting order is associated.
Defaults to either Sinch NNID or what was originally configured on the customer account. Sinch encourages customers to use the Sinch NNID, but if you want to use another NNID, please contact your account manager.
The ID of the campaign to which the hosting order is associated.
You can set up a blanket Letter of Authorization (LoA) that will allow you to import numbers to your account without having to sign an LoA each time you submit a request. To set up a blanket LoA, email your account manager. Once the LoA has been approved, you can use this blanketLoaInfo object in your requests. The blanketLoaInfo object should be sent as an empty object.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders:textEnableNumbers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders:textEnableNumbers \
-H 'Content-Type: application/json' \
-d '{
"regionCode": "US",
"numbers": [
"+17724295286",
"+17724295287"
],
"servicePlanId": "07d6c2621f364b68856fe4938b7bb78f",
"campaignId": "C3O8OGA",
"callbackUrl": "https://www.your-callback-server.com/callback",
"directLoaInfo": {
"authorisedPerson": {
"firstName": "John",
"lastName": "Smith",
"email": "email@domain.com"
},
"address": {
"buildingNumber": "2433",
"street": "Vesta Drive",
"city": "Chicago",
"state": "IL",
"postalCode": "60647",
"country": "US"
},
"currentVoiceCarrier": "Verizon"
},
"scheduledOsrUpdateTime": "2023-01-13T14:34:40.968Z",
"migrateToSinchTmo": true
}'A successful response with a hosting order, or an error
The region code of the hosting order. Number hosting is only available for the US and Canada, so you must enter either "US" or "CA".
The state of the hosting order.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_STATE_UNSPECIFIED | State is unspecified. |
| DRAFT | Hosting order is a draft. |
| SUBMITTED | Hosting order has been submitted. |
| WAITING_FOR_LOA_SIGNATURE | Hosting order is waiting for the LoA signature. |
| IN_PROGRESS | Hosting order is in progress. |
| COMPLETED | Hosting order is completed. |
| REJECTED | Hosting order is rejected. |
The hosting order type.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_TYPE_UNSPECIFIED | The type of hosting order is unspecified. |
| IMPORT | Hosting order to import numbers. |
| TYPE_TEXT_ENABLE | Hosting order to text-enable numbers. |
The service plan to which the hosting order is associated.
Displays if a number is assigned to another aggregator in T-Mobile's platform, and requires migration from previous aggregator to Sinch.
{ "projectId": "d1923022-5199-4bb3-a513-c47n7a656bc5", "hostingOrderId": "01arz3nhyrtsv4rrffq69g5fav", "displayName": "Hosting order with campaignId, nnid and smsAppId", "regionCode": "US", "state": "SUBMITTED", "type": "TYPE_TEXT_ENABLE", "createdTime": "2023-01-12T14:34:40.968Z", "updatedTime": "2023-01-12T14:34:40.968Z", "scheduledOsrUpdateTime": "2023-01-13T14:34:40.968Z", "servicePlanId": "16e5c8d2odc842bda9a1b90e1673c174", "campaignId": "C3O84GA", "migrateToSinchTmo": true, "callbackUrl": "https://www.your-callback-server.com/callback", "hostingOrderInfo": { "businessName": "Sinch AB", "authorisedPerson": { … }, "address": { … }, "serviceProvider": "Sinch America Inc.", "currentVoiceCarrier": "Verizon", "nnid": "104029", "loaType": "DIRECT" } }
Found on your Sinch Customer Dashboard. Settings > Projects.
The request to text-enable hosting orders Toll Free numbers in the current project
Request for text enabling project Toll Free numbers.
Letter of Authorization for direct Sinch customers.
The person authorized and responsible for the hosting order.
The first name of the authorized person.
The last name of the authorized person.
The address of the business.
The building number of the address.
- Global API
https://imported.numbers.api.sinch.com/v1/projects/{projectId}/hostingOrders:textEnableTollFreeNumbers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://imported.numbers.api.sinch.com/v1/projects/d1923022-5199-4bb3-a513-c47b3a656bc5/hostingOrders:textEnableTollFreeNumbers \
-H 'Content-Type: application/json' \
-d '{
"regionCode": "US",
"numbers": [
"+18335870229",
"+18339460473"
],
"servicePlanId": "07d6c2621f364b68856fe4938b7bb78f",
"callbackUrl": "https://www.your-callback-server.com/callback",
"directLoaInfo": {
"authorisedPerson": {
"firstName": "John",
"lastName": "Smith",
"email": "email@domain.com"
},
"address": {
"buildingNumber": "2433",
"street": "Vesta Drive",
"city": "Chicago",
"state": "IL",
"postalCode": "60647",
"country": "US"
},
"currentVoiceCarrier": "Verizon",
"scheduledZipwhipProvisioningTime": "2023-01-13T14:34:40.968Z",
"migrateToSinchTmo": true
}
}'A successful response with a hosting order, or an error
The region code of the hosting order. Number hosting is only available for the US and Canada, so you must enter either "US" or "CA".
The state of the hosting order.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_STATE_UNSPECIFIED | State is unspecified. |
| DRAFT | Hosting order is a draft. |
| SUBMITTED | Hosting order has been submitted. |
| WAITING_FOR_LOA_SIGNATURE | Hosting order is waiting for the LoA signature. |
| IN_PROGRESS | Hosting order is in progress. |
| COMPLETED | Hosting order is completed. |
| REJECTED | Hosting order is rejected. |
The hosting order type.
| Enum Value | Description |
|---|---|
| HOSTING_ORDER_TYPE_UNSPECIFIED | The type of hosting order is unspecified. |
| IMPORT | Hosting order to import numbers. |
| TYPE_TEXT_ENABLE | Hosting order to text-enable numbers. |
The service plan to which the hosting order is associated.
Displays if a number is assigned to another aggregator in T-Mobile's platform, and requires migration from previous aggregator to Sinch.
{ "projectId": "d1923022-5199-4bb3-a513-c47n7a656bc5", "hostingOrderId": "01arz3nhyrtsv4rrffq69g5fav", "displayName": "Hosting order with campaignId, nnid and smsAppId", "regionCode": "US", "state": "SUBMITTED", "type": "TYPE_TEXT_ENABLE", "createdTime": "2023-01-12T14:34:40.968Z", "updatedTime": "2023-01-12T14:34:40.968Z", "scheduledOsrUpdateTime": "2023-01-13T14:34:40.968Z", "servicePlanId": "16e5c8d2odc842bda9a1b90e1673c174", "campaignId": "C3O84GA", "migrateToSinchTmo": true, "callbackUrl": "https://www.your-callback-server.com/callback", "hostingOrderInfo": { "businessName": "Sinch AB", "authorisedPerson": { … }, "address": { … }, "serviceProvider": "Sinch America Inc.", "currentVoiceCarrier": "Verizon", "nnid": "104029", "loaType": "DIRECT" } }
Imported Numbers
Use the Imported Numbers API endpoints to list imported numbers or import a number that's already been provisioned with an NNID for use with Sinch. Imported numbers can be used with Sinch SMS services.
Note: The SMS enablement process is only supported in United States and Canada.
Qualified Numbers
You can use the Qualified Numbers API to qualify numbers you want Sinch to host and have available for use with Sinch SMS services. Qualifying a number involves verifying ownership of a number either by providing a one time passcode sent to the number by voice call or by providing invoices for multiple numbers. Once numbers are qualified, you can then enable those numbers for SMS text messaging services.
Note: The SMS enablement process is only supported in United States and Canada.
Imported Numbers and Hosting Orders Callbacks
You can set up callback URLs to receive event notifications when your numbers are updated.
When delivering events the order is not guaranteed (for example, a failed event scheduled for retry will not block other events that were queued).
The client's callback handler must implement the state machine that can decide what to do with unexpected events, for example, "old" events or invalid state transitions. In these cases the handler could use the API to GET the latest state for the resource.
The callback handler is expected to "ingest" the event and respond with 200 OK. The domain-specific business logic and processes should be executed outside of the callback request, as internal asynchronous jobs.
To use callbacks, add the following IP addresses to your allowlist:
- 54.76.19.159
- 54.78.194.39
- 54.155.83.128