API Usage Guidelines

We are excited to provide companies access to their data remotely so they can integrate data into their own applications and websites. For this reason we request that you follow the following guidelines for using our web service API

Commercial Usage

This is a service to our paying subscribers to provide legislative searching directly into their applications, and websites. Selling the legislative data to a third party is not allowed and a violation of our usage guidelines. If you are unsure if your service qualifies as selling data, or if you want to discuss a commercial usage partnerships, please contact us for more information.

Rate Limits

In order to keep our service responsive for all of our customers we are imposing two API call rate limits. The service will only allow 5 requests per second, and a maximum of 5,000 requests per 24-hour period. When a rate limit is reached, you will receive a return code of 429 indicating the authentication succeded, but the rate limit was exceeded. In addition to the code a standard message value will provide additional detials. You will continue to receive this message until enough time has passed to bring the call rate back below the rate limits. All API calls contribute to the overall API call rate. If you are expecting to generate significant traffic through the API service, please let us know.

Results Limits

The number of results returned from a search is also limited. Very large result sets present a potential large network transfer in addition to presenting difficulties in displaying and actually digesting large amounts of data. In the occurance of a large search result set, the web service will only return a specified top number of results to the caller. In addition it will provide a count of the number of records that actually matched.

Local Storage

Information retrieved from the web service can be stored and cached for a period of 24 hours. All data obtained from the API is still subject to our Terms of Use.

API Overview

The BillTrack50 web services api is a restful web service. REST uses standard HTTP(S) request/response mechanisims where all responses will be formatted in JSON. JSON is a preferred response type because it is generally less verbose while retaining its self describing flexible structure. The REST endpoints can be used to access your BillTrack50 account directly from your applications. All request responses will return with standard data elements that describe the success/failure state of the service call in addition to a set of data elements that are specific to the individual call. Please refer to the individual method details for more specifics.

All requests should use utf-8 character encoding.

Authorization

To access the web api, we require that you request an apikey from us. The apikey is associated with a company account and lets us know who is accessing the web services api, and how often it is being called. For that reason, the apikey is required to be sent with every web service request as part of the Authorization Header. It is important to note that since the apikey is associated with the company account, it has access to all of the companies data and is not affected by any permissions set at a user level. It is important to keep this value protected.

The Authorization header should be formatted in the form "Authorization: apikey $API_KEY" where the term $API_KEY represents the apikey value received from BillTrack50 and may be requested through our contact form.

SSL (Secure Sockets Layer)

In order to further protect our users data all requests must be made over SSL. SSL allows us to encrypt all potentially sensitive information that is sent to or from our service to prevent any eavesdropping attacks that may occur.

