Accessing WhereTheyStand data in JSON format

Currently, only some pages support being accessed JSON:

  • Bills: Include the query json=1 in the URL for the bill page. Summary vote data for each vote pertaining to that bill is also included.
  • Votes: Include the query json=1 in the URL for the vote page. This includes both the summary vote data otherwise received in a bill page query, as well as details of each individual vote contribution (parties and members).

Currently, there is no requirement to authenticate to access a page in JSON format. However, permanent free access is not guaranteed and a more rigorous access process for this data may be implemented in the future. To reduce the chance of that needing to happen, please respect the fact that WhereTheyStand is not a large site and avoid unnecessarily frequent queries.


Always-present values

  • name: String. The title of the bill.
  • description: String. The Parliament-provided description of the bill and its purpose.
  • document_id: String. The Parliament-assigned identifier for the bill; usually something like BILL_12345 but other formats have been used.
  • parliament_website_url: String. The bill's page on the Parliament website.
  • wheretheystand_url: String. The bill's page on WhereTheyStand (without the json=1 query)
  • parliament_number: Integer. The number (e.g. 52) of the parliamentary term associated with this bill. Bills that span multiple terms tend to have the most recent term's number.
  • current_status: String. The status of the bill as evaluated by WhereTheyStand. One of
    • Unknown
    • In progress
    • Defeated
    • Withdrawn
    • Passed (passed third reading; Royal Assent not yet granted)
    • Enacted (passed third reading and Royal Assent given)
    • Divided
    • Lapsed
  • parliament_website_status: String. The document status provided by the Parliament website. At the time of writing, the only values in use were:
    • Current
    • Not current
  • bill_type: String.
    • Member's bill
    • Private bill
    • Local bill
    • Government bill
    • Unknown
  • voting_methods: String. One of:
    • Personal votes only
    • Party votes only
    • Mixed voting
    • Unknown
  • parliament_website_last_updated: String (date in YYYY-MM-DD)
  • last_retrieved: String (date in ISO 8601; e.g. 2020-07-24T13:00:10.856Z)
  • is_divided: Boolean. Whether or not the bill has been divided into two or more other bills.

Optional values

  • alternative_name: String. This is a manually added value which is used by WhereTheyStand to assist with matching votes. It is usually necessary when a bill has been renamed part way through the legislative process, or Hansard contains an incorrect variation of a bill's name.
  • act: String. The name and number of the bill's enacted form.
  • defeated_date: String (date in YYYY-MM-DD)
  • defeated_reading: Integer. The reading (1, 2, or 3) that the bill was negatived at.
  • introduction_date: String (date in YYYY-MM-DD).
  • first_reading_date: String (date in YYYY-MM-DD)
  • second_reading_date: String (date in YYYY-MM-DD)
  • third_reading_date: String (date in YYYY-MM-DD)
  • committee_whole_house_date: String (date in YYYY-MM-DD)
  • royal_assent_date: String (date in YYYY-MM-DD)
  • withdrawn_date: String (date in YYYY-MM-DD)
  • ref: String. The Parliament-assigned reference number to the bill. This value is usually present, but can be missing; this has been known to happen with bills which are the children of previously divided bills.


  • mp_responsible
    • name: String. The name of the MP. This will either be the standard First Last format, or, less commonly, Last, First which is the format provided by Parliament and displayed when no match in WhereTheyStand can be found.
    • slug: String. The slug (e.g. bill-english) of the person. Optional - only provided where the bill has matched to a profile in WhereTheyStand.
    • wheretheystand_url: String. The person's page on WhereTheyStand. Optional - only provided where the bill has matched to a profile in WhereTheyStand.
  • select_committee: Optional - only provided where the bill has been assigned a Select Committee.
    • committee_name: String. The name of the assigned select committee.
    • committee_status: String. The Parliament-provided status. Usually one of:
      • Currently before committee
      • Previously before committee
    • submissions_due_date: String (date in YYYY-MM-DD). Optional - only provided where the bill has a due date for submissions showing.
    • report_back_date: String (date in YYYY-MM-DD). Optional - the date that the assigned select committee reported back to the House. If this has not happened yet, this will not be present.
  • votes: Optional - only provided where a bill has one or more associated votes.

Example bill JSON

See this GitHub Gist.

James Macey on Wednesday, 22 July 2020 at 14.23.
Last modified Saturday, 05 September 2020 at 19.38