API Linting logo

API Linting

API Linting is a topic index for the tools, rulesets, vocabularies, and practices that automate API style guide enforcement across OpenAPI, AsyncAPI, JSON Schema, and adjacent contract formats. The collection catalogs the major open-source and commercial linters in use across the industry — Spectral, Vacuum, Redocly CLI, Optic, Apicurio, sweater-comb, Speakeasy, and Postman API governance — alongside shared schemas, JSON-LD context, and a working vocabulary so linting concepts can be reasoned about consistently across tools.

10 APIs 0 Features
API DesignAPI GovernanceAPI LintingAPI Style GuideAsyncAPIJSON SchemaLintingOpenAPIQuality AssuranceTopic

APIs

Spectral

Stoplight's flexible JSON/YAML linter for creating automated style guides, with baked-in support for OpenAPI v3.1, v3.0, v2.0, Arazzo v1.0, and AsyncAPI v2.x. Spectral is the de...

Vacuum

A Go-based, ultra-fast OpenAPI linter inspired by Spectral and fully compatible with existing Spectral rulesets. Vacuum tears through API specs at light speed, ships interactive...

Redocly CLI

Redocly's `lint` command identifies and reports problems in OpenAPI, AsyncAPI, Arazzo, or Open-RPC descriptions, helping teams "avoid bugs and make API or Arazzo descriptions mo...

Optic

Optic catches breaking changes and applies lint rules to OpenAPI specs, generating OpenAPI from real traffic and keeping it accurate with automatic schema testing and patches. T...

Apicurio Registry

Red Hat's open-source API/schema registry that stores and validates OpenAPI, AsyncAPI, JSON Schema, Avro, Protobuf, and GraphQL artifacts. While not a pure linter, Apicurio Regi...

Sweater Comb

Snyk's TypeScript ruleset built on Optic CI that enforces consistency standards across OpenAPI specifications. Sweater Comb codifies the Snyk API Program's design rules so a gro...

Speakeasy Linter

Speakeasy's OpenAPI validator with 90+ built-in rules across six categories — SDK generation, spec correctness, best practices, security, schema validation, and Speakeasy-specif...

Postman API Governance

Postman Spec Hub's governance engine applies linting rules to OpenAPI 2.0, 3.0, and 3.1 specifications, surfacing violations directly in the Issues tab below the spec editor. En...

Stoplight Studio

Stoplight's API design IDE embeds Spectral natively, surfacing ruleset violations as real-time editor feedback as designers author OpenAPI and JSON Schema. Studio is the canonic...

APIMetrics

APIMetrics provides live-traffic API monitoring with a rule engine that evaluates JSON Schema and response-shape compliance on every production call. Unlike static linters, APIM...

Semantic Vocabularies

Linting Context

10 classes · 18 properties

JSON-LD

Resources

🔗
Repository
Repository
👥
GitHubOrganization
GitHubOrganization
🔗
Network
Network
🔗
JSONSchema
JSONSchema
🔗
JSONStructure
JSONStructure
🔗
JSONLDContext
JSONLDContext
🔗
Vocabulary
Vocabulary
🔗
RelatedRepository
RelatedRepository
🔗
RelatedRepository
RelatedRepository
🔗
RelatedRepository
RelatedRepository
🔗
RelatedRepository
RelatedRepository
🔗
RelatedRepository
RelatedRepository
🔗
RelatedRepository
RelatedRepository

Sources

apis.yml Raw ↑
aid: linting
name: API Linting
description: >-
  API Linting is a topic index for the tools, rulesets, vocabularies, and
  practices that automate API style guide enforcement across OpenAPI,
  AsyncAPI, JSON Schema, and adjacent contract formats. The collection
  catalogs the major open-source and commercial linters in use across the
  industry — Spectral, Vacuum, Redocly CLI, Optic, Apicurio, sweater-comb,
  Speakeasy, and Postman API governance — alongside shared schemas, JSON-LD
  context, and a working vocabulary so linting concepts can be reasoned
  about consistently across tools.
