Chilkat Online Tools

TCL / Twilio Messaging / SMS / Buy a phone number

Back to Collection Items

load ./chilkat.dll

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set http [new_CkHttp]

CkHttp_put_BasicAuth $http 1
CkHttp_put_Login $http "{{TWILIO_ACCOUNT_SID}}"
CkHttp_put_Password $http "{{TWILIO_AUTH_TOKEN}}"

set req [new_CkHttpRequest]

CkHttpRequest_AddParam $req "PhoneNumber" "+12513060906"

# resp is a CkHttpResponse
set resp [CkHttp_PostUrlEncoded $http "https://api.twilio.com/2010-04-01/Accounts/:AccountSid/IncomingPhoneNumbers.json" $req]
if {[CkHttp_get_LastMethodSuccess $http] == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpRequest $req
    exit
}

set sbResponseBody [new_CkStringBuilder]

CkHttpResponse_GetBodySb $resp $sbResponseBody

set jResp [new_CkJsonObject]

CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0

puts "Response Body:"
puts [CkJsonObject_emit $jResp]

set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
    puts "Response Header:"
    puts [CkHttpResponse_header $resp]
    puts "Failed."
    delete_CkHttpResponse $resp

    delete_CkHttp $http
    delete_CkHttpRequest $req
    delete_CkStringBuilder $sbResponseBody
    delete_CkJsonObject $jResp
    exit
}

delete_CkHttpResponse $resp

# Sample JSON response:
# (Sample code for parsing the JSON response is shown below)

# {
#   "account_sid": "ACB6",
#   "address_requirements": "foreign",
#   "address_sid": "ADeA",
#   "api_version": "reprehenderit laborum Excepteur",
#   "beta": false,
#   "bundle_sid": "BUB2",
#   "capabilities": {},
#   "date_created": "incididunt ad",
#   "date_updated": "consequat nostrud non Excepteur",
#   "emergency_address_sid": "ADAd",
#   "emergency_status": "Inactive",
#   "friendly_name": "Excepteur qui aute occaecat",
#   "identity_sid": "RI4F",
#   "origin": "ex sit non",
#   "phone_number": "incididunt",
#   "sid": "PNFd",
#   "sms_application_sid": "APD1",
#   "sms_fallback_method": "put",
#   "sms_fallback_url": "https://sqnVhokvKfX.ggVS",
#   "sms_method": "delete",
#   "sms_url": "http://KvTTK.eixDOBAKnXDodC",
#   "status": "Duis est",
#   "status_callback": "https://lukPySBKCSJZRDfZeLGCQEJiiZlrSGtT.slbsog2f2Byb3SNOpnvFCnKiEUbexVWC5tK9Qaj0IFkIVhVKN+mNB826euAwsZOYNBGrdhphsN",
#   "status_callback_method": "HEAD",
#   "trunk_sid": "TK29",
#   "uri": "http://efvlxkNPQlPFtoHjtYEM.qceW6gOSsyL5X8uZPGhiRrpPWucrUmJlQexyf4Dl9T7ahcoPDgC3k2TRG",
#   "voice_application_sid": "AP5b",
#   "voice_caller_id_lookup": true,
#   "voice_fallback_method": "head",
#   "voice_fallback_url": "https://YYJSXXIemHJDgyPulvPuSDhUfIJ.ofhsUNmlqzZSTo7nnhXYYLQgunn2ScfFWt4qoJ,M2zYA,",
#   "voice_method": "PATCH",
#   "voice_receive_mode": "voice",
#   "voice_url": "https://lNOljQzheebolftPuuCa.qjzdVdF,m6lXjsq+rV4sijQkntubbHInkrQaJO2zBraF0"
# }

# Sample code for parsing the JSON response...
# Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

set date_created [new_CkDtObj]

set date_updated [new_CkDtObj]

