Home
API Linting
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 Design API Governance API Linting API Style Guide AsyncAPI JSON Schema Linting OpenAPI Quality Assurance Topic
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...
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'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 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...
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...
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's OpenAPI validator with 90+ built-in rules across six categories — SDK generation, spec correctness, best practices, security, schema validation, and Speakeasy-specif...
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'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 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...
10 classes · 18 properties
JSON-LD
14 properties
JSON STRUCTURE
Sources
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