@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Commons Votes API
@base http://commonsvotes-api.parliament.uk
@version v1
@endpoints 5
@toc data(5)

@endpoint GET /data/division/{divisionId}.{format}
@desc Return a Division
@required {divisionId: any # Id number of a Division whose records are to be returned, format: any # xml or json}
@returns(200) OK
@errors {400: BadRequest, 404: NotFound}

@endpoint GET /data/divisions.{format}/groupedbyparty
@desc Return Divisions results grouped by party
@required {format: any # xml or json}
@optional {queryParameters.searchTerm: any # Divisions containing search term within title or number, queryParameters.memberId: any # Divisions returning Member with Member ID voting records, queryParameters.includeWhenMemberWasTeller: any # Divisions where member was a teller as well as if they actually voted, queryParameters.startDate: any # Divisions where division date in one or after date provided. Date format is yyyy-MM-dd, queryParameters.endDate: any # Divisions where division date in one or before date provided. Date format is yyyy-MM-dd, queryParameters.divisionNumber: any # 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}
@returns(200) OK
@errors {400: BadRequest}

@endpoint GET /data/divisions.{format}/membervoting
@desc Return voting records for a Member
@required {format: any # xml or json, queryParameters.memberId: any # Id number of a Member whose voting records are to be returned}
@optional {queryParameters.skip: any # The number of records to skip. Default is 0, queryParameters.take: any # The number of records to return per page. Default is 25, queryParameters.searchTerm: any # Divisions containing search term within title or number, queryParameters.includeWhenMemberWasTeller: any # Divisions where member was a teller as well as if they actually voted, queryParameters.startDate: any # Divisions where division date in one or after date provided. Date format is yyyy-MM-dd, queryParameters.endDate: any # Divisions where division date in one or before date provided. Date format is yyyy-MM-dd, queryParameters.divisionNumber: any # 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}
@returns(200) OK
@errors {400: BadRequest}

@endpoint GET /data/divisions.{format}/search
@desc Return a list of Divisions
@required {format: any # json or xml}
@optional {queryParameters.skip: any # The number of records to skip. Default is 0, queryParameters.take: any # The number of records to return per page. Default is 25, queryParameters.searchTerm: any # Divisions containing search term within title or number, queryParameters.memberId: any # Divisions returning Member with Member ID voting records, queryParameters.includeWhenMemberWasTeller: any # Divisions where member was a teller as well as if they actually voted, queryParameters.startDate: any # Divisions where division date in one or after date provided. Date format is yyyy-MM-dd, queryParameters.endDate: any # Divisions where division date in one or before date provided. Date format is yyyy-MM-dd, queryParameters.divisionNumber: any # 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}
@returns(200) OK
@errors {400: BadRequest}

@endpoint GET /data/divisions.{format}/searchTotalResults
@desc Return total results count
@required {format: any # json or xml}
@optional {queryParameters.searchTerm: any # Divisions containing search term within title or number, queryParameters.memberId: any # Divisions returning Member with Member ID voting records, queryParameters.includeWhenMemberWasTeller: any # Divisions where member was a teller as well as if they actually voted, queryParameters.startDate: any # Divisions where division date in one or after date provided. Date format is yyyy-MM-dd, queryParameters.endDate: any # Divisions where division date in one or before date provided. Date format is yyyy-MM-dd, queryParameters.divisionNumber: any # 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}
@returns(200) OK
@errors {400: BadRequest}

@end