set account_sid [CkJsonObject_stringOf $jResp "account_sid"]
set address_requirements [CkJsonObject_stringOf $jResp "address_requirements"]
set address_sid [CkJsonObject_stringOf $jResp "address_sid"]
set api_version [CkJsonObject_stringOf $jResp "api_version"]
set beta [CkJsonObject_BoolOf $jResp "beta"]
set bundle_sid [CkJsonObject_stringOf $jResp "bundle_sid"]
CkJsonObject_DtOf $jResp "date_created" 0 $date_created
CkJsonObject_DtOf $jResp "date_updated" 0 $date_updated
set emergency_address_sid [CkJsonObject_stringOf $jResp "emergency_address_sid"]
set emergency_status [CkJsonObject_stringOf $jResp "emergency_status"]
set friendly_name [CkJsonObject_stringOf $jResp "friendly_name"]
set identity_sid [CkJsonObject_stringOf $jResp "identity_sid"]
set origin [CkJsonObject_stringOf $jResp "origin"]
set phone_number [CkJsonObject_stringOf $jResp "phone_number"]
set sid [CkJsonObject_stringOf $jResp "sid"]
set sms_application_sid [CkJsonObject_stringOf $jResp "sms_application_sid"]
set sms_fallback_method [CkJsonObject_stringOf $jResp "sms_fallback_method"]
set sms_fallback_url [CkJsonObject_stringOf $jResp "sms_fallback_url"]
set sms_method [CkJsonObject_stringOf $jResp "sms_method"]
set sms_url [CkJsonObject_stringOf $jResp "sms_url"]
set status [CkJsonObject_stringOf $jResp "status"]
set status_callback [CkJsonObject_stringOf $jResp "status_callback"]
set status_callback_method [CkJsonObject_stringOf $jResp "status_callback_method"]
set trunk_sid [CkJsonObject_stringOf $jResp "trunk_sid"]
set uri [CkJsonObject_stringOf $jResp "uri"]
set voice_application_sid [CkJsonObject_stringOf $jResp "voice_application_sid"]
set voice_caller_id_lookup [CkJsonObject_BoolOf $jResp "voice_caller_id_lookup"]
set voice_fallback_method [CkJsonObject_stringOf $jResp "voice_fallback_method"]
set voice_fallback_url [CkJsonObject_stringOf $jResp "voice_fallback_url"]
set voice_method [CkJsonObject_stringOf $jResp "voice_method"]
set voice_receive_mode [CkJsonObject_stringOf $jResp "voice_receive_mode"]
set voice_url [CkJsonObject_stringOf $jResp "voice_url"]

delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
delete_CkDtObj $date_created
delete_CkDtObj $date_updated

Curl Command

curl -X POST
	-u '{{TWILIO_ACCOUNT_SID}}:{{TWILIO_AUTH_TOKEN}}'
	-H "Content-Type: application/x-www-form-urlencoded"
	--data-urlencode 'PhoneNumber=+12513060906'
https://api.twilio.com/2010-04-01/Accounts/:AccountSid/IncomingPhoneNumbers.json

Postman Collection Item JSON

