Teliax · API Governance Rules

Teliax API Rules

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

9 Rules error 5 warn 4
Published by Teliax Served by the provider at https://github.com/teliax/ringer-oapi/blob/5ba0143e6b8246571905b37f17b8719a6e8ceaf2/.spectral.yaml; the copy below was fetched from there.
View Rules File View on GitHub

Rule Categories

info operation required ringer schema security

Rules

error
operation-success-response
Operation must have at least one 2xx or 3xx response
$.paths.*.*.responses
error
info-contact
Info object should contain a contact object
$.info
error
info-description
Info object should contain a description
$.info
error
ringer-contact-email
Contact email should use the ringer.tel domain
$.info.contact.email
error
security-schemes-defined
API must define security schemes
$.components
warn
operation-security-defined
Each operation should have security defined
$.paths.*.*
warn
schema-examples-provided
Schema objects should have examples
$..schema
warn
operation-examples-provided
Response content should include examples
$.paths.*.*.responses.*.content.*
warn
required-fields-specified
Schema objects should specify required fields
$.components.schemas.*

Spectral Ruleset

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

rules:
  # Customize severity of built-in rules
  openapi-tags: error
  operation-tags: error
  operation-operationId: error
  operation-description: error
  
  # Operation responses - fixed to correctly identify 200 responses
  operation-success-response:
    description: Operation must have at least one 2xx or 3xx response
    given: $.paths.*.*.responses
    severity: error
    then:
      function: schema
      functionOptions:
        schema:
          type: object
          properties:
            "200": {}
            "201": {}
            "202": {}
            "203": {}
            "204": {}
            "205": {}
            "206": {}
            "207": {}
            "208": {}
            "226": {}
            "300": {}
            "301": {}
            "302": {}
            "303": {}
            "304": {}
            "305": {}
            "306": {}
            "307": {}
            "308": {}
          minProperties: 1
          patternProperties:
            "^[2-3][0-9][0-9]$": {}

  # Check info object completeness  
  info-contact:
    description: Info object should contain a contact object
    given: $.info
    severity: error # Changed from warn to error
    then:
      field: contact
      function: truthy
      
  info-description:
    description: Info object should contain a description
    given: $.info
    severity: error
    then:
      field: description
      function: truthy 
      
  # New rules to match our API standards
  ringer-contact-email:
    description: Contact email should use the ringer.tel domain
    given: $.info.contact.email
    severity: error
    then:
      function: pattern
      functionOptions:
        match: "@ringer\\.tel$"
        
  security-schemes-defined:
    description: API must define security schemes
    given: $.components
    severity: error
    then:
      field: securitySchemes
      function: truthy
      
  operation-security-defined:
    description: Each operation should have security defined
    given: $.paths.*.*
    severity: warn
    then:
      field: security
      function: truthy
      
  schema-examples-provided:
    description: Schema objects should have examples
    given: $..schema
    severity: warn
    then:
      function: schema
      functionOptions:
        schema:
          type: object
          required: ["example"]
          
  operation-examples-provided:
    description: Response content should include examples
    given: $.paths.*.*.responses.*.content.*
    severity: warn
    then:
      function: schema
      functionOptions:
        schema:
          type: object
          required: ["example"]
          
  required-fields-specified:
    description: Schema objects should specify required fields
    given: $.components.schemas.*
    severity: warn
    then:
      field: required
      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/teliax-ringer-oapi-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.