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-images.s3.amazonaws.com/shared/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
  - url: graphql/linting-graphql.md
    type: GraphQL
  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: kin@apievangelist.com
  X-github: kinlane