{
  "name": "Buy a phone number",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "var jsonData = JSON.parse(responseBody);",
          "postman.setEnvironmentVariable('TWILIO_PHONE_NUMBER', jsonData.phone_number);"
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "auth": {
      "type": "basic",
      "basic": [
        {
          "key": "password",
          "value": "{{TWILIO_AUTH_TOKEN}}",
          "type": "string"
        },
        {
          "key": "username",
          "value": "{{TWILIO_ACCOUNT_SID}}",
          "type": "string"
        }
      ]
    },
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/x-www-form-urlencoded"
      }
    ],
    "body": {
      "mode": "urlencoded",
      "urlencoded": [
        {
          "key": "PhoneNumber",
          "value": "+12513060906",
          "description": "The phone number to purchase specified in [E.164](https://www.twilio.com/docs/glossary/what-e164) format.  E.164 phone numbers consist of a + followed by the country code and subscriber number without punctuation characters. For example, +14155551234."
        },
        {
          "key": "AddressSid",
          "value": "<string>",
          "description": "The SID of the Address resource we should associate with the new phone number. Some regions require addresses to meet local regulations.",
          "disabled": true
        },
        {
          "key": "ApiVersion",
          "value": "<string>",
          "description": "The API version to use for incoming calls made to the new phone number. The default is `2010-04-01`.",
          "disabled": true
        },
        {
          "key": "AreaCode",
          "value": "<string>",
          "description": "The desired area code for your new incoming phone number. Can be any three-digit, US or Canada area code. We will provision an available phone number within this area code for you. **You must provide an `area_code` or a `phone_number`.** (US and Canada only).",
          "disabled": true
        },
        {
          "key": "BundleSid",
          "value": "<string>",
          "description": "The SID of the Bundle resource that you associate with the phone number. Some regions require a Bundle to meet local Regulations.",
          "disabled": true
        },
        {
          "key": "EmergencyAddressSid",
          "value": "<string>",
          "description": "The SID of the emergency address configuration to use for emergency calling from the new phone number.",
          "disabled": true
        },
        {
          "key": "EmergencyStatus",
          "value": "<string>",
          "description": "The configuration status parameter that determines whether the new phone number is enabled for emergency calling. (This can only be one of Active,Inactive)",
          "disabled": true
        },
        {
          "key": "FriendlyName",
          "value": "<string>",
          "description": "A descriptive string that you created to describe the new phone number. It can be up to 64 characters long. By default, this is a formatted version of the new phone number.",
          "disabled": true
        },
        {
          "key": "IdentitySid",
          "value": "<string>",
          "description": "The SID of the Identity resource that we should associate with the new phone number. Some regions require an identity to meet local regulations.",
          "disabled": true
        },
        {
          "key": "SmsApplicationSid",
          "value": "<string>",
          "description": "The SID of the application that should handle SMS messages sent to the new phone number. If an `sms_application_sid` is present, we ignore all of the `sms_*_url` urls and use those set on the application.",
          "disabled": true
        },
        {
          "key": "SmsFallbackMethod",
          "value": "<string>",
          "description": "The HTTP method that we should use to call `sms_fallback_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)",
          "disabled": true
        },
        {
          "key": "SmsFallbackUrl",
          "value": "<uri>",
          "description": "The URL that we should call when an error occurs while requesting or executing the TwiML defined by `sms_url`.",
          "disabled": true
        },
        {
          "key": "SmsMethod",
          "value": "<string>",
          "description": "The HTTP method that we should use to call `sms_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)",
          "disabled": true
        },
        {
          "key": "SmsUrl",
          "value": "<uri>",
          "description": "The URL we should call when the new phone number receives an incoming SMS message.",
          "disabled": true
        },
        {
          "key": "StatusCallback",
          "value": "<uri>",
          "description": "The URL we should call using the `status_callback_method` to send status information to your application.",
          "disabled": true
        },
        {
          "key": "StatusCallbackMethod",
          "value": "<string>",
          "description": "The HTTP method we should use to call `status_callback`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)",
          "disabled": true
        },
        {
          "key": "TrunkSid",
          "value": "<string>",
          "description": "The SID of the Trunk we should use to handle calls to the new phone number. If a `trunk_sid` is present, we ignore all of the voice urls and voice applications and use only those set on the Trunk. Setting a `trunk_sid` will automatically delete your `voice_application_sid` and vice versa.",
          "disabled": true
        },
        {
          "key": "VoiceApplicationSid",
          "value": "<string>",
          "description": "The SID of the application we should use to handle calls to the new phone number. If a `voice_application_sid` is present, we ignore all of the voice urls and use only those set on the application. Setting a `voice_application_sid` will automatically delete your `trunk_sid` and vice versa.",
          "disabled": true
        },
        {
          "key": "VoiceCallerIdLookup",
          "value": "<boolean>",
          "description": "Whether to lookup the caller's name from the CNAM database and post it to your app. Can be: `true` or `false` and defaults to `false`.",
          "disabled": true
        },
        {
          "key": "VoiceFallbackMethod",
          "value": "<string>",
          "description": "The HTTP method that we should use to call `voice_fallback_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)",
          "disabled": true
        },
        {
          "key": "VoiceFallbackUrl",
          "value": "<uri>",
          "description": "The URL that we should call when an error occurs retrieving or executing the TwiML requested by `url`.",
          "disabled": true
        },
        {
          "key": "VoiceMethod",
          "value": "<string>",
          "description": "The HTTP method that we should use to call `voice_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)",
          "disabled": true
        },
        {
          "key": "VoiceReceiveMode",
          "value": "<string>",
          "description": "The configuration parameter for the new phone number to receive incoming voice calls or faxes. Can be: `fax` or `voice` and defaults to `voice`. (This can only be one of voice,fax)",
          "disabled": true
        },
        {
          "key": "VoiceUrl",
          "value": "<uri>",
          "description": "The URL that we should call to answer a call to the new phone number. The `voice_url` will not be called if a `voice_application_sid` or a `trunk_sid` is set.",
          "disabled": true
        }
      ]
    },
    "url": {
      "raw": "{{2010-04-01-Accounts-AccountSid-IncomingPhoneNumbers.json-Url}}/2010-04-01/Accounts/:AccountSid/IncomingPhoneNumbers.json",
      "host": [
        "{{2010-04-01-Accounts-AccountSid-IncomingPhoneNumbers.json-Url}}"
      ],
      "path": [
        "2010-04-01",
        "Accounts",
        ":AccountSid",
        "IncomingPhoneNumbers.json"
      ],
      "variable": [
        {
          "key": "AccountSid",
          "value": "{{TWILIO_ACCOUNT_SID}}",
          "description": "(Required) The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that will create the resource."
        }
      ]
    },
    "description": "Purchase a phone-number for your Twilio account. Afterwards you can use this number to send or receive SMS and calls.\n\nRead more about it in the [Twilio Docs](https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource#create-an-incomingphonenumber-resource)"
  },
  "response": [
    {
      "name": "Created",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "urlencoded",
          "urlencoded": [
            {
              "key": "AddressSid",
              "value": "<string>",
              "description": "The SID of the Address resource we should associate with the new phone number. Some regions require addresses to meet local regulations."
            },
            {
              "key": "ApiVersion",
              "value": "<string>",
              "description": "The API version to use for incoming calls made to the new phone number. The default is `2010-04-01`."
            },
            {
              "key": "AreaCode",
              "value": "<string>",
              "description": "The desired area code for your new incoming phone number. Can be any three-digit, US or Canada area code. We will provision an available phone number within this area code for you. **You must provide an `area_code` or a `phone_number`.** (US and Canada only)."
            },
            {
              "key": "BundleSid",
              "value": "<string>",
              "description": "The SID of the Bundle resource that you associate with the phone number. Some regions require a Bundle to meet local Regulations."
            },
            {
              "key": "EmergencyAddressSid",
              "value": "<string>",
              "description": "The SID of the emergency address configuration to use for emergency calling from the new phone number."
            },
            {
              "key": "EmergencyStatus",
              "value": "<string>",
              "description": "The configuration status parameter that determines whether the new phone number is enabled for emergency calling. (This can only be one of Active,Inactive)"
            },
            {
              "key": "FriendlyName",
              "value": "<string>",
              "description": "A descriptive string that you created to describe the new phone number. It can be up to 64 characters long. By default, this is a formatted version of the new phone number."
            },
            {
              "key": "IdentitySid",
              "value": "<string>",
              "description": "The SID of the Identity resource that we should associate with the new phone number. Some regions require an identity to meet local regulations."
            },
            {
              "key": "PhoneNumber",
              "value": "<string>",
              "description": "The phone number to purchase specified in [E.164](https://www.twilio.com/docs/glossary/what-e164) format.  E.164 phone numbers consist of a + followed by the country code and subscriber number without punctuation characters. For example, +14155551234."
            },
            {
              "key": "SmsApplicationSid",
              "value": "<string>",
              "description": "The SID of the application that should handle SMS messages sent to the new phone number. If an `sms_application_sid` is present, we ignore all of the `sms_*_url` urls and use those set on the application."
            },
            {
              "key": "SmsFallbackMethod",
              "value": "<string>",
              "description": "The HTTP method that we should use to call `sms_fallback_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)"
            },
            {
              "key": "SmsFallbackUrl",
              "value": "<uri>",
              "description": "The URL that we should call when an error occurs while requesting or executing the TwiML defined by `sms_url`."
            },
            {
              "key": "SmsMethod",
              "value": "<string>",
              "description": "The HTTP method that we should use to call `sms_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)"
            },
            {
              "key": "SmsUrl",
              "value": "<uri>",
              "description": "The URL we should call when the new phone number receives an incoming SMS message."
            },
            {
              "key": "StatusCallback",
              "value": "<uri>",
              "description": "The URL we should call using the `status_callback_method` to send status information to your application."
            },
            {
              "key": "StatusCallbackMethod",
              "value": "<string>",
              "description": "The HTTP method we should use to call `status_callback`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)"
            },
            {
              "key": "TrunkSid",
              "value": "<string>",
              "description": "The SID of the Trunk we should use to handle calls to the new phone number. If a `trunk_sid` is present, we ignore all of the voice urls and voice applications and use only those set on the Trunk. Setting a `trunk_sid` will automatically delete your `voice_application_sid` and vice versa."
            },
            {
              "key": "VoiceApplicationSid",
              "value": "<string>",
              "description": "The SID of the application we should use to handle calls to the new phone number. If a `voice_application_sid` is present, we ignore all of the voice urls and use only those set on the application. Setting a `voice_application_sid` will automatically delete your `trunk_sid` and vice versa."
            },
            {
              "key": "VoiceCallerIdLookup",
              "value": "<boolean>",
              "description": "Whether to lookup the caller's name from the CNAM database and post it to your app. Can be: `true` or `false` and defaults to `false`."
            },
            {
              "key": "VoiceFallbackMethod",
              "value": "<string>",
              "description": "The HTTP method that we should use to call `voice_fallback_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)"
            },
            {
              "key": "VoiceFallbackUrl",
              "value": "<uri>",
              "description": "The URL that we should call when an error occurs retrieving or executing the TwiML requested by `url`."
            },
            {
              "key": "VoiceMethod",
              "value": "<string>",
              "description": "The HTTP method that we should use to call `voice_url`. Can be: `GET` or `POST` and defaults to `POST`. (This can only be one of head,get,post,patch,put,delete,HEAD,GET,POST,PATCH,PUT,DELETE)"
            },
            {
              "key": "VoiceReceiveMode",
              "value": "<string>",
              "description": "The configuration parameter for the new phone number to receive incoming voice calls or faxes. Can be: `fax` or `voice` and defaults to `voice`. (This can only be one of voice,fax)"
            },
            {
              "key": "VoiceUrl",
              "value": "<uri>",
              "description": "The URL that we should call to answer a call to the new phone number. The `voice_url` will not be called if a `voice_application_sid` or a `trunk_sid` is set."
            }
          ]
        },
        "url": {
          "raw": "{{2010-04-01-Accounts-AccountSid-IncomingPhoneNumbers.json-Url}}/2010-04-01/Accounts/:AccountSid/IncomingPhoneNumbers.json",
          "host": [
            "{{2010-04-01-Accounts-AccountSid-IncomingPhoneNumbers.json-Url}}"
          ],
          "path": [
            "2010-04-01",
            "Accounts",
            ":AccountSid",
            "IncomingPhoneNumbers.json"
          ],
          "variable": [
            {
              "key": "AccountSid"
            }
          ]
        }
      },
      "status": "Created",
      "code": 201,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"account_sid\": \"ACB6\",\n \"address_requirements\": \"foreign\",\n \"address_sid\": \"ADeA\",\n \"api_version\": \"reprehenderit laborum Excepteur\",\n \"beta\": false,\n \"bundle_sid\": \"BUB2\",\n \"capabilities\": {},\n \"date_created\": \"incididunt ad\",\n \"date_updated\": \"consequat nostrud non Excepteur\",\n \"emergency_address_sid\": \"ADAd\",\n \"emergency_status\": \"Inactive\",\n \"friendly_name\": \"Excepteur qui aute occaecat\",\n \"identity_sid\": \"RI4F\",\n \"origin\": \"ex sit non\",\n \"phone_number\": \"incididunt\",\n \"sid\": \"PNFd\",\n \"sms_application_sid\": \"APD1\",\n \"sms_fallback_method\": \"put\",\n \"sms_fallback_url\": \"https://sqnVhokvKfX.ggVS\",\n \"sms_method\": \"delete\",\n \"sms_url\": \"http://KvTTK.eixDOBAKnXDodC\",\n \"status\": \"Duis est\",\n \"status_callback\": \"https://lukPySBKCSJZRDfZeLGCQEJiiZlrSGtT.slbsog2f2Byb3SNOpnvFCnKiEUbexVWC5tK9Qaj0IFkIVhVKN+mNB826euAwsZOYNBGrdhphsN\",\n \"status_callback_method\": \"HEAD\",\n \"trunk_sid\": \"TK29\",\n \"uri\": \"http://efvlxkNPQlPFtoHjtYEM.qceW6gOSsyL5X8uZPGhiRrpPWucrUmJlQexyf4Dl9T7ahcoPDgC3k2TRG\",\n \"voice_application_sid\": \"AP5b\",\n \"voice_caller_id_lookup\": true,\n \"voice_fallback_method\": \"head\",\n \"voice_fallback_url\": \"https://YYJSXXIemHJDgyPulvPuSDhUfIJ.ofhsUNmlqzZSTo7nnhXYYLQgunn2ScfFWt4qoJ,M2zYA,\",\n \"voice_method\": \"PATCH\",\n \"voice_receive_mode\": \"voice\",\n \"voice_url\": \"https://lNOljQzheebolftPuuCa.qjzdVdF,m6lXjsq+rV4sijQkntubbHInkrQaJO2zBraF0\"\n}"
    }
  ]
}