Skip to content
Create a gist now

Instantly share code, notes, and snippets.

Embed URL


Subversion checkout URL

You can clone with
Download ZIP
Simple query against REST API in Python
import os
import urllib
import urllib2
import json
import pprint
# Grab credentials from the environment
consumer_key = os.environ['CLIENT_ID']
consumer_secret = os.environ['CLIENT_SECRET']
username = os.environ['USERNAME']
password = os.environ['PASSWORD']
login_server = os.environ['LOGIN_SERVER']
# Do OAuth username/password
token_url = login_server+'/services/oauth2/token'
params = urllib.urlencode({
'grant_type': 'password',
'client_id': consumer_key,
'client_secret': consumer_secret,
'username': username,
'password': password
data = urllib2.urlopen(token_url, params).read()
oauth = json.loads(data)
# Now do a query
params = urllib.urlencode({
'q': 'SELECT Name FROM Account'
query_url = oauth['instance_url']+'/services/data/v23.0/query?%s' % params
headers = {
'Authorization': 'OAuth '+oauth['access_token']
req = urllib2.Request(query_url, None, headers)
data = urllib2.urlopen(req).read()
result = json.loads(data)

Thanks for this


if i may ask, what is the login server? Is the instance server? Im getting 401s all over the place...


login_server is either or depending on whether you are using a production or sandbox instance.


For those linked to this looking for the same but as a class,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.