Hebrew University of Jerusalem · API Governance Rules
Hebrew University of Jerusalem API Rules
Spectral linting rules defining API design standards and conventions for Hebrew University of Jerusalem.
8 Rules
error 5
warn 3
Rule Categories
huji
Rules
error
huji-shnaton-server-is-institution-operated
The only server this contract may describe is the university's own host. A server on a vendor domain would mean the contract is no longer the institution's, which is the failure mode the university profiling pipeline exists to prevent.
$.servers[*].url
error
huji-shnaton-operator-declared
Every contract in this repository must declare who operates the thing it describes.
$.info
error
huji-shnaton-provenance-declared
This contract was derived, not published by the university. The provenance block must say so, because an unmarked artifact is credited to the institution as though it published it.
$.info
error
huji-shnaton-bilingual-text
Human-readable text is bilingual throughout this API. A BilingualText object must keep its Hebrew member, which is the primary one — the English member is frequently empty and must never be treated as the canonical name.
$.components.schemas.BilingualText
error
huji-shnaton-year-parameter-required
Year-scoped operations fail with HTTP 400 when `year` is omitted, so the parameter must be declared required. Declaring it optional would describe a call that cannot succeed.
$.components.parameters.YearRequired
warn
huji-shnaton-operation-described
Every operation carries a description naming what it returns and when it was verified.
$.paths[*][get,post]
warn
huji-shnaton-error-response-declared
Operations that take a required parameter must document the 400 they return when it is missing or malformed, in one of the API's two error formats.
$.paths[*][get,post].responses
warn
huji-shnaton-no-unpaginated-bulk-without-warning
/courses/search-advanced returns the entire matching set unpaginated — 14 MB and 6,355 courses for a single broad query. The description must keep warning callers, because there is no pagination parameter to discover.
$.paths['/courses/search-advanced'].post.description
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.