API Linting website screenshot

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...

GraphQL

Semantic Vocabularies

Linting Context

10 classes · 18 properties

JSON-LD

JSON Structure

Linting Rule Structure

14 properties

JSON STRUCTURE

Example Payloads

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: ReleaseNotes
    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: ReleaseNotes
    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