Sunlight Labs
Project of The Sunlight Foundation    
Read the labs blog

SunlightLabs API

Your API keys

people.getDataCondition

Get data according to some condition, say IDs of all senators or IDs of all democrats

These are the different types of things that one can create a condition around:

NameDescription
CRPcandIDThe candidate ID used by the Center For Responsive politics.
URLThe person's or entity's website
state_full_nameThe full name of a state, e.g. "North Dakota"
state_abbreviationThe abbreviation of a state's name, e.g. "CA"
districtThe integer value of a representative's district, e.g., "6"
WashPost_IDWashington Post's ID for this person
partyThe person's party, i.e. "D", "R" or "I'
VoteSmart_IDThe ID used by Project Vote Smart (http://votesmart.org/index.htm)
titleA person's title, e.g. "Representative" or "Senator"
member110congressIs/Was the person a member of the 110th Congress?, i.e., "yes" or "no"
FEC_IDFEC's ID for this person
webformA contact webform for this person
emailEmail for this person
senator_classClass for this person (Senator): I, II, or III
phonePhone number
name_suffixName Suffix, e.g. "Jr." or "II"
congress_officeAddress of their Congressional Office, e.g. "1502 Longworth HOB, Washington, DC 20515-1101"
genderGender: "M" or "F"
photoThe filename for their photo at http://sunlightlabs.com/widgets/popuppoliticians/resources/images/
congresspediaThe URL for their Congresspedia page
BioGuide_IDID for their BioGuide entry at http://bioguide.congress.gov/biosearch/biosearch.asp
Eventful_IDThe performer ID for an Eventful politician
lastnameLast Name(s)
firstnameFirst Name(s)
middlenameMiddle Names(s)
nicknameNickname
GovTrack_IDThe ID used by Govtrack.us
entity_idThe common id being promoted by the labs

Arguments

These are all $_GET parameters.

parameter name (required)

One of the field names listed above. That is, ?[one of the names above] = [some value]

apikey (required)

your individual API key

metadata (optional)

&metadata=true provides detail about source, last update of the information etc. Click here for details

output (optional)

&output=json is set by default. You can also use &output=xml

Example Call
http://www.api.sunlightlabs.com/people.getDataCondition.php?party=D
&apikey=23kj234kjb3kjbcl87ds

says give me IDs of all democrats.

Another example:

http://api.sunlightlabs.com/people.getDataCondition.php?state_full_name=alaska
&apikey=23kj234kjb3kjbcl87ds

says give me IDs of all people related to Alaska.

Example Response

For the default JSON:

{ "condition": "state_full_name=alaska", "entity_ids": [ "fakeopenID434", "fakeopenID506" ,"fakeopenID525" ] }

For XML:

<results>
  <condition>state_full_name=alaska</condition>
  <entity_id_list>
    <entity_id>fakeopenID434</entity_id>
    <entity_id>fakeopenID506</entity_id>
    <entity_id>fakeopenID525</entity_id>
  </entity_id_list>
</results>

Error Codes

If there is an error: a plain text string will be returned:

0: no data

This means that the code was recognized but there was no data for that matched that criterion.

100: invalid API key

The API key was invalid

101: API key not valid for this method

Not permitted to call this particular method with this particular API key

200: invalid input code

The parameter did not match one of the codes above