diff --git a/twilio/rest/resources/base.py b/twilio/rest/resources/base.py
index <HASH>..<HASH> 100644
--- a/twilio/rest/resources/base.py
+++ b/twilio/rest/resources/base.py
@@ -40,12 +40,10 @@ def make_request(method, url, params=None, data=None, headers=None,
         udata = {}
         for k, v in iteritems(data):
             key = k.encode('utf-8')
-            if isinstance(v, text_type):
-                udata[key] = v.encode('utf-8')
-            elif isinstance(v, binary_type):
+            if isinstance(v, int):
                 udata[key] = v
             else:
-                raise ValueError('data should be either a binary or a string')
+                udata[key] = v.encode('utf-8')
         data = urlencode(udata)
 
     if params is not None:
Update base.py

Sometimes an integer is passed i.e. timeout=<I>.

Also, type_text won't catch something like to='client:1' etc..

In these conditions the error 'data should be either a binary or a string' is being raised.

Thus convert all to utf-8 except int, and remove exception