I've created a script which simply use the request library and basic auth to connect to an API and returns the xml or Json result. # Imports import requests from requests.auth import HTTPBasicAuth # Set variables url = "api" apiuser = 'test' apipass = 'testpass' # CALL API r = requests.get(url, auth=HTTPBasicAuth(apiuser, apipass)) # Print Statuscode print(r.status_code) # Print XML xmlString = str(r.text) print(xmlString) if but it returns a blank string. If I was to use a browser to call the api and enter the cretentials I get the following response. <Response> <status>SUCCESS</status> <callId>99999903219032190321</callId> <result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Dummy"> <authorFullName>jack jones</authorFullName> <authorOrderNumber>1</authorOrderNumber> </result> </Response> Continue reading...