Download complete #Twilio Pricing table in C#
Twilio offer a great service in providing international phone numbers, – and it’s the provider behind CloudAnsweringMachine.com but the price varies greatly like from a $1 number in the US to a $110/month Toll free number in Bulgaria.
So, here is some code that queries the Twilio API to download all countries, and stores the pricing information in a database :
var strUrl = “https://pricing.twilio.com/v1/PhoneNumbers/Countries/?PageSize=100”;
var wc = new WebClient();
wc.Headers[“Content-Type”] = “application/x-www-form-urlencoded”;
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(username + “:” + password));
wc.Headers[HttpRequestHeader.Authorization] = string.Format(
“Basic {0}”, credentials);
var strCountries = wc.DownloadString(strUrl);
var jCountries = JObject.Parse(strCountries);
foreach(var jCountry in jCountries[“countries”])
{
Console.WriteLine(“Downloading ” + jCountry[“country”].ToString());
try
{
var strCountryUrl = jCountry[“url”].ToString();
var strCountryJson = wc.DownloadString(strCountryUrl);
var jCountryJson = JObject.Parse(strCountryJson);
if (jCountryJson[“price_unit”].ToString() != “USD”) throw new Exception(“Should be usd!”);
foreach (var jPhoneNumber in jCountryJson[“phone_number_prices”])
{
var strSQL = “insert into CAMPricing (country, numberType, price) values (‘{0}’,'{1}’,{2})”;
strSQL = string.Format(strSQL,
jCountryJson[“iso_country”].ToString(),
jPhoneNumber[“number_type”].ToString(),
jPhoneNumber[“current_price”].ToString());
Database.ExecuteNonQuery(strSQL);
}
}
catch(Exception ex)
{
Console.WriteLine(“Failed to download ” + jCountry[“country”].ToString());
Console.WriteLine(ex.ToString());
}}
And here is the pricing table correct as of time of writing:
ISO Country | Number Type | Price (USD) |
AE | toll free | 25.00 |
AR | local | 8.00 |
AR | toll free | 25.00 |
AT | mobile | 6.00 |
AT | national | 1.00 |
AT | toll free | 25.00 |
AU | local | 2.50 |
AU | mobile | 6.00 |
AU | toll free | 15.00 |
BA | local | 42.00 |
BA | national | 42.00 |
BB | local | 27.00 |
BE | local | 1.00 |
BE | mobile | 1.00 |
BE | national | 1.00 |
BE | toll free | 25.00 |
BG | local | 3.00 |
BG | toll free | 110.00 |
BJ | mobile | 27.00 |
BO | toll free | 25.00 |
BR | local | 4.00 |
BR | toll free | 35.00 |
BW | toll free | 50.00 |
BY | toll free | 25.00 |
CA | local | 1.00 |
CA | toll free | 2.00 |
CH | local | 1.00 |
CH | mobile | 8.00 |
CH | toll free | 25.00 |
CL | local | 7.00 |
CL | mobile | 10.00 |
CO | local | 14.00 |
CO | toll free | 25.00 |
CY | national | 5.00 |
CZ | local | 1.00 |
CZ | mobile | 12.00 |
CZ | national | 1.00 |
CZ | toll free | 35.00 |
DE | local | 1.00 |
DE | mobile | 5.00 |
DE | national | 1.00 |
DE | toll free | 25.00 |
DK | local | 1.00 |
DK | toll free | 25.00 |
DO | local | 7.00 |
DZ | local | 33.00 |
DZ | national | 33.00 |
EC | local | 34.00 |
EE | local | 1.00 |
EE | mobile | 3.00 |
EE | national | 1.00 |
ES | local | 2.00 |
ES | mobile | 4.00 |
ES | national | 2.00 |
ES | toll free | 25.00 |
FI | local | 1.00 |
FI | national | 1.00 |
FI | toll free | 40.00 |
FR | local | 1.00 |
FR | mobile | 2.50 |
FR | national | 1.00 |
GB | local | 1.00 |
GB | mobile | 1.00 |
GB | national | 1.00 |
GB | toll free | 2.00 |
GD | local | 27.00 |
GE | local | 14.00 |
GE | national | 14.00 |
GH | mobile | 27.00 |
GN | mobile | 27.00 |
GR | local | 1.00 |
GR | toll free | 25.00 |
GT | local | 31.00 |
GT | mobile | 28.00 |
HK | mobile | 15.00 |
HK | national | 6.00 |
HK | toll free | 25.00 |
HR | local | 5.00 |
HR | mobile | 6.00 |
HU | local | 4.00 |
HU | mobile | 25.00 |
ID | local | 23.00 |
ID | mobile | 3.00 |
ID | toll free | 25.00 |
IE | local | 1.00 |
IE | mobile | 6.00 |
IE | national | 1.00 |
IE | toll free | 25.00 |
IL | local | 4.00 |
IL | mobile | 14.00 |
IL | national | 4.00 |
IL | toll free | 25.00 |
IS | local | 1.00 |
IT | local | 1.00 |
IT | mobile | 25.00 |
JM | local | 27.00 |
JP | local | 4.50 |
JP | national | 4.50 |
JP | toll free | 25.00 |
KE | local | 16.00 |
KR | local | 3.00 |
KR | national | 3.00 |
KR | toll free | 25.00 |
KY | local | 29.00 |
LT | local | 1.00 |
LT | mobile | 3.00 |
LU | local | 3.00 |
LV | local | 1.00 |
LV | mobile | 3.00 |
ML | local | 38.00 |
MO | mobile | 70.00 |
MT | national | 5.00 |
MU | mobile | 43.00 |
MX | local | 5.00 |
MX | toll free | 30.00 |
MY | mobile | 5.00 |
MY | toll free | 25.00 |
NA | local | 33.00 |
NA | national | 33.00 |
NL | local | 3.00 |
NL | mobile | 5.00 |
NL | national | 3.00 |
NL | toll free | 25.00 |
NO | local | 3.00 |
NO | mobile | 12.00 |
NO | toll free | 25.00 |
NZ | local | 3.00 |
NZ | toll free | 40.00 |
PA | local | 8.00 |
PE | local | 6.00 |
PH | local | 15.00 |
PH | toll free | 25.00 |
PL | local | 1.00 |
PL | mobile | 3.00 |
PL | toll free | 25.00 |
PR | local | 3.00 |
PT | mobile | 15.00 |
PT | national | 1.00 |
PT | toll free | 25.00 |
RO | local | 3.00 |
RO | toll free | 25.00 |
RS | toll free | 105.00 |
SE | local | 1.00 |
SE | mobile | 1.00 |
SE | national | 1.00 |
SE | toll free | 25.00 |
SG | mobile | 75.00 |
SI | local | 5.00 |
SK | local | 1.00 |
SK | toll free | 25.00 |
SV | local | 7.00 |
TH | local | 25.00 |
TH | toll free | 25.00 |
TN | local | 35.00 |
TN | national | 35.00 |
TT | local | 27.00 |
TZ | local | 27.00 |
TZ | national | 27.00 |
UG | local | 28.00 |
UG | national | 28.00 |
UG | toll free | 25.00 |
US | local | 1.00 |
US | toll free | 2.00 |
VN | local | 36.00 |
ZA | national | 1.50 |
ZA | toll free | 25.00 |
For some reason NG, TW and VE don’t return any results … but confused at that?
LikeLike