type: Index
image: https://kinlane-productions2.s3.amazonaws.com/api-evangelist-logos/api-evangelist-logo-butterfly.png
tags:
  - API Design
  - API Governance
  - API Linting
  - API Style Guide
  - AsyncAPI
  - JSON Schema
  - Linting
  - OpenAPI
  - Quality Assurance
  - Topic
url: >-
  https://raw.githubusercontent.com/api-evangelist/linting/refs/heads/main/apis.yml
created: '2026-05-22'
modified: '2026-05-22'
specificationVersion: '0.19'
apis:
  - aid: linting:spectral
    name: Spectral
    description: >-
      Stoplight's flexible JSON/YAML linter for creating automated style
      guides, with baked-in support for OpenAPI v3.1, v3.0, v2.0, Arazzo
      v1.0, and AsyncAPI v2.x. Spectral is the de facto reference linter
      for API style guides — every other tool in this index either extends
      its rule grammar or competes with it directly.
    humanURL: https://stoplight.io/open-source/spectral
    baseURL: https://github.com/stoplightio/spectral
    tags:
      - API Linting
      - API Style Guide
      - AsyncAPI
      - JSONPath
      - OpenAPI
      - Stoplight
    properties:
      - type: Documentation
        url: https://docs.stoplight.io/docs/spectral
      - type: GettingStarted
        url: https://docs.stoplight.io/docs/spectral/674b27b261c3c-overview
      - type: GitHubRepository
        url: https://github.com/stoplightio/spectral
      - type: NPMPackage
        url: https://www.npmjs.com/package/@stoplight/spectral-cli
      - type: VSCodeExtension
        url: https://marketplace.visualstudio.com/items?itemName=stoplight.spectral
      - type: ChangeLog
        url: https://github.com/stoplightio/spectral/blob/main/CHANGELOG.md
      - type: License
        url: https://github.com/stoplightio/spectral/blob/main/LICENSE
        x-license: Apache-2.0
      - type: RulesetReference
        url: https://docs.stoplight.io/docs/spectral/e5b9616d6d50c-rulesets
      - type: BuiltInFunctions
        url: https://docs.stoplight.io/docs/spectral/cb95cf0d26b83-core-functions
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/spectral
    x-rules-format: spectral-yaml
    x-rules-engine: javascript
    x-integration-points:
      - cli
      - ci
      - vscode
      - sdk-node
    x-supported-formats:
      - openapi-2.0
      - openapi-3.0
      - openapi-3.1
      - asyncapi-2.x
      - arazzo-1.0
      - generic-json-yaml

  - aid: linting:vacuum
    name: Vacuum
    description: >-
      A Go-based, ultra-fast OpenAPI linter inspired by Spectral and fully
      compatible with existing Spectral rulesets. Vacuum tears through API
      specs at light speed, ships interactive HTML reports and a dashboard
      TUI, and embeds as a Go SDK for native CI tooling.
    humanURL: https://quobix.com/vacuum/
    baseURL: https://github.com/daveshanley/vacuum
    tags:
      - API Linting
      - Go
      - OpenAPI
      - Performance
      - Spectral Compatible
    properties:
      - type: Documentation
        url: https://quobix.com/vacuum/start/
      - type: GitHubRepository
        url: https://github.com/daveshanley/vacuum
      - type: Releases
        url: https://github.com/daveshanley/vacuum/releases
      - type: License
        url: https://github.com/daveshanley/vacuum/blob/main/LICENSE
        x-license: MIT
      - type: Rulesets
        url: https://quobix.com/vacuum/rulesets/
      - type: HTMLReport
        url: https://quobix.com/vacuum/commands/html-report/
      - type: Dashboard
        url: https://quobix.com/vacuum/commands/dashboard/
      - type: GitHubAction
        url: https://github.com/marketplace/actions/vacuum-openapi-linter
      - type: VSCodeExtension
        url: https://marketplace.visualstudio.com/items?itemName=quobix.vacuum
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/vacuum
    x-rules-format: spectral-yaml
    x-rules-engine: go
    x-integration-points:
      - cli
      - ci
      - vscode
      - dashboard
      - sdk-go
    x-supported-formats:
      - openapi-2.0
      - openapi-3.0
      - openapi-3.1

  - aid: linting:redocly-cli
    name: Redocly CLI
    description: >-
      Redocly's `lint` command identifies and reports problems in OpenAPI,
      AsyncAPI, Arazzo, or Open-RPC descriptions, helping teams "avoid bugs
      and make API or Arazzo descriptions more consistent." Rules and
      assertions are configured through `redocly.yaml` with four preset
      severity profiles — minimal, recommended, recommended-strict, and
      spec.
    humanURL: https://redocly.com/docs/cli/
    baseURL: https://github.com/Redocly/redocly-cli
    tags:
      - API Linting
      - Arazzo
      - AsyncAPI
      - Open-RPC
      - OpenAPI
      - Redocly
    properties:
      - type: Documentation
        url: https://redocly.com/docs/cli/commands/lint/
      - type: BuiltInRules
        url: https://redocly.com/docs/cli/rules/built-in-rules/
      - type: ConfigurableRules
        url: https://redocly.com/docs/cli/rules/configurable-rules/
      - type: CustomPlugins
        url: https://redocly.com/docs/cli/custom-plugins/
      - type: GitHubRepository
        url: https://github.com/Redocly/redocly-cli
      - type: NPMPackage
        url: https://www.npmjs.com/package/@redocly/cli
      - type: License
        url: https://github.com/Redocly/redocly-cli/blob/main/LICENSE
        x-license: MIT
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/redocly
    x-rules-format: redocly-yaml
    x-rules-engine: typescript
    x-integration-points:
      - cli
      - ci
      - github-actions
    x-supported-formats:
      - openapi-2.0
      - openapi-3.0
      - openapi-3.1
      - asyncapi-2.x
      - asyncapi-3.0
      - arazzo-1.0
      - open-rpc

  - aid: linting:optic
    name: Optic
    description: >-
      Optic catches breaking changes and applies lint rules to OpenAPI
      specs, generating OpenAPI from real traffic and keeping it accurate
      with automatic schema testing and patches. The project was archived
      in January 2026 after Optic Labs was acquired by Atlassian, but the
      ruleset model remains in active use via sweater-comb and forks.
    humanURL: https://www.useoptic.com/
    baseURL: https://github.com/opticdev/optic
    tags:
      - API Diff
      - API Linting
      - Breaking Changes
      - OpenAPI
      - TypeScript
    properties:
      - type: Documentation
        url: https://www.useoptic.com/docs
      - type: GitHubRepository
        url: https://github.com/opticdev/optic
      - type: NPMPackage
        url: https://www.npmjs.com/package/@useoptic/optic
      - type: License
        url: https://github.com/opticdev/optic/blob/main/LICENSE
        x-license: MIT
      - type: Releases
        url: https://github.com/opticdev/optic/releases
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/optic
    x-rules-format: optic-typescript
    x-rules-engine: typescript
    x-integration-points:
      - cli
      - ci
      - sdk-node
    x-supported-formats:
      - openapi-3.0
      - openapi-3.1
    x-status: archived-2026-01-12

  - aid: linting:apicurio-registry
    name: Apicurio Registry
    description: >-
      Red Hat's open-source API/schema registry that stores and validates
      OpenAPI, AsyncAPI, JSON Schema, Avro, Protobuf, and GraphQL
      artifacts. While not a pure linter, Apicurio Registry performs
      content-rule validation on artifact upload and is the canonical
      governance point in many Kafka and event-driven architectures.
    humanURL: https://www.apicur.io/registry/
    baseURL: https://github.com/Apicurio/apicurio-registry
    tags:
      - Apicurio
      - AsyncAPI
      - Avro
      - JSON Schema
      - Kafka
      - OpenAPI
      - Protobuf
      - Red Hat
      - Schema Registry
    properties:
      - type: Documentation
        url: https://www.apicur.io/registry/docs/apicurio-registry/3.0.x/index.html
      - type: GitHubRepository
        url: https://github.com/Apicurio/apicurio-registry
      - type: License
        url: https://github.com/Apicurio/apicurio-registry/blob/main/LICENSE
        x-license: Apache-2.0
      - type: ContentRules
        url: https://www.apicur.io/registry/docs/apicurio-registry/3.0.x/getting-started/assembly-managing-registry-artifacts.html
    x-rules-format: apicurio-content-rules
    x-rules-engine: java
    x-integration-points:
      - rest-api
      - ui
      - ci
      - kafka-serdes
    x-supported-formats:
      - openapi
      - asyncapi
      - avro
      - json-schema
      - protobuf
      - graphql

  - aid: linting:sweater-comb
    name: Sweater Comb
    description: >-
      Snyk's TypeScript ruleset built on Optic CI that enforces consistency
      standards across OpenAPI specifications. Sweater Comb codifies the
      Snyk API Program's design rules so a growing federation of teams
      ship "cohesive, consistent and unsurprising" APIs without manual
      review.
    humanURL: https://github.com/snyk/sweater-comb
    baseURL: https://github.com/snyk/sweater-comb
    tags:
      - API Governance
      - OpenAPI
      - Optic
      - Ruleset
      - Snyk
      - TypeScript
    properties:
      - type: GitHubRepository
        url: https://github.com/snyk/sweater-comb
      - type: NPMPackage
        url: https://www.npmjs.com/package/@snyk/sweater-comb
      - type: License
        url: https://github.com/snyk/sweater-comb/blob/main/LICENSE
        x-license: Apache-2.0
      - type: APIStandards
        url: https://github.com/snyk/sweater-comb/blob/main/docs/standards.md
    x-rules-format: optic-typescript
    x-rules-engine: typescript
    x-integration-points:
      - cli
      - ci
    x-supported-formats:
      - openapi-3.0
      - openapi-3.1

  - aid: linting:speakeasy
    name: Speakeasy Linter
    description: >-
      Speakeasy's OpenAPI validator with 90+ built-in rules across six
      categories — SDK generation, spec correctness, best practices,
      security, schema validation, and Speakeasy-specific checks. The
      `speakeasy-generation` ruleset is always applied to guarantee
      compatibility with the code generator and cannot be overridden.
    humanURL: https://www.speakeasy.com/docs/prep-openapi/linting
    baseURL: https://github.com/speakeasy-api/speakeasy
    tags:
      - API Linting
      - OpenAPI
      - SDK Generation
      - Speakeasy
    properties:
      - type: Documentation
        url: https://www.speakeasy.com/docs/prep-openapi/linting
      - type: GitHubRepository
        url: https://github.com/speakeasy-api/speakeasy
      - type: License
        url: https://github.com/speakeasy-api/speakeasy/blob/main/LICENSE.md
        x-license: MIT
      - type: CustomRuleTypes
        url: https://www.npmjs.com/package/@speakeasy-api/openapi-linter-types
    x-rules-format: speakeasy-yaml
    x-rules-engine: go
    x-integration-points:
      - cli
      - ci
      - sdk-typescript
    x-supported-formats:
      - openapi-3.0
      - openapi-3.1

  - aid: linting:postman-api-governance
    name: Postman API Governance
    description: >-
      Postman Spec Hub's governance engine applies linting rules to
      OpenAPI 2.0, 3.0, and 3.1 specifications, surfacing violations
      directly in the Issues tab below the spec editor. Enterprise teams
      can customize the rules Postman applies and enforce them across
      CI/CD pipelines via the Postman CLI.
    humanURL: https://learning.postman.com/docs/api-governance/api-definition/api-definition-warnings/
    baseURL: https://www.postman.com/
    tags:
      - API Governance
      - API Linting
      - OpenAPI
      - Postman
      - Spec Hub
    properties:
      - type: Documentation
        url: https://learning.postman.com/docs/api-governance/api-definition/api-definition-warnings/
      - type: ConfigurableRules
        url: https://learning.postman.com/docs/api-governance/configurable-rules/configuring-api-governance-rules/
      - type: PostmanCLI
        url: https://learning.postman.com/docs/postman-cli/postman-cli-overview/
      - type: Pricing
        url: https://www.postman.com/pricing/
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/postman
    x-rules-format: postman-governance
    x-rules-engine: proprietary
    x-integration-points:
      - web-ui
      - ci
      - postman-cli
    x-supported-formats:
      - openapi-2.0
      - openapi-3.0
      - openapi-3.1

  - aid: linting:stoplight-studio
    name: Stoplight Studio
    description: >-
      Stoplight's API design IDE embeds Spectral natively, surfacing
      ruleset violations as real-time editor feedback as designers
      author OpenAPI and JSON Schema. Studio is the canonical
      reference for IDE-grade linting feedback in the API design
      surface.
    humanURL: https://stoplight.io/api-design
    baseURL: https://stoplight.io/
    tags:
      - API Design
      - API Linting
      - IDE
      - Spectral
      - Stoplight
    properties:
      - type: Documentation
        url: https://docs.stoplight.io/docs/studio/b3A6Mzc1MDU3NA-overview
      - type: SpectralIntegration
        url: https://docs.stoplight.io/docs/studio/b3A6MTI0NjYzNTM-style-guides-and-linting
      - type: APIEvangelistRepository
        url: https://github.com/api-evangelist/stoplight
    x-rules-format: spectral-yaml
    x-rules-engine: javascript
    x-integration-points:
      - desktop-ide
      - web-ide
      - git
    x-supported-formats:
      - openapi-2.0
      - openapi-3.0
      - openapi-3.1
      - json-schema

  - aid: linting:apimetrics
    name: APIMetrics
    description: >-
      APIMetrics provides live-traffic API monitoring with a rule engine
      that evaluates JSON Schema and response-shape compliance on every
      production call. Unlike static linters, APIMetrics enforces
      contract conformance at runtime as a complement to design-time
      Spectral/Vacuum/Redocly checks.
    humanURL: https://apimetrics.io/
    baseURL: https://apimetrics.io/
    tags:
      - API Monitoring
      - APIMetrics
      - JSON Schema
      - Runtime Validation
    properties:
      - type: Documentation
        url: https://apimetrics.io/docs/
      - type: GitHubRepository
        url: https://github.com/APImetrics
    x-rules-format: apimetrics-yaml
    x-rules-engine: proprietary
    x-integration-points:
      - saas
      - api
    x-supported-formats:
      - json-schema
      - openapi-3.0
      - openapi-3.1

