University of Basel · API Governance Rules

University of Basel API Rules

Spectral linting rules defining API design standards and conventions for University of Basel.

6 Rules warn 4 info 2
View Rules File View on GitHub

Rule Categories

defs no property schema

Rules

warn
schema-declares-$schema
Every JSON Schema document should declare its $schema (draft).
$
warn
schema-draft-consistency
$schema should reference the 2020-12 draft (this API's convention).
$.$schema
info
schema-has-title
JSON Schema documents should declare a title.
$
info
property-name-casing
Schema properties should be snake_case (the dominant convention in this API).
$..properties
warn
defs-name-casing
Schema $defs names should be PascalCase (the dominant convention in this API).
$..$defs
warn
no-empty-descriptions
Descriptions must not be empty strings.
$..description

Spectral Ruleset

Raw ↑
# authorship: generated by API Evangelist tooling. Stamped 2026-08-18
# on the file's own generator header (roadmap#64). An unmarked file is
# NOT assumed to be ours -- absence of evidence was never stamped.
x-method: generated
# university-of-basel — JSON Schema Spectral ruleset (strengthened)
# Plain Spectral. Rules measured from this provider's own JSON Schema
# conventions by strengthen_jsonschema.py, then self-validated against them.
#
# Provenance:
#   - schema-declares-$schema: 3/3 roots
#   - schema-draft-consistency: 2020-12 @ 100%
#   - schema-has-title: 3/3 roots
#   - property-name-casing: snake @ 86% (n=84)
#   - def-name-casing: pascal @ 96% (n=46)
rules:
  schema-declares-$schema:
    description: Every JSON Schema document should declare its $schema (draft).
    severity: warn
    given: $
    then:
      field: $schema
      function: truthy
  schema-draft-consistency:
    description: $schema should reference the 2020-12 draft (this API's convention).
    severity: warn
    given: $.$schema
    then:
      function: pattern
      functionOptions:
        match: 2020\-12
  schema-has-title:
    description: JSON Schema documents should declare a title.
    severity: info
    given: $
    then:
      field: title
      function: truthy
  property-name-casing:
    description: Schema properties should be snake_case (the dominant convention in this API).
    severity: info
    given: $..properties
    then:
      field: '@key'
      function: casing
      functionOptions:
        type: snake
  defs-name-casing:
    description: Schema $defs names should be PascalCase (the dominant convention in this API).
    severity: warn
    given: $..$defs
    then:
      field: '@key'
      function: pattern
      functionOptions:
        match: ^[A-Z][A-Za-z0-9]*$
  no-empty-descriptions:
    description: Descriptions must not be empty strings.
    severity: warn
    given: $..description
    then:
      function: truthy

Work with this as data

Every ruleset here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for spectral rules

4 MCP tools reach this
  • find_rulesBrowse and filter every ruleset in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This ruleset
curl "https://apis.io/api/v1/rules/university-of-basel-jsonschema-spectral-rules"
All spectral rules
curl "https://apis.io/api/v1/rules?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.