/sessions/{stateCode}
Method:
GET
REQUEST URL:
https://www.billtrack50.com/bt50api/2.1/json/sessions/{stateCode}
Parameters:
Name Type Description
stateCode string [Required]2-character state abbreviation.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "sessions": [{ "sessionID": integer, "stateCode": string, "sessionName": string, "currentSession": boolean, "specialSession": boolean }] }
Response Dictionary:
Name Type Description
currentSession boolean Flag indicating if the session is currently active for a state. Active means is currently in session or is the most recent session for a given state. Regular and special sessions stay active until the end of the calendar year containing the end date of that session.
sessionID integer [Unique]Identifier for the session.
sessionName integer Name of state legislative session
specialSession boolean Flag indicating if the session is a special session to address urgent issues.
stateCode string State abbreviation.
/bills
Method:
GET
REQUEST URL:
https://www.billtrack50.com/bt50api/2.1/json/bills?searchText={searchText}&stateCodes={stateCodes}&sessionID={sessionID}
Parameters:
Name Type Description
searchText String [Required] Text to search in the bill which will attempt find the provided text in the bill name, bill number, summary and bill text. A minimum of 3 characters are required before any results will be returned, and the results will be limited to 250 bills.
stateCodes String [Optional] A comma separated list of state codes used to filter bill numbers to specific states. Ommiting or leaving this parameter blank will search all states.
sessionID Integer [Optional] Parameter used to find bills in a specific state session. If excluded the search will default to only search the active session. The SessionID parameter is retrieved from the session end point. If you are using the SessionID parameter, you do not need to use the StateCodes parameter as the SessionID is state specific.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "bills": [{ "billID": integer, "stateBillID": string, "stateCode": string, "billName": string, "summary": string, "aiSummary": string, "session": string, "sponsorCount": integer, "sponsors": string, "keyWords": string, "committeeCategories": string, "versions": integer, "votes": integer, "actions": integer, "lastAction": string, "actionDate": string, "lastAmendmentDate": string, "billProgress": string, "passedFlag": boolean, "officialDocument": string, "hasCompanion": boolean, "created": string, "changes": integer }] }
Response Dictionary:
Name Type Description
aiSummary string Summary of the bill produced by the artificial intelligence
actionDate string Date of the most recent action
actions integer Total number of actions or events that have occurred to the bill
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
billProgress string Latest status of the bill showing its progress. The stages are Introduced, In Committee, Crossed Over, Passed, Dead, Vetoed, Veto Override, Signed/Adopted/Enacted
changes integer Count of the change types detected on the bill that have occurred in the last alerting period.
committeeCategories string List of general categories assigned to committees which the bill has been referred to
created string Date that the bill was added to our database
keyWords string Important words contained in the bills text generated using a natural language algorithm
hasCompanion boolean Flag indicating if the bill has an associated companion bill
lastAction string Most recent action or event that has happened to the bill.
lastAmendmentDate string Date of the most recent change to the bill
officialDocument string Link to the bill page on the state website
passedFlag boolean Flag showing whether the bill has been Signed/Enacted/Adopted
session string Name of state legislative session in which the bill was introduced
sponsorCount integer The total number of legislators sponsoring or co sponsoring the bill
sponsors string Legislators who have sponsored the bill, name is followed by party. Primary sponsors are followed by an asterisk.
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
summary string Summary of the bill produced by the state
versions integer Total number of versions of the bill that have been published by the state
votes integer Total number of roll calls that have been published by the state. May exclude voice votes.
/bills/{billID}
Method:
GET
Request URL:
https://www.billtrack50.com/bt50api/2.1/json/bills/{billID}
Parameters:
Name Type Description
billID Integer [Required]BillTrack50 numerical bill id.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "bill": { "billID": integer, "stateBillID": string, "stateCode": string, "billName": string, "summary": string, "aiSummary": string, "session": string, "sponsors": string, "keyWords": string, "committeeCategories": string, "versions": integer, "votes": integer, "actions": integer, "lastAction": string, "actionDate": string, "billProgress": string, "passedFlag": boolean, "officialDocument": string, "hasCompanion": boolean, "created": string } }
Response Dictionary:
Name Type Description
actionDate string Date of the most recent action
aiSummary string Summary of the bill produced by the artificial intelligence
actions integer Total number of actions or events that have occurred to the bill
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
billProgress string Latest status of the bill showing its progress. Statuses include Introduced, In Committee, Crossed Over, Passed, Dead, Vetoed, Veto Override, Signed/Adopted/Enacted
committeeCategories string List of general categories assigned to committees which the bill has been referred to
created string Date that the bill was added to the database
hasCompanion boolean Flag indicating if the bill has an associated companion bill
keyWords string Important words contained in the bills text generated using a natural language algorithm
lastAction string Most recent action or event that has happened to the bill, as published by the state
lastAmendmentDate string Date of the most recent change to the bill
officialDocument string Link to the bill page on the state website
passedFlag boolean Flag showing whether the bill has been Signed/Enacted/Adopted
session string Name of state legislative session in which the bill was introduced
sponsors string Names of the legislators who have sponsored the bill, each name is followed by party, primary sponsors are followed by an asterisk.
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
summary string Summary of the bill produced by the state
versions integer Total number of versions of the bill that have been published by the state
votes integer Total number of different roll calls that have been published by the state. May exclude voice votes.
/bills/{billID}/sponsors
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/bills/{billID}/sponsors
Parameters:
Name Type Description
billID Integer [Required] BillTrack50's internal numerical bill identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "sponsors": [{ "legislatorID": integer, "knowWhoPersonID": integer, "name": string, "legislatorParty": string, "state": string, "primary": false, "role": string, "district": string }] }
Response Dictionary:
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number.
knowWhoPersonID integer Unique idenifier for the legislator assigned by KnowWho
legislatorID integer [Unique]Identifier for a legislator
legislatorParty string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent).
name string Legislator name, first name followed by last name
primary boolean A flag to indicate whether the legislator is the primary legislator for the district.
role string Legislator's elected position, such as 'State Senator' or 'State Representative'
state string State abbreviation
/bills/{billID}/votes
Method:
GET
REQUEST URL:
https://www.billtrack50.com/bt50api/2.1/json/bills/{billID}/votes
Parameters:
Name Type Description
billID Integer [Required] BillTrack50's internal numerical bill identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "votes": [{ "voteID": integer, "chamber": string, "chamberCode": string, "motion": string, "yesVotes": integer, "noVotes": integer, "absentVotes": integer, "abstainVotes": integer, "voteDate": string }] }
Response Dictionary:
Name Type Description
absentVotes integer Total number of absent votes
abstainVotes integer Total number of abstain votes
chamberCode string Chamber identifier.
chamber string Name of the legislative chamber: House, Senate, Assembly etc.
motion string Motion being voted on, provided by the state
noVotes integer Total number of no votes
voteDate string Date the roll call took place
voteID integer [Unique]Identifier for a roll call.
yesVotes integer Total number of yes votes
/bills/{billID}/action-history
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/bills/{billID}/action-history
Parameters:
Name Type Description
billID Integer [Required] BillTrack50's internal bill identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "actions": [{ "chamberCode": string, "actionDescription": string, "actionDate": string }] }
Response Dictionary:
Name Type Description
actionDate string Date the action happened
actionDescription string Description of the action, provided by the state
chamberCode string Chamber identifier.
/bills/{billID}/events
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/bills/{billID}/events
Parameters:
Name Type Description
billID Integer [Required] BillTrack50's internal bill identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "events": [{ "date": string, "time": string, "type": string, "location": string, "description": string }] }
Response Dictionary:
Name Type Description
date string Date of the hearing or other event
description string A description of the hearing or other event
location string Location of the hearing or other event, may include a buidling name and/or room number
time string Time of the hearing or other event, in the local time zone
type string Type of the event.
/votes/{voteID}
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/votes/{voteID}
Parameters:
Name Type Description
voteID Integer [Required] BillTrack50 vote identifier. A list of votes can be queried for a specific bill using the bill votes endpoint.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "vote": { "voteID": integer, "chamber": string, "motion": string, "yesVotes": integer, "noVotes": integer, "absentVotes": integer, "abstainVotes": integer, "voteDate": string, "legislatorVotes": [{ "legislatorID": integer, "knowWhoPersonID": integer, "name": string, "party": string, "district": string, "vote": string }] } }
Response Dictionary:
Name Type Description
absentVotes integer Total number of absent votes
abstainVotes integer Total number of abstain votes
chamber chamber string Name of the legislative chamber: House, Senate, Assembly etc.
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number
knowWhoPersonID integer Unique idenifier for the legislator assigned by KnowWho
legislatorID integer Unique identifier for a legislator
motion string Motion being voted on, provided by the state
name string Legislator name, first name followed by last name
noVotes integer Total number of no votes
party string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent)
vote string Vote cast by the legislator - Yea, Nay, Absent or Abstain
voteDate string Date the roll call took place
voteID integer [Unique]Identifier for a roll call.
yesVotes integer Total number of yes votes
/legislators
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/legislators?legislatorName={legislatorName}&stateCodes={stateCodes}
Parameters:
Name Type Description
legislatorName String [Required] All or part of the legislators first or last name. A minimum of 3 characters are required before any results will returned.
stateCodes String [Required] A comma separated list of state codes used to filter bills to specific states. State codes for state legislators and US for federal.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "legislators": [{ "legislatorID": integer, "knowWhoPersonID": integer, "name": string, "party": string, "stateCode": string, "role": string, "district": string, "inOffice": true, "ballotpediaURL": string, "followTheMoneyUrl": string }] }
Response Dictionary:
Name Type Description
ballotpediaURL string Url to Ballotpedia.com page for the legislator
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number.
followTheMoneyUrl string Url to FollowTheMoney.org page for the legislator
inOffice boolean Flag indicating of the legislator is currently in office
knowWhoPersonID integer Unique idenifier for the legislator assigned by KnowWho
legislatorID integer [Unique] Identifier for a legislator.
name string Legislator name, first name followed by last name
party string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent).
role string Legislator's elected position, such as 'State Senator' or 'State Representative'
stateCode string State abbreviation
/legislators/{legislatorID}
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/legislators/{legislatorID}
Parameters:
Name Type Description
legislatorID Integer [Required] BillTrack50's internal legislator identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "legislator": { "legislatorID": integer, "knowWhoPersonID": integer, "name": string, "party": string, "stateCode": string, "role": string, "district": string, "inOffice": true, "ballotpediaURL": string, "followTheMoneyUrl": string } }
Response Dictionary:
Name Type Description
ballotpediaURL string Url to Ballotpedia.com page for the legislator
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number.
followTheMoneyUrl string Url to FollowTheMoney.org page for the legislator
inOffice boolean Flag indicating of the legislator is currently in office
knowWhoPersonID integer Unique idenifier for the legislator assigned by KnowWho
legislatorID integer [Unique] Identifier for a legislator.
name string Legislator name, first name followed by last name
party string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent).
role string Legislator's elected position, such as 'State Senator' or 'State Representative'
stateCode string State abbreviation
/legislators/{legislatorID}/bills
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/legislators/{legislatorID}/bills
Parameters:
Name Type Description
legislatorID Integer [Required] BillTrack50's internal legislator identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "sponsoredBill": [{ "legislatorID": integer, "legislatorName": string, "sponsorType": string, "primarySponsorFlag": false, "billID": integer, "stateBillID": string, "stateCode": string, "billName": string, "summary": string, "aiSummary": string, "session": string, "lastAction": string, "actionDate": string, "actions": integer, "versions": integer, "votes": integer, "billProgress": string, "passedFlag": false, "officialDocument": string }] }
Response Dictionary:
Name Type Description
aiSummary string Summary of the bill produced by the artificial intelligence
actionDate string Date of the most recent action
actions integer Total number of actions or events that have happened to the bill
billID integer Unique dentifier for the bill
billName string Title of the bill given by the state
billProgress string Latest status of the bill showing its progress. Statuses include Introduced, In Committee, Crossed Over, Passed, Dead, Vetoed, Veto Override, Signed/Adopted/Enacted
created string Date that the bill was added to the database
hasCompanion boolean Flag indicating if the bill has an associated companion bill
lastAction string Most recent action or event that has happened to the bill, as published by the state
legislatorID integer [Unique] Identifier for a legislator.
legislatorName string Legislator name, first name followed by last name
officialDocument string Link to the bill page on the state website
passedFlag boolean Flag showing whether the bill has been Signed/Enacted/Adopted
primarySponsorFlag boolean A flag indicating if the legislator is the primary sponsor of the bill
session string Name of state legislative session in which the bill was introduced
sponsorType string Whether the sponsor is the primary sponsor of the bill, or a co sponsor
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
summary string Summary of the bill produced by the state
versions integer Total number of versions of the bill that have been published by the state
votes integer Total number of different roll calls that have been published by the state. May exclude voice votes.
/legislators/{legislatorID}/votes
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/legislators/{legislatorID}/votes
Parameters:
Name Type Description
legislatorID Integer [Required] BillTrack50's internal legislator identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "legislatorVotes": [{ "billID": integer, "stateCode": string, "stateBillID": string, "billName": string, "session": string, "voteID": integer, "motion": string, "yesVotes": integer, "noVotes": integer, "passed": true, "voteDate": string, "vote": string, "voteNumber": integer }] }
Response Dictionary:
Name Type Description
absentVotes integer Total number of no votes
abstainVotes integer Total number of no votes
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
motion string Motion being voted on, provided by the state
noVotes integer Total number of no votes
passed boolean Flag showing whether the bill has been Signed/Enacted/Adopted
session string Name of state legislative session in which the bill was introduced
stateCode string State abbreviation
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
vote string Vote cast by the legislator - Yea, Nay, Absent or Abstain
voteDate string Date the roll call took place
voteID integer Unique ientifier for a roll call
voteNumber integer The total number of roll calls for the bill
yesVotes integer Total number of yes votes
/billSheets
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/billSheets
Parameters:
None
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "billSheets": [{ "billSheetID": integer, "billSheetName": string, "billSheetSummary": string, "billCount": integer, "hiddenBillCount": integer, "archived": false, "createDate": string, "updateDate": string }] }
Response Dictionary:
Name Type Description
archived boolean Flag showing if the bill sheet has been archived by the user and no longer being updated
billCount integer Number of bills on the bill sheet
billSheetID integer [Unique]Identifier for the bill sheet.
billSheetName string Name given to the bill sheet by the user
billSheetSummary string Description given to the bill sheet by the user
createDate string Date the bill sheet was created
hiddenBillCount integer Number of hidden bills on the bill sheet
updateDate string Date the bill sheet was last updated by the user
/billSheets/{billSheetID}/bills
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/billSheets/{billSheetID}/bills
Parameters:
Name Type Description
billSheetID Integer [Required] BillTrack50's internal bill sheet identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "bills": [{ "billID": integer, "stateCode": string, "stateBillID": string, "billName": string, "summary": string, "aiSummary": string, "session": string, "sponsorCount": integer, "sponsors": string, "keywords": string, "committeeCategories": string, "actions": integer, "versions": integer, "lastAction": string, "lastActionDate": string, "lastAmendmentDate": string, "votes": integer, "billProgress": string, "passedFlag": false, "officialDocument": string, "hasCompanion": false, "created": string, "added": string, ["UserColumnName": string] }] }
Response Dictionary:
Name Type Description
aiSummary string Summary of the bill produced by the artificial intelligence
actions integer Total number of actions or events that have happened to the bill
added string Date that the bill was added to the bill sheet
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
billProgress string Latest status of the bill showing its progress. Statuses include Introduced, In Committee, Crossed Over, Passed, Dead, Vetoed, Veto Override, Signed/Adopted/Enacted
committeeCategories string List of general categories assigned to committees which the bill has been referred to
created string Date that the bill was added to the database
keywords string Important words contained in the bills text generated using a natural language algorithm
lastAction string Most recent action or event that has happened to the bill, as published by the state
lastActionDate string Date of the most recent action
lastAmendmentDate string Date of the most recent change to the bill
officialDocument string Link to the bill page on the state website
passedFlag boolean Flag showing whether the bill has been Signed/Enacted/Adopted
session string Name of state legislative session in which the bill was introduced
sponsorCount integer The total number of legislators sponsoring or co sponsoring the bill
sponsors string Names of the legislators who have sponsored the bill, each name is followed by party, primary sponsors are followed by an asterisk.
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
summary string Summary of the bill produced by the state
versions integer Total number of versions of the bill that have been published by the state
votes integer Total number of different roll calls that have been published by the state. May exclude voice votes.
[UserColumnName] string List of user columns added to the users billsheet
/scorecards
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/scorecards
Parameters:
None
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "scorecards": [{ "scorecardID": integer, "stateCode": string, "scorecardName": string, "subtitle": string, "ratedBills": integer, "categories": [{ "categoryID": integer, "categoryName": string, }], "publicFlag": boolean, "createDate": string, "updateDate": string }] }
Response Dictionary:
Name Type Description
categoryID integer Unique identifier for the user provided category
categoryName string Category name used to group bills into groups
createDate string The date the scorecard was created by the user
publicFlag boolean Flag showing whether the user has checked the box to make the scorecard public, which generates a URL and iFrame embed link
ratedBills integer The number of bills for which the user has provided some kind of score and that therefore form part of the scorecard calculation
scorecardID integer [Unique]Identifier for the scorecard.
scorecardName string Name given to the scorecard by the user
stateCode string State abbreviation
subtitle string Subtitle given to the scorecard by the user
updateDate string The date the scorecard sheet was last updated by the user.
/scorecards/{scorecardID}/bills
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/scorecards/{scorecardID}/bills
Parameters:
Name Type Description
scorecardID Integer [Required] BillTrack50's internal scorecard identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "bills": [{ "billID": integer, "stateCode": string, "stateBillID": string, "billName": string, "lastAction": string, "lastActionDate": string, "voteRating": integer, "sponsorRating": integer, "cosponsorRating": integer, "categories": [ "categoryID": int, "categoryName": string ], "comments": string, "referenceUrl": string, "referenceUrlText": string }] }
Response Dictionary:
Name Type Description
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
categories string The categories created by the user. Bills can be assigned to different categories, which can be used to filter the scorecard displays [doesn't seem right, the category for the bill?]
comments string Comments added to the bill by the user
cosponsorRating integer The score given to a co-sponsor of the bill by the user.
lastAction string Most recent action or event that has happened to the bill, as published by the state
lastActionDate string Date of the most recent action
referenceURL string A URL input by the user which links to text in the comments column of the legislation display
referenceURLText string Display text for the URL link
sponsorRating integer The score given to the primary sponsor of the bill by the user.
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
voteRating integer The score given to the bill by the user, can be any integer, positive for a 'good' bill and negative for a 'bad' bill
/scorecards/{scorecardID}/legislators/{legislatorID}
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/scorecards/{scorecardID}/legislators/18718
Parameters:
Name Type Description
scorecardID Integer [Required] BillTrack50's internal scorecard identifier.
legislatorID Integer [Required] BillTrack50's internal legislator identifier.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "legislator": { "legislatorID": integer, "firstName": string, "lastName": string, "party": string, "chamber": string, "district": string, "districtName": string, "categoryScores": [{ "categoryID": integer, "categoryName": string, "voteIndex": string, "totalScore": string }] } }
Response Dictionary:
Name Type Description
categoryID integer Unique identifier for the user provided category
categoryName string Category name used to group bills into groups
chamber string Name of the legislative chamber: House, Senate, Assembly etc.
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number.
firstName string Legislator's first name
lastName string Legislator's last name
legislatorID integer [Unique]Identifier for the legislator.
party string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent).
totalScore decimal A number showing the impact the legislator has had. Total Score is calculated by multiplying votes on a bill by the vote ratings, then adding up the results for all bills
voteIndex decimal A number showing the percentage of the time the legislator voted the way the user wanted them to. Vote Index = (Total Vote Score + Possible Score) / (2*Possible Score)
/scorecards/{scorecardID}/legislators/{legislatorID}/votes
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/scorecards/{scorecardID}/legislators/{legislatorID}/votes
Parameters:
Name Type Description
scorecardID Integer [Required] BillTrack50's internal scorecard identifier which can be retrieved from the scorecard endpoint.
legislatorID Integer [Required] BillTrack50's legislator identifier which can be retrieved from the scorecard legislator endpoint.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "billVotes": [{ "billID": integer, "stateBillID": string, "billName": string, "motion": string, "voteDate": string, "voteRating": integer, "vote": string, "comment": string, "referenceUrl": string, "referenceUrlText": string }] }
Response Dictionary:
Name Type Description
billID integer [Unique]Identifier for the bill.
billName string Title of the bill given by the state
comment string Comments added to the bill by the user
motion string Description of the proposed motion
referenceURL string A URL input by the user which links to text in the comments column of the legislation display
referenceURLText string Display text for the URL link
stateBillID string Bill identifier used by the state, usually identifies the chamber and bill type. Unique for the state within a particular session.
stateCode string State abbreviation
vote string Vote cast by the legislator - Yea, Nay, Absent or Abstain
voteDate string Date the roll call took place
voteRating integer The score given to the bill by the user, can be any integer, positive for a 'good' bill and negative for a 'bad' bill
/scorecards/{scorecardID}/legislators
Method:
GET
REQUEST URL:
https://www.billtrack50.com/BT50Api/2.1/json/scorecards/{scorecardID}/legislators?category={categoryID}
Parameters:
Name Type Description
scorecardID Integer [Required] BillTrack50's internal scorecard identifier.
categoryID Integer [Required] ID of the category used to filter legislation for the scorecard. The list of categories can be retrieved using the /Scorecards endpoint. If no CategoryID is provided then the scores for the legislators will include all bills on the scorecard.
RESPONSE FORMAT:
{ "StatusCode": integer, "Message": string, "Legislators": [{ "LegislatorID": integer, "FirstName": string, "LastName": string, "Party": string, "Chamber": string, "District": string, "VoteIndex": string, "TotalScore": string }] }
Response Dictionary:
Name Type Description
chamber string Name of the legislative chamber: House, Senate, Assembly etc.
district string Unique Identifier assigned to the leglative district. Usually the state abbreviation and district number.
districtName string Name of the legislative district.
firstName string Legislator's first name
lastName string Legislator's last name
legislatorID integer [Unique]Identifier for the legislator.
party string Political affiliation of the legislator. 'R' (Republican), 'D' (Democrat) or 'I' (Independent).
possibleScore decimal Number showing the maximum possible score the legislator could have achieved
totalScore decimal Number showing the impact the legislator has had. Total Score is calculated by multiplying votes on a bill by the vote ratings, then adding up the results for all bills
voteIndex decimal Number showing the percentage of the time the legislator voted the way the user wanted them to. Vote Index = (Total Vote Score + Possible Score) / (2*Possible Score)
/state/bill-progress
Method:
GET
REQUEST URL:
https://www.billtrack50.com/bt50api/2.1/json/state/bill-progress?stateCode={stateCodes}
Parameters:
Name Type Description
stateCode string [Optional] Standard 2-character state abbreviation.
RESPONSE FORMAT:
{ "statusCode": integer, "message": string, "billProgress": [{ "stateCode": string "totalBills": integer, "introduced": integer, "inCommittee": integer, "crossedOver": integer, "passed": integer, "enacted": integer, "vetoed": integer, "overridden": integer, "dead": integer }] }
Response Dictionary:
Name Type Description
crossedOver integer Number of bills at the 'Crossed Over' status - bill has passed one chamber and moved over to the second chamber
dead integer Number of bills at the 'Dead' status - the bill has completed its journey and has not become law, so is dead
enacted integer Number of bills at the 'Signed/Enacted/Adopted' status - the bill has completed its journey and become law
inCommittee integer Number of bills at the 'in committee' status - currently being considered by one or more committees
introduced integer Number of bills at the 'Introduced' status
overriden integer Number of bills at the 'Veto Overriden' status - the legislature has successfully voted to overide the Governor's veto and the bill can become law
passed integer Number of bills at the 'Passed' status - bill has passed both chambers and is awaiting action by the Governor
stateCode string State abbreviation
totalBills integer Total number of bills in the current session
vetoed integer Number of bills at the 'Vetoed' status - the bill has been vetoed by the Governor after passing both chambers, and the veto has not been overriden