Inworld AI · API Governance Rules

Inworld AI API Rules

Spectral linting rules defining API design standards and conventions for Inworld AI.

7 Rules error 2 warn 5
View Rules File View on GitHub

Rule Categories

inworld

Rules

error
inworld-paths-lowercase
All paths use lowercase ASCII letters, digits, hyphens, slashes, and the `:verb` action suffix; no camelCase or underscores.
$.paths.*~
warn
inworld-camelcase-properties
Inworld schemas use camelCase property names (e.g. `voiceId`, `audioConfig`, `langCode`).
$..properties.*~
error
inworld-api-version-prefix
Endpoints should be versioned with `/v1/` somewhere in the path.
$.paths.*~
warn
inworld-basic-auth-required
All HTTP REST endpoints require Basic API-key authentication unless explicitly overridden for Realtime JWT.
$.paths.*[get,post,put,patch,delete]
warn
inworld-operation-summary-title-case
Operation summaries must use Title Case.
$.paths.*[get,post,put,patch,delete].summary
warn
inworld-action-suffix-verbs
When an action verb is used in the path it should follow the `:verb` suffix convention (e.g. `:clone`, `:design`, `:publish`, `:stream`, `:websocket`).
$.paths.*~
warn
inworld-error-schema
4XX responses should reference the canonical Error schema.
$.paths.*.*.responses.4XX

Spectral Ruleset

Raw ↑
extends:
  - "spectral:oas"
formats:
  - oas3_1
rules:
  # ---- Naming conventions observed in Inworld's API surface ----
  inworld-paths-lowercase:
    description: All paths use lowercase ASCII letters, digits, hyphens, slashes, and the `:verb` action suffix; no camelCase or underscores.
    message: Inworld paths should be lowercase (`/tts/v1/voice`, `/voices/v1/voices:clone`).
    severity: error
    given: "$.paths.*~"
    then:
      function: pattern
      functionOptions:
        match: "^/[a-z0-9/:_{}-]+$"

  inworld-camelcase-properties:
    description: Inworld schemas use camelCase property names (e.g. `voiceId`, `audioConfig`, `langCode`).
    message: Schema properties should be camelCase.
    severity: warn
    given: "$..properties.*~"
    then:
      function: pattern
      functionOptions:
        match: "^[a-z][a-zA-Z0-9]*$"

  inworld-api-version-prefix:
    description: Endpoints should be versioned with `/v1/` somewhere in the path.
    message: Inworld paths should include `/v1/`.
    severity: error
    given: "$.paths.*~"
    then:
      function: pattern
      functionOptions:
        match: "/v1/"

  inworld-basic-auth-required:
    description: All HTTP REST endpoints require Basic API-key authentication unless explicitly overridden for Realtime JWT.
    message: Every operation should declare the BasicAuth security scheme.
    severity: warn
    given: "$.paths.*[get,post,put,patch,delete]"
    then:
      field: security
      function: truthy

  inworld-operation-summary-title-case:
    description: Operation summaries must use Title Case.
    message: Operation summary should be Title Case.
    severity: warn
    given: "$.paths.*[get,post,put,patch,delete].summary"
    then:
      function: pattern
      functionOptions:
        match: "^([A-Z][a-zA-Z0-9]*)( [A-Z0-9][a-zA-Z0-9]*)*$"

  inworld-action-suffix-verbs:
    description: When an action verb is used in the path it should follow the `:verb` suffix convention (e.g. `:clone`, `:design`, `:publish`, `:stream`, `:websocket`).
    message: Use `:verb` action suffix for non-CRUD operations.
    severity: warn
    given: "$.paths.*~"
    then:
      function: pattern
      functionOptions:
        match: "^(?!.*[:](?!clone|design|publish|stream|websocket)).*$"

  inworld-error-schema:
    description: 4XX responses should reference the canonical Error schema.
    message: Error responses should point at #/components/schemas/Error.
    severity: warn
    given: "$.paths.*.*.responses.4XX"
    then:
      field: "$ref"
      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/inworld-ai-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.