Lords Votes API icon

Lords Votes API

An API that allows querying of Lords Votes data

COMMUNITYNO AUTH0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.1",
  "info": {
    "contact": {
      "email": "softwareengineering@parliament.uk",
      "name": "UK Parliament",
      "url": "https://www.parliament.uk/"
    },
    "description": "An API that allows querying of Lords Votes data.",
    "title": "Lords Votes API",
    "version": "v1",
    "x-apisguru-categories": [
      "open_data"
    ],
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://lordsvotes-api.parliament.uk/swagger/v1/swagger.json",
        "version": "3.0"
      }
    ],
    "x-providerName": "parliament.uk",
    "x-serviceName": "lordsvotes",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "paths": {
    "/data/Divisions/groupedbyparty": {
      "get": {
        "description": "Get a list of Divisions which contain grouped by party",
        "parameters": [
          {
            "description": "Divisions containing search term within title or number",
            "in": "query",
            "name": "SearchTerm",
            "schema": {
              "description": "Divisions containing search term within title or number",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions returning Member with Member ID voting records",
            "in": "query",
            "name": "MemberId",
            "schema": {
              "description": "Divisions returning Member with Member ID voting records",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "Divisions where member was a teller as well as if they actually voted",
            "in": "query",
            "name": "IncludeWhenMemberWasTeller",
            "schema": {
              "description": "Divisions where member was a teller as well as if they actually voted",
              "nullable": true,
              "type": "boolean"
            }
          },
          {
            "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "StartDate",
            "schema": {
              "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "EndDate",
            "schema": {
              "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
            "in": "query",
            "name": "DivisionNumber",
            "schema": {
              "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "TotalVotesCast.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "TotalVotesCast.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "Majority.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "Majority.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionGroupByPartyViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionGroupByPartyViewModel"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionGroupByPartyViewModel"
                }
              }
            },
            "description": "List of divisions with votes grouped by party"
          },
          "400": {
            "description": "A parameter was not valid"
          }
        },
        "summary": "Return Divisions results grouped by party",
        "tags": [
          "Divisions"
        ]
      }
    },
    "/data/Divisions/membervoting": {
      "get": {
        "description": "Get a list of voting records for a Member.",
        "parameters": [
          {
            "description": "Id number of a Member whose voting records are to be returned",
            "in": "query",
            "name": "MemberId",
            "required": true,
            "schema": {
              "description": "Id number of a Member whose voting records are to be returned",
              "format": "int32",
              "maximum": 2147483647,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Divisions containing search term within title or number",
            "in": "query",
            "name": "SearchTerm",
            "schema": {
              "description": "Divisions containing search term within title or number",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions where member was a teller as well as if they actually voted",
            "in": "query",
            "name": "IncludeWhenMemberWasTeller",
            "schema": {
              "description": "Divisions where member was a teller as well as if they actually voted",
              "nullable": true,
              "type": "boolean"
            }
          },
          {
            "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "StartDate",
            "schema": {
              "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "EndDate",
            "schema": {
              "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
            "in": "query",
            "name": "DivisionNumber",
            "schema": {
              "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "TotalVotesCast.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "TotalVotesCast.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "Majority.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "Majority.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The number of records to skip. Must be a positive integer. Default is 0",
            "in": "query",
            "name": "skip",
            "schema": {
              "default": 0,
              "description": "The number of records to skip. Must be a positive integer. Default is 0",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The number of records to return per page. Must be more than 0. Default is 25",
            "in": "query",
            "name": "take",
            "schema": {
              "default": 25,
              "description": "The number of records to return per page. Must be more than 0. Default is 25",
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberVotingRecordViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberVotingRecordViewModel"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MemberVotingRecordViewModel"
                }
              }
            },
            "description": "List of voting records for a member"
          },
          "400": {
            "description": "A parameter was not valid"
          },
          "503": {
            "description": "Temporary error occured when trying to get division"
          }
        },
        "summary": "Return voting records for a Member",
        "tags": [
          "Divisions"
        ]
      }
    },
    "/data/Divisions/search": {
      "get": {
        "description": "Get a list of Divisions which meet the specified criteria.",
        "parameters": [
          {
            "description": "Divisions containing search term within title or number",
            "in": "query",
            "name": "SearchTerm",
            "schema": {
              "description": "Divisions containing search term within title or number",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions returning Member with Member ID voting records",
            "in": "query",
            "name": "MemberId",
            "schema": {
              "description": "Divisions returning Member with Member ID voting records",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "Divisions where member was a teller as well as if they actually voted",
            "in": "query",
            "name": "IncludeWhenMemberWasTeller",
            "schema": {
              "description": "Divisions where member was a teller as well as if they actually voted",
              "nullable": true,
              "type": "boolean"
            }
          },
          {
            "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "StartDate",
            "schema": {
              "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "EndDate",
            "schema": {
              "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
            "in": "query",
            "name": "DivisionNumber",
            "schema": {
              "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "TotalVotesCast.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "TotalVotesCast.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "Majority.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "Majority.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The number of records to skip. Must be a positive integer. Default is 0",
            "in": "query",
            "name": "skip",
            "schema": {
              "default": 0,
              "description": "The number of records to skip. Must be a positive integer. Default is 0",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The number of records to return per page. Must be more than 0. Default is 25",
            "in": "query",
            "name": "take",
            "schema": {
              "default": 25,
              "description": "The number of records to return per page. Must be more than 0. Default is 25",
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DivisionViewModel"
                  },
                  "type": "array"
                }
              },
              "text/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DivisionViewModel"
                  },
                  "type": "array"
                }
              },
              "text/plain": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DivisionViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "List of divisions matching specified parameters"
          },
          "400": {
            "description": "A parameter was not valid"
          },
          "503": {
            "description": "Temporary error occured when trying to get division"
          }
        },
        "summary": "Return a list of Divisions",
        "tags": [
          "Divisions"
        ]
      }
    },
    "/data/Divisions/searchTotalResults": {
      "get": {
        "description": "Get total count of Divisions meeting the specified query, useful for paging lists etc...",
        "parameters": [
          {
            "description": "Divisions containing search term within title or number",
            "in": "query",
            "name": "SearchTerm",
            "schema": {
              "description": "Divisions containing search term within title or number",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions returning Member with Member ID voting records",
            "in": "query",
            "name": "MemberId",
            "schema": {
              "description": "Divisions returning Member with Member ID voting records",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "Divisions where member was a teller as well as if they actually voted",
            "in": "query",
            "name": "IncludeWhenMemberWasTeller",
            "schema": {
              "description": "Divisions where member was a teller as well as if they actually voted",
              "nullable": true,
              "type": "boolean"
            }
          },
          {
            "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "StartDate",
            "schema": {
              "description": "Divisions where division date in one or after date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
            "in": "query",
            "name": "EndDate",
            "schema": {
              "description": "Divisions where division date in one or before date provided. Date format is yyyy-MM-dd",
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
            "in": "query",
            "name": "DivisionNumber",
            "schema": {
              "description": "Division Number - as specified by the House, unique within a session. This is different to the division id which uniquely identifies a division in this system and is passed to the GET division endpoint",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "TotalVotesCast.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "TotalVotesCast.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "comparison operator to use",
            "in": "query",
            "name": "Majority.Comparator",
            "schema": {
              "$ref": "#/components/schemas/Comparators"
            }
          },
          {
            "description": "value to compare to with the operator provided",
            "in": "query",
            "name": "Majority.ValueToCompare",
            "schema": {
              "description": "value to compare to with the operator provided",
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "text/json": {
                "schema": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "text/plain": {
                "schema": {
                  "format": "int32",
                  "type": "integer"
                }
              }
            },
            "description": "Division with id matching given divisionId"
          },
          "400": {
            "description": "divisionId was not valid"
          }
        },
        "summary": "Return total results count",
        "tags": [
          "Divisions"
        ]
      }
    },
    "/data/Divisions/{divisionId}": {
      "get": {
        "description": "Get a single Division which has the Id specified.",
        "parameters": [
          {
            "description": "Division with ID specified",
            "in": "path",
            "name": "divisionId",
            "required": true,
            "schema": {
              "description": "Division with ID specified",
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionViewModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionViewModel"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DivisionViewModel"
                }
              }
            },
            "description": "Division with id matching given divisionId"
          },
          "400": {
            "description": "divisionId was not valid"
          },
          "404": {
            "description": "Division with given divisionId was not found"
          },
          "503": {
            "description": "Temporary error occured when trying to get division"
          }
        },
        "summary": "Return a Division",
        "tags": [
          "Divisions"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Comparators": {
        "enum": [
          "LessThan",
          "LessThanOrEqualTo",
          "EqualTo",
          "GreaterThanOrEqualTo",
          "GreaterThan"
        ],
        "type": "string"
      },
      "DivisionGroupByPartyViewModel": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/PartyVoteResultViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "contentCount": {
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "date": {
            "format": "date-time",
            "type": "string"
          },
          "divisionId": {
            "format": "int32",
            "type": "integer"
          },
          "notContent": {
            "items": {
              "$ref": "#/components/schemas/PartyVoteResultViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "notContentCount": {
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "number": {
            "format": "int32",
            "type": "integer"
          },
          "title": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DivisionViewModel": {
        "additionalProperties": false,
        "properties": {
          "amendmentMotionNotes": {
            "nullable": true,
            "type": "string"
          },
          "authoritativeContentCount": {
            "description": "Authoritative content count is the official count. This is the teller content count when tellers are present, but member content count when there are no tellers.",
            "format": "int32",
            "type": "integer"
          },
          "authoritativeNotContentCount": {
            "description": "Authoritative not content count is the official count. This is the teller not content count when tellers are present, but member not content count when there are no tellers.",
            "format": "int32",
            "type": "integer"
          },
          "contentTellers": {
            "items": {
              "$ref": "#/components/schemas/MemberViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "contents": {
            "items": {
              "$ref": "#/components/schemas/MemberViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "date": {
            "format": "date-time",
            "type": "string"
          },
          "divisionHadTellers": {
            "description": "Whether the division had tellers or not",
            "type": "boolean"
          },
          "divisionId": {
            "format": "int32",
            "type": "integer"
          },
          "divisionWasExclusivelyRemote": {
            "type": "boolean"
          },
          "isGovernmentContent": {
            "type": "boolean"
          },
          "isGovernmentWin": {
            "nullable": true,
            "type": "boolean"
          },
          "isHouse": {
            "nullable": true,
            "type": "boolean"
          },
          "isWhipped": {
            "type": "boolean"
          },
          "memberContentCount": {
            "description": "Member content count is the total tally of all members that voted content",
            "format": "int32",
            "type": "integer"
          },
          "memberNotContentCount": {
            "description": "Member not content count is the total tally of all members that voted not content",
            "format": "int32",
            "type": "integer"
          },
          "notContentTellers": {
            "items": {
              "$ref": "#/components/schemas/MemberViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "notContents": {
            "items": {
              "$ref": "#/components/schemas/MemberViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "notes": {
            "nullable": true,
            "type": "string"
          },
          "number": {
            "format": "int32",
            "type": "integer"
          },
          "remoteVotingEnd": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "remoteVotingStart": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "sponsoringMemberId": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "tellerContentCount": {
            "description": "Content count is count recorded by the tellers",
            "format": "int32",
            "type": "integer"
          },
          "tellerNotContentCount": {
            "description": "Not Content count recorded by the tellers",
            "format": "int32",
            "type": "integer"
          },
          "title": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "MemberViewModel": {
        "additionalProperties": false,
        "properties": {
          "listAs": {
            "nullable": true,
            "type": "string"
          },
          "memberFrom": {
            "nullable": true,
            "type": "string"
          },
          "memberId": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "party": {
            "nullable": true,
            "type": "string"
          },
          "partyAbbreviation": {
            "nullable": true,
            "type": "string"
          },
          "partyColour": {
            "nullable": true,
            "type": "string"
          },
          "partyIsMainParty": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "MemberVotingRecordViewModel": {
        "additionalProperties": false,
        "properties": {
          "memberId": {
            "format": "int32",
            "type": "integer"
          },
          "memberWasContent": {
            "type": "boolean"
          },
          "memberWasTeller": {
            "type": "boolean"
          },
          "publishedDivision": {
            "$ref": "#/components/schemas/DivisionViewModel"
          }
        },
        "type": "object"
      },
      "PartyVoteResultViewModel": {
        "additionalProperties": false,
        "properties": {
          "partyName": {
            "nullable": true,
            "type": "string"
          },
          "voteCount": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
  }
}