@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api SchoolDigger API V1
@base https://api.schooldigger.com
@version v1
@auth ApiKey appKey in query
@common_fields {appID: any, appKey: any}
@endpoints 6
@toc districts(2), rankings(2), schools(2)

@group districts
@endpoint GET /v1/districts
@required {st: any}
@optional {q: any, city: any, zip: any, nearLatitude: any, nearLongitude: any, boundaryAddress: any, distanceMiles: any, isInBoundaryOnly: any, boxLatitudeNW: any, boxLongitudeNW: any, boxLatitudeSE: any, boxLongitudeSE: any, page: any, perPage: any, sortBy: any, includeUnrankedDistrictsInRankSort: any}
@returns(200)

@endpoint GET /v1/districts/{id}
@required {id: any}
@returns(200)

@endgroup

@group rankings
@endpoint GET /v1/rankings/schools/{st}
@required {st: any}
@optional {year: any, level: any, page: any, perPage: any}
@returns(200)

@endpoint GET /v1/rankings/districts/{st}
@required {st: any}
@optional {year: any, page: any, perPage: any}
@returns(200)

@endgroup

@group schools
@endpoint GET /v1/schools
@required {st: any}
@optional {q: any, qSearchSchoolNameOnly: any, districtID: any, level: any, city: any, zip: any, isMagnet: any, isCharter: any, isVirtual: any, isTitleI: any, isTitleISchoolwide: any, nearLatitude: any, nearLongitude: any, boundaryAddress: any, distanceMiles: any, isInBoundaryOnly: any, boxLatitudeNW: any, boxLongitudeNW: any, boxLatitudeSE: any, boxLongitudeSE: any, page: any, perPage: any, sortBy: any, includeUnrankedSchoolsInRankSort: any}
@returns(200)

@endpoint GET /v1/schools/{id}
@required {id: any}
@returns(200)

@endgroup

@end
