PipesHub · API Governance Rules

PipesHub API Rules

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

3 Rules warn 2
Published by PipesHub Served by the provider at https://github.com/pipeshub-ai/pipeshub-ai/blob/a883af6d0f5d31f57d07d88dfcb1e9c483343e38/.spectral.yaml; the copy below was fetched from there.
View Rules File View on GitHub

Rule Categories

path request schema

Rules

warn
path-camel-case
Static path segments should use camelCase.
$.paths[*]~
warn
request-body-description
Request bodies should have a description.
$.paths[*][*].requestBody
hint
schema-properties-define-type
Schema properties should define a type.
$.components.schemas[*].properties[*]

Spectral Ruleset

Raw ↑
# harvested from https://github.com/pipeshub-ai/pipeshub-ai/blob/a883af6d0f5d31f57d07d88dfcb1e9c483343e38/.spectral.yaml on 2026-10-09 — a Spectral ruleset published in the provider's own GitHub repository (pipeshub-ai/pipeshub-ai); found by GitHub code search, fetched verbatim
x-method: harvested
x-stamped: 2026-10-09
x-source-url: https://github.com/pipeshub-ai/pipeshub-ai/blob/a883af6d0f5d31f57d07d88dfcb1e9c483343e38/.spectral.yaml
extends:
  - spectral:oas

rules:
  # --- Structural validity ---
  oas3-schema: error
  oas3-valid-media-example: warn
  oas3-valid-schema-example: warn

  # --- Descriptions & documentation ---
  info-description: error
  info-contact: warn
  operation-description: warn
  operation-operationId: error
  operation-tags: error
  tag-description: warn

  # --- Naming & consistency ---
  operation-operationId-valid-in-url: error
  path-params: error
  path-keys-no-trailing-slash: warn

  # --- Security ---
  oas3-operation-security-defined: error

  # --- Response quality ---
  operation-success-response: error

  # Disable rules that are too noisy for this spec
  info-license: off
  oas3-api-servers: off

  # --- Custom rules ---

  # Paths must use camelCase for static segments (matching backend route conventions).
  # Allows: {params}, dots (.well-known), hash fragments (#s3).
  path-camel-case:
    description: Static path segments should use camelCase.
    message: "{{property}} contains segments that are not camelCase."
    severity: warn
    given: $.paths[*]~
    then:
      function: pattern
      functionOptions:
        match: "^(/([a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*|\\{[^}]+\\}|\\.[a-zA-Z0-9\\-.]+|[a-z0-9\\-.]+))+/?([#][a-zA-Z0-9]+)?$"

  # Request bodies should have a description
  request-body-description:
    description: Request bodies should have a description.
    message: Request body is missing a description.
    severity: warn
    given: $.paths[*][*].requestBody
    then:
      field: description
      function: truthy

  # Schema properties should have a type defined.
  # Note: Properties using $ref, oneOf/anyOf/allOf legitimately omit type.
  # Severity set to hint to avoid false positives on polymorphic schemas.
  schema-properties-define-type:
    description: Schema properties should define a type.
    message: "{{property}} is missing a type (ignore if using $ref/oneOf/anyOf/allOf)."
    severity: hint
    given: $.components.schemas[*].properties[*]
    then:
      field: type
      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/pipeshub-pipeshub-ai-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.