-
Notifications
You must be signed in to change notification settings - Fork 47
Differences between the API and MongoDB
The JSON downloads are in the same format as the API and are usually created on the first day of each month with the billy-util dumpjson command without the --novalidate switch. You can get the date and URL of the latest JSON dump of each state via the API, for example:
http://openstates.org/api/v1/metadata/?fields=latest_json_url,latest_json_date&apikey=API_KEY
- Renames
_idtoid - All underscore fields like
_all_idsare not available - Votes are available through bills
- Subjects are not available
When returning multiple documents, the API may return a subset of all fields. Add fields using the fields query string parameter.
-
By default, returns only
abbreviation,name,chambersandfeature_flags. To get all the fields except for plus fields, use:fields=id,abbreviation,name,chambers,feature_flags,legislature_name,legislature_url,capitol_timezone,latest_update,terms,session_details,latest_json_url,latest_json_date,latest_csv_url,latest_csv_date,capitol_maps -
Adds top-level fields like
lower_chamber_namefor backwards compatibility
- No discernible difference
TODO
-
By default, removes
roles,old_rolesandsources. To get all the fields except for plus fields,leg_id(which is always equal to_id),created_at(updated_atis better), andcountryandlevel(which are alwaysusandstateif set), use:fields=active,state,chamber,district,party,full_name,first_name,middle_name,last_name,suffixes,email,url,photo_url,transparencydata_id,votesmart_id,roles,old_roles,offices,sources,updated_at -
If the
termandactivequery string parameters aren't set, the API will limit results to legislators for whichactiveistrue. You can remove theactivefilter by setting theactivequery string parameter to anything buttrue, e.g.active=x.
- No discernible difference (used by JSON downloads)
- Adds
boundary_id, unless the district name isAt-Large
Note: The API always returns state, chamber and district, no matter what the value of the fields query string parameter.
-
By default, removes
membersandsources. To get all the fields except for plus fields,created_at(updated_atis better) andcountryandlevel(which are alwaysusandstateif set), use:fields=parent_id,state,chamber,committee,subcommittee,updated_at,members,sources
- No discernible difference (used by JSON downloads)
The Districts API allows searches within a single jurisdiction at a time.
- Adds a
legislatorsfield with an array of active legislators withleg_idandfull_namefields
- Adds
bbox,regionandshapefields
The Events API lacks the following documentation:
-
dtstart: search for events with awhenafterdtstart, inYYYY-MM-DDorYYYY-MM-DDTHH:MM:SSformat, defaults to a week ago -
dtend: search for events with awhenbeforedtstart, inYYYY-MM-DDorYYYY-MM-DDTHH:MM:SSformat - A maximum of 1000 events are returned
In order to retrieve all events, you must change the size of the time window set by dtstart and dtend until under 1000 events are returned, then proceed to the next time window and repeat. The first window is dtstart=1900-01-01&dtend=2010-12-01. Good luck!