Libraries for interacting with the Opensecrets API

pip install py-opensecrets==0.3.1


Py-OpenSecrets API

An unofficial Python client for the Center for Responsive Politics API at

Support for python 2.7, 3.4, 3.5, 3.6

Access campaign contribution and personal financial data for US congressional members.

You will need a Center for Responsive Politics API key.

Forked and built upon from:


Add higher test coverage and more utilities to enable better and more efficient use of the Open Secrets API.


From PyPI:

pip install py-opensecrets

Or, download and use the install script:

git clone && cd py-opensecrets
python install


All API functions are abstracted to corresponding client methods, and accept the respective parameters. Results are returned in JSON format, and pre-parsed to trim the fat. For example:

>>> from opensecrets import CRP
>>> crp = CRP(API_KEY)

# get a specific legislator by CID
>>> cand = crp.candidates.get('N00007360')
>>> cand['lastname']

# get the top contributors to a candidate for a specific cycle
>>> contribs = crp.candidates.contrib('N00007360', '2016')
>>> contribs[0]['@attributes']['org_name']

# get fundraising information for a committee's members, by industry
>>> cmte = crp.committees.cmte_by_ind('HARM', 'F10')
>>> cmte[0]['@attributes']['member_name']
'Heck, Joe'

# use fetch to access the endpoints more directly, without pre-parsed results
>>> summ = crp.fetch('candSummary', cid='N00007360')
>>> summ['summary']['@attributes']['first_elected']


Please read