experience-consistency.html
Uniform shapes, conventions, and structure so every endpoint behaves predictably.
Run this ruleset
Lint any matching artifact against this ruleset with the Spotlight CLI:
npm i -g @spotlight-rules/spotlight-cli spotlight lint api.yaml \ --ruleset https://apicommons.org/assets/rulesets/experience-consistency.spotlight.yaml
Or load it into the browser validator, post it to the HTTP API, or wire it into a CI gate. 56 of these rules are the engine's built-ins (they come with spotlight:*); the other 248 are inlined in the file below.
Ruleset definition
Loading…
Rules in this ruleset (304)
Skill Description Single Line
Agent Skill
Skill Single Title
Agent Skill
API Property Require Linting Rules
APIs.json
API Property Require Valid URL
APIs.json
API Property Require Vocabulary
APIs.json
API Tag Require Upper Case
APIs.json
Maintainer Email Format
APIs.json
Tag Require Upper Case
APIs.json
Schema Asyncapi Property Camel Case
AsyncAPI
Document JSON LD ID IRI
JSON-LD
Document Require ID
JSON Schema
Document Require Property
JSON Schema
Document Require Required List
JSON Schema
Document Require Type
JSON Schema
Schema Property Require Type
JSON Schema
Schema Require
JSON Schema
Document JSON Structure ID URI
JSON Structure
Document Require ID
JSON Structure
Document Require Name
JSON Structure
Document Require Property
JSON Structure
Document Require Type
JSON Structure
Schema JSON Structure Property Camel Case
JSON Structure
Schema JSON Structure URI
JSON Structure
Schema Property Require Type
JSON Structure
Schema Require
JSON Structure
Header No X Prefix
OpenAPI
Info Description Length Limit
OpenAPI
Info Microcks Extension Valid
OpenAPI
Info Title Capitalized
OpenAPI
Info Title Max Length
OpenAPI
Info Version Must Be Semver
OpenAPI
Info Version Must Use Semver
OpenAPI
Info Version Semantic And Stable
OpenAPI
Limit Nested Sub Resources
OpenAPI
Limit Path Length
OpenAPI
Limit Path Parameter
OpenAPI
Operation Description Max Length
OpenAPI
Operation ID Camel Case
OpenAPI
Operation ID URL Safe
OpenAPI
Operation Post Not For Retrieval
OpenAPI
Operation Ref Resource File
OpenAPI
Operation Require ID
OpenAPI
Operation Require Identifier
OpenAPI
Operation Require One Tag
OpenAPI
Operation Require Response
OpenAPI
Operation Summary Max Length
OpenAPI
Operation Summary No Period
OpenAPI
Operation Tag Title Case
OpenAPI
Operation Use Ref
OpenAPI
Parameter Array Require Items
OpenAPI
Parameter Array Typed Items
OpenAPI
Parameter Description Max Length
OpenAPI
Parameter Enum Upper Snake Case
OpenAPI
Parameter Keys Snake Case
OpenAPI
Parameter Name Max Length
OpenAPI
Parameter Names Camel Case
OpenAPI
Parameter No ID Query
OpenAPI
Parameter Query Camel Case
OpenAPI
Parameter Query Must Be Optional
OpenAPI
Parameter Schema Require Type
OpenAPI
Parameter Schema Use Ref
OpenAPI
Parameter Sort Param Only On Get
OpenAPI
Path Delete No Response Body
OpenAPI
Path Get Response Support JSON
OpenAPI
Path Include Version
OpenAPI
Path Max Nesting Depth
OpenAPI
Path No API Prefix In
OpenAPI
Path No Empty Segment
OpenAPI
Path No File Extension In
OpenAPI
Path No File Extensions
OpenAPI
Path No Format Extensions In
OpenAPI
Path No HTTP Method Names
OpenAPI
Path No HTTP Methods In
OpenAPI
Path No HTTP Verbs
OpenAPI
Path No Invalid Symbols
OpenAPI
Path No Query String
OpenAPI
Path No Query Strings In
OpenAPI
Path No Trailing Slash
OpenAPI
Path No Trailing Slash In
OpenAPI
Path No Verbs
OpenAPI
Path No Version Segment
OpenAPI
Path Parameter Camel Case
OpenAPI
Path Parameter Constant Case
OpenAPI
Path Parameter Kebab Case
OpenAPI
Path Parameter Not Empty
OpenAPI
Path Parameter Pascal Case
OpenAPI
Path Parameter Snake Case
OpenAPI
Path Params Declared In Block
OpenAPI
Path Require Query Parameter
OpenAPI
Path Require Valid HTTP Verb
OpenAPI
Path Resources Plural
OpenAPI
Path Segment Kebab Case
OpenAPI
Path Use Standard HTTP Methods
OpenAPI
Path Write Response Support JSON
OpenAPI
Request Delete No Body
OpenAPI
Request Get Must Not Have Body
OpenAPI
Request Get No Body
OpenAPI
Request Head Must Not Have Body
OpenAPI
Request Header Names Pascal Case
OpenAPI
Request Support Accept Language
OpenAPI
Request Support JSON Media Type
OpenAPI
Request Support XML Media Type
OpenAPI
Response Body Must Be Object
OpenAPI
Response Code Must Be Valid
OpenAPI
Response Delete Codes Allowed
OpenAPI
Response Delete Define 204
OpenAPI
Response Delete Require 204
OpenAPI
Response Error Standard Payload
OpenAPI
Response Error Use Problem JSON
OpenAPI
Response Error Use Problem Type
OpenAPI
Response Get Codes Allowed
OpenAPI
Response Get Define 200
OpenAPI
Response Get Must Return 200
OpenAPI
Response Get Must Return Body
OpenAPI
Response Head Codes Allowed
OpenAPI
Response Header No X Prefix
OpenAPI
Response Keys Snake Case
OpenAPI
Response Names Pascal Case
OpenAPI
Response Options Codes Allowed
OpenAPI
Response Patch Codes Allowed
OpenAPI
Response Post Codes Allowed
OpenAPI
Response Post Define 201
OpenAPI
Response Post Require 201 Or 202
OpenAPI
Response Prefer 400 Over 422
OpenAPI
Response Put Codes Allowed
OpenAPI
Response Success Use HAL JSON
OpenAPI
Response Use JSON API
OpenAPI
Response Use Standard Mime Types
OpenAPI
Schema Boolean No Prefix
OpenAPI
Schema Definition Camel Case
OpenAPI
Schema Definition Constant Case
OpenAPI
Schema Definition Kebab Case
OpenAPI
Schema Definition Pascal Case
OpenAPI
Schema Definition Snake Case
OpenAPI
Schema Description Max Length
OpenAPI
Schema Enum Not Empty
OpenAPI
Schema Integer Require Format
OpenAPI
Schema Keys Snake Case
OpenAPI
Schema Name Max Length
OpenAPI
Schema Names Pascal Case
OpenAPI
Schema Number Require Format
OpenAPI
Schema Property Camel Case
OpenAPI
Schema Property Camel Case 3
OpenAPI
Schema Property Constant Case
OpenAPI
Schema Property Kebab Case
OpenAPI
Schema Property Names Camel Case
OpenAPI
Schema Property No Prepositions
OpenAPI
Schema Property Pascal Case
OpenAPI
Schema Property Require Type
OpenAPI
Schema Property Snake Case
OpenAPI
Schema Ref Property Standard
OpenAPI
Schema Require Tag Object
OpenAPI
Schema Require Type
OpenAPI
Schema Use Fingerprint Not Hash
OpenAPI
Schema Use ID Not Identifier
OpenAPI
Schema Use Org Not Organization
OpenAPI
Server Must Not Specify Port
OpenAPI
Server On Approved Domain
OpenAPI
Server URL Include Version
OpenAPI
Server URL Meet Standards
OpenAPI
Server URL Must Be Lowercase
OpenAPI
Tag Names Title Case
OpenAPI
Tag No Camel Case
OpenAPI
Tag No Pascal Case
OpenAPI
Tag Require At Least One
OpenAPI
Plan Currency Iso4217
Plans
Plan Require Interval
Plans
Limit Scope Known
Rate Limits
Limit Window Format
Rate Limits