@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Members API
@version v1
@endpoints 43
@hint download_for_search
@toc api(43)

@endpoint GET /api/Location/Browse/{locationType}/{locationName}
@required {locationType: any, locationName: str}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/Search
@optional {searchText: str, skip: int(int32)=0, take: int(int32)=20}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Location/Constituency/{id}
@required {id: int(int32)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/Synopsis
@required {id: int(int32)}
@returns(200) {value: str?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/Representations
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/Geometry
@required {id: int(int32)}
@returns(200) {value: str?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/ElectionResults
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/ElectionResult/{electionId}
@required {id: int(int32), electionId: int(int32)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Location/Constituency/{id}/ElectionResult/Latest
@required {id: int(int32)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/LordsInterests/Register
@optional {searchTerm: str, page: int(int32), includeDeleted: bool=false}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/LordsInterests/Staff
@optional {searchTerm: str, page: int(int32)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Members/Search
@optional {Name: str, Location: str, PostTitle: str, PartyId: int(int32), House: any, ConstituencyId: int(int32), NameStartsWith: str, Gender: str, MembershipStartedSince: str(date-time), MembershipEnded.MembershipEndedSince: str(date-time), MembershipEnded.MembershipEndReasonIds: [int(int32)], MembershipInDateRange.WasMemberOnOrAfter: str(date-time), MembershipInDateRange.WasMemberOnOrBefore: str(date-time), MembershipInDateRange.WasMemberOfHouse: any, IsEligible: bool, IsCurrentMember: bool, PolicyInterestId: int(int32), Experience: str, skip: int(int32)=0, take: int(int32)=20}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Members/SearchHistorical
@optional {name: str, dateToSearchFor: str(date-time), skip: int(int32)=0, take: int(int32)=20}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Members/{id}
@required {id: int(int32)}
@optional {detailsForDate: str(date-time)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Biography
@required {id: int(int32)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Contact
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/ContributionSummary
@required {id: int(int32)}
@optional {page: int(int32)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Edms
@required {id: int(int32)}
@optional {page: int(int32)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Experience
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Focus
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/History
@optional {ids: [int(int32)]}
@returns(200)
@errors {400, 404}

@endpoint GET /api/Members/{id}/LatestElectionResult
@required {id: int(int32)}
@returns(200) {value: any?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Portrait
@required {id: int(int32)}
@optional {cropType: any=0, webVersion: bool=true}
@returns(200)
@returns(204)
@errors {400, 404}

@endpoint GET /api/Members/{id}/PortraitUrl
@required {id: int(int32)}
@returns(200) {value: str?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/RegisteredInterests
@required {id: int(int32)}
@optional {house: any}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Staff
@required {id: int(int32)}
@returns(200) {value: [map]?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Synopsis
@required {id: int(int32)}
@returns(200) {value: str?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Thumbnail
@required {id: int(int32)}
@returns(200)
@returns(204)
@errors {400, 404}

@endpoint GET /api/Members/{id}/ThumbnailUrl
@required {id: int(int32)}
@returns(200) {value: str?, links: [map]?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/Voting
@required {id: int(int32), house: any}
@optional {page: int(int32)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400, 404}

@endpoint GET /api/Members/{id}/WrittenQuestions
@required {id: int(int32)}
@optional {page: int(int32)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400, 404}

@endpoint GET /api/Parties/StateOfTheParties/{house}/{forDate}
@required {house: any, forDate: str(date-time)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Parties/LordsByType/{forDate}
@required {forDate: str(date-time)}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Parties/GetActive/{house}
@required {house: any}
@returns(200) {items: [map]?, totalResults: int(int32), resultContext: str?, skip: int(int32), take: int(int32), links: [map]?, resultType: any?}
@errors {400}

@endpoint GET /api/Posts/GovernmentPosts
@optional {departmentId: int(int32)}
@returns(200)
@errors {400, 404}

@endpoint GET /api/Posts/OppositionPosts
@optional {departmentId: int(int32)}
@returns(200)
@errors {400, 404}

@endpoint GET /api/Posts/Spokespersons
@optional {partyId: int(int32)}
@returns(200)
@errors {400, 404}

@endpoint GET /api/Posts/Departments/{type}
@required {type: any}
@returns(200)
@errors {404}

@endpoint GET /api/Posts/SpeakerAndDeputies/{forDate}
@required {forDate: str(date-time)}
@returns(200)
@errors {400, 404}

@endpoint GET /api/Reference/PolicyInterests
@returns(200)

@endpoint GET /api/Reference/Departments
@optional {id: int(int32), nameContains: str}
@returns(200)
@errors {400}

@endpoint GET /api/Reference/AnsweringBodies
@optional {id: int(int32), nameContains: str}
@returns(200)
@errors {400}

@endpoint GET /api/Reference/Departments/{id}/Logo
@required {id: int(int32)}
@returns(200)
@errors {400, 404}

@end
