RunSignup · API Governance Rules
RunSignup API Rules
Spectral linting rules defining API design standards and conventions for RunSignup.
16 Rules
error 6
warn 7
info 3
Rule Categories
runsignup
Rules
error
runsignup-operation-id-required
All operations must have an operationId
$.paths[*][get,post,put,patch,delete]
warn
runsignup-operation-id-camel-case
RunSignup operationIds use camelCase convention (e.g., getRaces, postRaceResults, getBibChipAssignments). This ensures consistent SDK method naming.
$.paths[*][get,post,put,patch,delete].operationId
error
runsignup-tags-required
All operations must have at least one tag
$.paths[*][get,post,put,patch,delete]
warn
runsignup-tags-title-case
Tags must use Title Case (e.g., "Races", "Participants", "Results")
$.paths[*][get,post,put,patch,delete].tags[*]
error
runsignup-summary-required
All operations must have a summary
$.paths[*][get,post,put,patch,delete]
warn
runsignup-summary-title-case
Operation summaries must use Title Case to match RunSignup documentation conventions (e.g., "Get Races", "Post Race Results", "Get Bib and Chip Assignments").
$.paths[*][get,post,put,patch,delete].summary
warn
runsignup-description-required
All operations must have a description
$.paths[*][get,post,put,patch,delete]
error
runsignup-race-id-path-param-required
All paths containing {race_id} must define the race_id parameter as required. RunSignup organizes all race-specific resources under the race_id path parameter.
$.paths[~/race_id~][*].parameters[?(@.name == 'race_id')]
warn
runsignup-responses-must-include-401
Authenticated endpoints must document 401 Unauthorized response
$.paths[*][get,post,put,patch,delete].responses
error
runsignup-get-must-return-200
GET operations must define a 200 success response
$.paths[*].get.responses
warn
runsignup-post-must-return-200
POST operations must define a 200 success response
$.paths[*].post.responses
info
runsignup-format-query-param
RunSignup API supports json and xml response formats via a ?format= query parameter. GET endpoints should document this parameter.
$.paths[*].get.parameters[?(@.name == 'format')].schema.enum
info
runsignup-pagination-params-consistent
RunSignup uses consistent pagination parameters: page (integer, default 1) and results_per_page (integer, max 1000). List endpoints should document these.
$.paths[*].get.parameters[?(@.name == 'page')].schema
warn
runsignup-schema-properties-typed
All schema properties should define a type
$.components.schemas[*].properties[*]
info
runsignup-path-uses-kebab-case
RunSignup API paths use snake_case and hyphens for resource names (e.g., /race/{race_id}/get-bib-chip, /delete-participants). Paths should not use camelCase segments.
$.paths
error
runsignup-servers-defined
At least one server must be defined
$