Elhub · API Governance Rules

Elhub API Rules

Spectral linting rules defining API design standards and conventions for Elhub.

5 Rules error 5
Published by Elhub Served by the provider at https://github.com/elhub/flex-information-system/blob/141eb37366ceb3e725c62906026eb89b1db106df/.spectral.yaml; the copy below was fetched from there.
View Rules File View on GitHub

Rule Categories

elhub flex

Rules

error
elhub-paths-snake-case
Paths must be snake_case.
$.paths[*]~
error
flex-operation-id-format
operationId format
$.paths[*][*].operationId
error
flex-operation-summary-format
operationId format
$.paths[*][*].summary
error
flex-reusable-links-snake-case
Reusable links name should be combination of snake_case and spinal-case. snake_case are used to reference resource and field, but it is separated by dash. NOTE: This naming standard assumes that all links are used to reference id on the target resource.
$.components.links[*]~
error
flex-links-snake-case
Links name must be snake_case
$.paths[*][*].responses[*].links[*]~

Spectral Ruleset

Raw ↑
# harvested from https://github.com/elhub/flex-information-system/blob/141eb37366ceb3e725c62906026eb89b1db106df/.spectral.yaml on 2026-10-09 — a Spectral ruleset published in the provider's own GitHub repository (elhub/flex-information-system); found by GitHub code search, fetched verbatim
x-method: harvested
x-stamped: 2026-10-09
x-source-url: https://github.com/elhub/flex-information-system/blob/141eb37366ceb3e725c62906026eb89b1db106df/.spectral.yaml
# Rules for spectral
# https://meta.stoplight.io/docs/spectral/01baf06bdd05a-create-a-ruleset
# https://github.com/stoplightio/spectral?tab=readme-ov-file#-real-world-rulesets
extends: ["spectral:oas"]
rules:
  # Modify default rules
  # https://docs.stoplight.io/docs/spectral/4dec24461f3af-open-api-rules
  operation-description: false

  oas3-unused-component: info

  # According to https://github.com/MikeRalphson/OpenAPI-Specification/blob/main/examples/v3.1/non-oauth-scopes.yaml
  # non-oauth scopes are not defined at the securityScheme level
  oas3-operation-security-defined: false

  elhub-paths-snake-case:
    description: Paths must be snake_case.
    message: "Path '{{property}}' must be snake_case"
    severity: error
    given: $.paths[*]~
    then:
      function: pattern
      functionOptions:
        match: "^(\/|[a-z0-9_.]+|{[a-z0-9_]+})+$"

  flex-operation-id-format:
    description: operationId format
    message: >-
      operationId '{{value}}' must
      be snake_case
      and starting with list_, read_, create_, update_, delete_ or call_.
    severity: error
    given: $.paths[*][*].operationId
    then:
      function: pattern
      functionOptions:
        match: "^(list|read|create|update|delete|call)_[a-z0-9_.]+$"

  flex-operation-summary-format:
    description: operationId format
    message: >-
      Summary '{{value}}' must start with
      List, Read, Create, Update, Delete or Call.
    severity: error
    given: $.paths[*][*].summary
    then:
      function: pattern
      functionOptions:
        match: "^(List|Read|Create|Update|Delete|Call) .+$"

  flex-reusable-links-snake-case:
    message: >-
      Reusable link should have <linked_resource>-<linking_field> format.
    description: >-
      Reusable links name should be combination of snake_case and spinal-case.
      snake_case are used to reference resource and field,
      but it is separated by dash.

      NOTE: This naming standard assumes that all links are used to
      reference id on the target resource.
    severity: error
    given: $.components.links[*]~
    then:
      function: pattern
      functionOptions:
        match: "^[a-z0-9_]+-[a-z0-9_]+$"

  flex-links-snake-case:
    description: Links name must be snake_case
    message: "Link name '{{property}}' must be snake_case"
    severity: error
    given: $.paths[*][*].responses[*].links[*]~
    then:
      function: casing
      functionOptions:
        type: snake

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/elhub-flex-information-system-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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