common:
  - type: Repository
    url: https://github.com/api-evangelist/linting
  - type: GitHubOrganization
    url: https://github.com/api-evangelist
  - type: Network
    url: https://github.com/api-evangelist/api-evangelist-network
  - type: JSONSchema
    url: >-
      https://raw.githubusercontent.com/api-evangelist/linting/refs/heads/main/json-schema/linting-rule-schema.json
  - type: JSONStructure
    url: >-
      https://raw.githubusercontent.com/api-evangelist/linting/refs/heads/main/json-structure/linting-rule-structure.json
  - type: JSONLDContext
    url: >-
      https://raw.githubusercontent.com/api-evangelist/linting/refs/heads/main/json-ld/linting-context.jsonld
  - type: Vocabulary
    url: >-
      https://raw.githubusercontent.com/api-evangelist/linting/refs/heads/main/vocabulary/linting-vocabulary.yml
  - type: RelatedRepository
    url: https://github.com/api-evangelist/spotlight-rules
  - type: RelatedRepository
    url: https://github.com/api-evangelist/spectral
  - type: RelatedRepository
    url: https://github.com/api-evangelist/vacuum
  - type: RelatedRepository
    url: https://github.com/api-evangelist/redocly
  - type: RelatedRepository
    url: https://github.com/api-evangelist/optic
  - type: RelatedRepository
    url: https://github.com/api-evangelist/stoplight

maintainers:
  - FN: Kin Lane
    email: [email protected]
    X-github: kinlane