University of Pittsburgh · API Governance Rules
University of Pittsburgh API Rules
Spectral linting rules defining API design standards and conventions for University of Pittsburgh.
10 Rules
error 5
warn 5
Rule Categories
pitt
Rules
error
pitt-info-operator
Every spec in a University of Pittsburgh repo must declare info.x-operator, because most surfaces that look like a university's are a vendor's.
$.info
error
pitt-info-operator-evidence
An x-operator claim must carry the evidence that settled it.
$.info
error
pitt-info-provenance
Every spec must carry x-provenance. Pitt publishes no machine-readable contract for any of its surfaces, so every OpenAPI in this repository was written by API Evangelist and must say so.
$.info
warn
pitt-institutional-contact
Every Pitt-operated API should name the institutional unit that runs it — the surfaces are owned by unrelated departments and the unit is the only thing that disambiguates them.
$.info
warn
pitt-server-under-institution-domain
A server URL in this repo must sit under pitt.edu, or the surface must be recorded as a tenancy instead. data.wprdc.org is the one deliberate exception and it is documented in apis.yml with x-operator evidence.
$.servers[*].url
error
pitt-no-vendor-host
No server in a University of Pittsburgh spec may point at a research-platform vendor. This is the failure this pipeline exists to prevent: one figshare contract was credited to twenty-five institutions in the June 2026 cohort.
$.servers[*].url
warn
pitt-apikey-not-in-query
A credential should not travel in the query string. Project Tycho's apikey does, with no header alternative, so it lands in access logs, browser history and Referer headers. Flagged rather than silently modelled.
$.components.securitySchemes[?(@.type=='apiKey')].in
warn
pitt-error-responses-declared
Every operation should declare a non-2xx response. None of Pitt's surfaces publishes an error reference, and Project Tycho serves its only error with HTTP 200 — so an operation that declares nothing but 200 is describing the API accurately and this stays a warning, not an error.
$.paths[*][get,post,put,patch,delete].responses
error
pitt-operation-id
Every operation needs an operationId so agents and generators can address it.
$.paths[*][get,post,put,patch,delete]
warn
pitt-operation-description
Every operation needs a description. Pitt's own reference is prose-only, so the description is where the semantics that would otherwise be lost have to live.
$.paths[*][get,post,put,patch,delete]
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.