Back to Collection Items
#include <C_CkHttp.h>
#include <C_CkHttpRequest.h>
#include <C_CkHttpResponse.h>
#include <C_CkStringBuilder.h>
#include <C_CkJsonObject.h>
#include <C_CkDtObj.h>
void ChilkatSample(void)
{
HCkHttp http;
BOOL success;
HCkHttpRequest req;
HCkHttpResponse resp;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int respStatusCode;
HCkDtObj date_created;
HCkDtObj date_updated;
const char *account_sid;
const char *address_requirements;
const char *address_sid;
const char *api_version;
BOOL beta;
const char *bundle_sid;
const char *emergency_address_sid;
const char *emergency_status;
const char *friendly_name;
const char *identity_sid;
const char *origin;
const char *phone_number;
const char *sid;
const char *sms_application_sid;
const char *sms_fallback_method;
const char *sms_fallback_url;
const char *sms_method;
const char *sms_url;
const char *status;
const char *status_callback;
const char *status_callback_method;
const char *trunk_sid;
const char *uri;
const char *voice_application_sid;
BOOL voice_caller_id_lookup;
const char *voice_fallback_method;
const char *voice_fallback_url;
const char *voice_method;
const char *voice_receive_mode;
const char *voice_url;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttp_Create();
CkHttp_putBasicAuth(http,TRUE);
CkHttp_putLogin(http,"{{TWILIO_ACCOUNT_SID}}");
CkHttp_putPassword(http,"{{TWILIO_AUTH_TOKEN}}");
req = CkHttpRequest_Create();
CkHttpRequest_AddParam(req,"PhoneNumber","+12513060906");
resp = CkHttp_PostUrlEncoded(http,"https://api.twilio.com/2010-04-01/Accounts/:AccountSid/IncomingPhoneNumbers.json",req);
if (CkHttp_getLastMethodSuccess(http) == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
return;
}
sbResponseBody = CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
respStatusCode = CkHttpResponse_getStatusCode(resp);
printf("Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
printf("Response Header:\n");
printf("%s\n",CkHttpResponse_header(resp));
printf("Failed.\n");
CkHttpResponse_Dispose(resp);
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
return;
}
CkHttpResponse_Dispose(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
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
date_created = CkDtObj_Create();
date_updated = CkDtObj_Create();
account_sid = CkJsonObject_stringOf(jResp,"account_sid");
address_requirements = CkJsonObject_stringOf(jResp,"address_requirements");
address_sid = CkJsonObject_stringOf(jResp,"address_sid");
api_version = CkJsonObject_stringOf(jResp,"api_version");
beta = CkJsonObject_BoolOf(jResp,"beta");
bundle_sid = CkJsonObject_stringOf(jResp,"bundle_sid");
CkJsonObject_DtOf(jResp,"date_created",FALSE,date_created);
CkJsonObject_DtOf(jResp,"date_updated",FALSE,date_updated);
emergency_address_sid = CkJsonObject_stringOf(jResp,"emergency_address_sid");
emergency_status = CkJsonObject_stringOf(jResp,"emergency_status");
friendly_name = CkJsonObject_stringOf(jResp,"friendly_name");
identity_sid = CkJsonObject_stringOf(jResp,"identity_sid");
origin = CkJsonObject_stringOf(jResp,"origin");
phone_number = CkJsonObject_stringOf(jResp,"phone_number");
sid = CkJsonObject_stringOf(jResp,"sid");
sms_application_sid = CkJsonObject_stringOf(jResp,"sms_application_sid");
sms_fallback_method = CkJsonObject_stringOf(jResp,"sms_fallback_method");
sms_fallback_url = CkJsonObject_stringOf(jResp,"sms_fallback_url");
sms_method = CkJsonObject_stringOf(jResp,"sms_method");
sms_url = CkJsonObject_stringOf(jResp,"sms_url");
status = CkJsonObject_stringOf(jResp,"status");
status_callback = CkJsonObject_stringOf(jResp,"status_callback");
status_callback_method = CkJsonObject_stringOf(jResp,"status_callback_method");
trunk_sid = CkJsonObject_stringOf(jResp,"trunk_sid");
uri = CkJsonObject_stringOf(jResp,"uri");
voice_application_sid = CkJsonObject_stringOf(jResp,"voice_application_sid");
voice_caller_id_lookup = CkJsonObject_BoolOf(jResp,"voice_caller_id_lookup");
voice_fallback_method = CkJsonObject_stringOf(jResp,"voice_fallback_method");
voice_fallback_url = CkJsonObject_stringOf(jResp,"voice_fallback_url");
voice_method = CkJsonObject_stringOf(jResp,"voice_method");
voice_receive_mode = CkJsonObject_stringOf(jResp,"voice_receive_mode");
voice_url = CkJsonObject_stringOf(jResp,"voice_url");
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
CkDtObj_Dispose(date_created);
CkDtObj_Dispose(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}"
}
]
}