[{
"slug": "apis-json-apis-aid-error",
"name": "APIs.json APIs AID Error",
"icon": "fingerprint",
"description": "Every API should have a unique identifier, known as an AID (API Identifier). The APIs.json file, contract, or collection contains its own AID, which the API uses as part of its reference. Additionally, the API applies a slugified version of its name, resulting in a unique, human-readable identifier for the API.",
"message": "APIs MUST have an aid property.",
"given": "$.apis.*",
"severity": "error",
"view_sort": "B",
"tags": ["APIs.json","APIs","Metadata","Identifiers"],
"rules": null
},{
"slug": "apis-json-apis-aid-info",
"name": "APIs.json APIs AID Info",
"icon": "fingerprint",
"description": "Every API should have a unique identifier, known as an AID (API Identifier). The APIs.json file, contract, or collection contains its own AID, which the API uses as part of its reference. Additionally, the API applies a slugified version of its name, resulting in a unique, human-readable identifier for the API.",
"message": "APIs MUST have an aid property.",
"given": "$.apis.*",
"severity": "info",
"view_sort": "B",
"tags": ["APIs.json","APIs","Metadata","Identifiers"],
"rules": null
},{
"slug": "apis-json-apis-baseURL-error",
"name": "APIs.json Apis Base URL Error",
"icon": "link",
"description": "Each API defined within an APIs.json artifact can specify the base URL for the API. This URL serves as a reference point for developers during onboarding and when making API calls. Additionally, it helps identify the API and validate the domain it is associated with.",
"message": "APIs MUST Have a Base URL",
"given": "$.apis.*",
"severity": "error",
"view_sort": "G",
"tags": ["APIs.json","APIs","Metadata","URLs"],
"rules": null
},{
"slug": "apis-json-apis-baseURL-info",
"name": "APIs.json Apis BaseURL Info",
"icon": "link",
"description": "Each API defined within an APIs.json artifact can specify the base URL for the API. This URL serves as a reference point for developers during onboarding and when making API calls. Additionally, it helps identify the API and validate the domain it is associated with.",
"message": "APIs Has a Base URL",
"given": "$.apis.*",
"severity": "info",
"view_sort": "G",
"tags": ["APIs.json","APIs","Metadata","URLs"],
"rules": null
},{
"slug": "apis-json-apis-contact-email-error",
"name": "APIs.json Apis Contact Email Error",
"icon": "contact_mail",
"description": "The contact object in an APIs.json file allows for referencing the email address of a person or group. This property provides a convenient way for users to seek support for an API, using email as the default method to reach the team managing the API in production.",
"message": "API contact COULD have email.",
"given": "$.apis.*.contact.*",
"severity": "error",
"view_sort": "HB",
"tags": ["APIs.json","APIs","Metadata","Contacts"],
"rules": null
},{
"slug": "apis-json-apis-contact-email-info",
"name": "APIs.json Apis Contact Email Info",
"icon": "contact_mail",
"description": "The contact object in an APIs.json file allows for referencing the email address of a person or group. This property provides a convenient way for users to seek support for an API, using email as the default method to reach the team managing the API in production.",
"message": "API contact has email.",
"given": "$.apis.*.contact.*",
"severity": "info",
"view_sort": "HB",
"tags": ["APIs.json","APIs","Metadata","Contacts"],
"rules": null
},{
"slug": "apis-json-apis-contact-error",
"name": "APIs.json Apis Contact Error",
"icon": "contacts",
"description": "The contact object in an APIs.json file allows for associating a vCard that represents an individual or organizational entity. It includes common contact information such as a name, email, or other references, offering a standardized method for providing support for an API.",
"message": "API COULD have a contact.",
"given": "$.apis.*",
"severity": "warn",
"view_sort": "H",
"tags": ["APIs.json","APIs","Metadata","Contacts"],
"rules": null
},{
"slug": "apis-json-apis-contact-fn-error",
"name": "APIs.json Apis Contact Fn Error",
"icon": "contacts",
"description": "The contact object in an APIs.json file includes a full name (FN) property, which specifies the formatted text corresponding to the contact name in the vCard for an API. This provides a quick and clear way to assign a person, group, or other point of contact to an API for addressing questions and providing support.",
"message": "Contact Could Have FN",
"given": "$.apis.*.contact.*",
"severity": "error",
"view_sort": "HA",
"tags": ["APIs.json","APIs","Metadata","Contacts"],
"rules": null
},{
"slug": "apis-json-apis-contact-fn-info",
"name": "APIs.json Apis Contact Fn Info",
"icon": "contacts",
"description": "The contact object in an APIs.json file includes a full name (FN) property, which specifies the formatted text corresponding to the contact name in the vCard for an API. This provides a quick and clear way to assign a person, group, or other point of contact to an API for addressing questions and providing support.",
"message": "Contact Has FN",
"given": "$.apis.*.contact.*",
"severity": "info",
"view_sort": "HA",
"tags": ["APIs.json","APIs","Metadata","Contacts"],
"rules": null
},{
"slug": "apis-json-apis-contact-info",
"name": "APIs.json APIs Contact Info",
"icon": "contacts",
"description": "The contact object in an APIs.json file allows for associating a vCard that represents an individual or organizational entity. It includes common contact information such as a name, email, or other references, offering a standardized method for providing support for an API.",
"message": "Has a Contract",
"given": "[&quot;$.apis.*&quot;]",
"severity": "info",
"view_sort": "H",
"tags": ["APIs.json","Metadata","Contacts","APIs"],
"rules": null
},{
"slug": "apis-json-apis-description-info",
"name": "APIs.json APIs Description Info",
"icon": "description",
"description": "Each API included in an APIs.json file should have a 1-3 paragraph description. This description serves as the first impression for potential consumers and is often displayed in portals, networks, search results, and other discovery channels. A well-crafted description plays a key role in helping API consumers understand and onboard with the API effectively.",
"message": "Has a Description",
"given": "$.apis.*",
"severity": "info",
"view_sort": "D",
"tags": ["APIs.json","Metadata","APIs"],
"rules": null
},{
"slug": "apis-json-apis-humanURL-info",
"name": "APIs.json APIs Human URL Info",
"icon": "link",
"description": "The humanURL property for each API defined in an APIs.json contract provides a link for business or technical consumers to learn more about the API. This URL can direct users to a portal, documentation, or ideally, a dedicated landing page designed specifically to onboard consumers with a single API.",
"message": "Has a Human URL",
"given": "$.apis.*",
"severity": "info",
"view_sort": "F",
"tags": ["APIs.json","Metadata","APIs","URLs"],
"rules": null
},{
"slug": "apis-json-apis-image-info",
"name": "APIs.json Apis Image Info",
"icon": "image",
"description": "Each API defined within an APIs.json file can include a dedicated image, offering a visual representation of the resource or capability it provides. This enhances the API's approachability and visual appeal in portals, documentation, catalogs, and marketplaces, making it more engaging for potential users.",
"message": "Has an Image",
"given": "$.apis.*",
"severity": "info",
"view_sort": "E",
"tags": ["APIs.json","APIs","Metadata"],
"rules": null
},{
"slug": "apis-json-apis-info",
"name": "APIs.json APIs Info",
"icon": "api",
"description": "The APIs property in an APIs.json file enables the definition of one or more APIs as part of a larger collection. Each API within this property has its own subset of metadata, allowing it to be uniquely identified and distinguished from the rest of the collection. This individual metadata contributes to the overall value and functionality of the API collection.",
"message": "Has APIs",
"given": "$",
"severity": "info",
"view_sort": "A",
"tags": ["APIs.json","Metadata","Info","APIs"],
"rules": null
},{
"slug": "apis-json-apis-name-info",
"name": "APIs.json APIs Name Info",
"icon": "id_card",
"description": "Each individual API in an APIs.json collection has its own name property, allowing for a clear description of the API. This name might match the API's title in the OpenAPI Info section, but it could also represent the API's business purpose, as displayed in catalogs and search results.",
"message": "Has a Name",
"given": "$.apis.*",
"severity": "info",
"view_sort": "C",
"tags": ["APIs.json","Metadata","APIs"],
"rules": null
},{
"slug": "apis-json-apis-properties-about-info",
"name": "APIs.json Apis Properties About Info",
"icon": "",
"description": "This property ensures provides a reference to an about page, either for the company, organization, or government agency behind an API, or specifically about the domain, team, and the APIs they produce",
"message": "Has About",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "A",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-business-impact-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Business Impact Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Business Impact Canvas](https://www.apiopscycles.com/resources/business-impact-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Business Impact Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-business-model-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Business Model Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Business Model Canvas](https://www.apiopscycles.com/resources/api-business-model-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Business Model Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-capacity-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Capacity Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Capacity Canvas](https://www.apiopscycles.com/resources/capacity-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Capacity Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-customer-journey-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Customer Journey Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Customer Journey Canvas](https://www.apiopscycles.com/resources/customer-journey-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Customer Journey Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-domain-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Domain Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Domain Canvas](https://www.apiopscycles.com/resources/domain-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Domain Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-event-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Event Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Event Canvas](https://www.apiopscycles.com/resources/event-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Event Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-interaction-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Interaction Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Interaction Canvas](https://www.apiopscycles.com/resources/interaction-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Interaction Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-locations-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Locations Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Locations Canvas](https://www.apiopscycles.com/resources/locations-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Locations Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-rest-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Locations Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Locations Canvas](https://www.apiopscycles.com/resources/rest-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Locations Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apiop-cycles-value-proposition-canvas-info",
"name": "APIs.json Apis Properties APIOps Cycles Value Proposition Canvas",
"icon": "",
"description": "This ensures that an API has had the [APIOps Value Proposition Canvas](https://www.apiopscycles.com/resources/api-value-proposition-canvas) applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.",
"message": "Has APIOps Cycles Value Proposition Canvas",
"given": "[&quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties","APIOps Cycles"],
"rules": null
},{
"slug": "apis-json-apis-properties-apis-json-rules-info",
"name": "APIs.json Apis Properties Apis Json Rules Info",
"icon": "",
"description": "This property ensures that an API has operational level rules for APIs",
"message": "Has Operational Rules",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-apis-json-validator-info",
"name": "APIs.json Apis Properties Apis Json Validator Info",
"icon": "",
"description": "This property ensures that there is a link to the validator for the APIs",
"message": "Has APIs.json (Business) Validator",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-authentication-info",
"name": "APIs.json Apis Properties Authentication Info",
"icon": "",
"description": "This property ensures that there is a human readable authentication page available that will provide what type of authentication is used and how it can be applied, as well as any services or tooling that API consumers can use to troubleshoot authentication with APIs",
"message": "Has Authentication",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "D",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-blog-feed-info",
"name": "APIs.json Apis Properties Blog Feed Info",
"icon": "",
"description": "This property ensures that blogs in support of APIs have an Atom or RSS feed of posts, allowing for the syndication of updates and information around individual APIs and the operations around them",
"message": "Has a Blog Feed",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-blog-info",
"name": "APIs.json Apis Properties Blog Info",
"icon": "",
"description": "This property ensures that an API has a reference to a blog where anyone can find updates and other stories that will help keep API consumers and other stakeholders up to speed on what is happening with an API, and the larger operations",
"message": "Has a Blog",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "AA",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-change-log-info",
"name": "APIs.json Apis Properties Change Log Info",
"icon": "",
"description": "This property ensures that than an individual API or API operations possesses a change log that catalogs all the changes that have occurred in a recent time frame, with historical and version information available if possible",
"message": "Has Change Log",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "L",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-compare-info",
"name": "APIs.json Apis Properties Compare Info",
"icon": "",
"description": "This property ensures that an API has the ability to compare two different versions of an API and see what the difference are between them",
"message": "Has an API Comparison",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-deprecation-policy-info",
"name": "APIs.json Apis Properties Deprecation Policy Info",
"icon": "",
"description": "This property ensures that an API has a deprecation policy shared as part of the contract, communicating what the lifespan of APIs are, each individual version, as well as communication around the deprecation of APIs",
"message": "Has Deprecation Policy",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-documentation-info",
"name": "APIs.json Apis Properties Documentation Info",
"icon": "",
"description": "This property ensures that there is documentation published for an API, and API consumers will have a set of human-readable instructions for onboarding and integrating with HTTP APIs in their applications",
"message": "Has Documentation",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "C",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-environments-production-info",
"name": "APIs.json Apis Properties Environments Production Info",
"icon": "",
"description": "This property ensures that there is a production environment available for an API, providing base URL, tokens, keys, and other key / value pairs that are needed to integrate with an API",
"message": "Has a Production Environment",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "J",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-environments-staging-info",
"name": "APIs.json Apis Properties Environments Staging Info",
"icon": "",
"description": "This property ensures that there is a staging environment available for an API, providing base URL, tokens, keys, and other key / value pairs that are needed to integrate with an API",
"message": "Has a Stage Environment",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "JA",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-examples-info",
"name": "APIs.json API Properties Examples Info",
"icon": "",
"description": "This property ensures that an API has a reference to a examples for individual APIs or as part of common properties, providing examples and synthentic data that can be used for APIs.",
"message": "Has a Blog",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "AA",
"tags": ["APIs.json","APIs","Properties","Sandbox","Examples"],
"rules": null
},{
"slug": "apis-json-apis-properties-feedback-email-info",
"name": "APIs.json Apis Properties Feedback Email Info",
"icon": "",
"description": "This property ensures that there is an email available for API consumers to provide feedback",
"message": "Has Feedback Email",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-feedback-issues-info",
"name": "APIs.json Apis Properties Feedback Issues Info",
"icon": "",
"description": "This property ensures there is a URL to Git issues specifically for providing feedback",
"message": "Has Feedback Issues URL",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-forum-info",
"name": "APIs.json Apis Properties Forum Info",
"icon": "",
"description": "This property ensures that there is a link to a discussion forum, providing a way for consumers and producers to engage and support either other throughout the lifecycle",
"message": "Has Discussion Forum",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "AC",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-gateway-info",
"name": "APIs.json Apis Properties Gateway Info",
"icon": "",
"description": "This property ensures that there is a reference to the gateway for an API, referencing where you can manage the configuration for each API",
"message": "Has Staging Gateway for API",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-getting-started-info",
"name": "APIs.json Apis Properties Getting Started Info",
"icon": "",
"description": "This property ensures that there is a getting started link available, providing a reference for API consumers to get started with an API is as few steps as possible",
"message": "Has Getting Started",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "B",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-github-action-info",
"name": "APIs.json Apis Properties Github Action Info",
"icon": "",
"description": "This property ensures that a GitHub Actions CI/CD pipeline is available for an API, providing a link to the pipeline YAML artifact, which can be used to automate and govern the API as part of the build process",
"message": "Has a GitHub Action",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-github-organization-info",
"name": "APIs.json Apis Properties Github Organization Info",
"icon": "",
"description": "This property ensures that an API is associated with GitHub organization, providing the URL to where you can engage with the operations surrounding an API",
"message": "Has a GitHub Organization",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-github-repository-info",
"name": "APIs.json Apis Properties Github Repository Info",
"icon": "",
"description": "This property ensures that an API possess a reference to a dedicated GitHub repository that is used to manage the Open, but also possible server and client code",
"message": "Has a GitHub Repository",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-about-info",
"name": "APIs.json APIs Properties Info",
"icon": "tune",
"description": "Each individual API included in an APIs.json file can have a properties collection, which contains specific properties relevant to that API. These properties often start with human-readable elements, such as documentation links, and can also include machine-readable properties to enhance functionality and integration.",
"message": "Has About",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "J",
"tags": ["APIs.json","APIs","Metadata"],
"rules": null
},{
"slug": "apis-json-apis-properties-insomnia-collection-info",
"name": "APIs.json Apis Properties Insomnia Collection Info",
"icon": "",
"description": "This property defines an Insomnia collection available for each API, providing executable artifacts that can be used in the Insomnia client for making calls, and executing automation workflows",
"message": "Has Insomnia Collection",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-license-info",
"name": "APIs.json Apis Properties License Info",
"icon": "",
"description": "This property ensures that an API Commons interface license exists for an API, providing a machine-readable reference for an API, as well as data, backend, and front-end code",
"message": "Has Interface License",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "B",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-lifecycle-info",
"name": "APIs.json Apis Properties Lifecycle Info",
"icon": "",
"description": "This property makes sure there is an API lifecycle schema defining all of the stages of a lifecycle and which policies get applied at each stage of the API lifecycle",
"message": "Has an API Lifecycle",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-mock-server-info",
"name": "APIs.json API Properties Mock Server Info",
"icon": "",
"description": "This property ensures that an API has a reference to a mock servers for individual APIs or as part of common properties, providing mocked deployments of an API that can be used for making test API calls.",
"message": "Has a Mock Server",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "AA",
"tags": ["APIs.json","APIs","Properties","Sandbox","Mock Servers"],
"rules": null
},{
"slug": "apis-json-apis-properties-openapi-info",
"name": "APIs.json Apis Properties OpenAPI Info",
"icon": "",
"description": "This property ensures that there is an OpenAPI present for an API, providing the technical contract that describes the surface area of an API",
"message": "Has An OpenAPI",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "E",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-openapi-rules-info",
"name": "APIs.json Apis Properties OpenAPI Rules Info",
"icon": "",
"description": "This property ensures that an OpenAPI has support governance rules, that can be applied during design time via editors, development time via IDE, and run-time via CI/CD pipelines",
"message": "Has API Rules",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-openapi-validator-info",
"name": "APIs.json Apis Properties OpenAPI Validator Info",
"icon": "",
"description": "This property ensures that there is a link to the validator for the OpenAPI technical contract, allowing anyone to see the details of governance being applied",
"message": "Has OpenAPI (Technical) Validator",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-performance-info",
"name": "APIs.json Apis Properties Performance Info",
"icon": "",
"description": "This property ensures that an API has performance testing in place, providing a URL to the performance testing, dashboard, or other resource",
"message": "Has API Performance",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "H",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-plans-info",
"name": "APIs.json Apis Properties Plans Info",
"icon": "",
"description": "This property provides a link to the dedicated plans page that applies to an API, providing information about access tiers, rate limits, and features available for an API as part of a wider API business plan",
"message": "Has API Plans",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "F",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-policies-info",
"name": "APIs.json Apis Properties Policies Info",
"icon": "",
"description": "This property ensures there is a governance policies reference as part of an API contract, usually a common property pointing to a centralized set of policies that get applied",
"message": "Has API Governance Policies",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-portal-info",
"name": "APIs.json Apis Properties Portal Info",
"icon": "",
"description": "This property ensures there a developer portal associated with an API and that you can find a landing page for the API, documentation, SDKs, and other resources",
"message": "Has Developer Portal",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "A",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-postman-collection-info",
"name": "APIs.json Apis Properties Postman Collection Info",
"icon": "",
"description": "This property ensures that an API has at least one Postman Collection associated with it, providing automation, tests, and other executable derivatives of an APIs OpenAPI",
"message": "Has a Postman Collection",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "C",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-postman-public-workspace-info",
"name": "APIs.json Apis Properties Postman Public Workspace Info",
"icon": "",
"description": "This property ensures that an API is associated with a Postman Workspace, providing a single location that API producers and/or API consumers can engage around an API",
"message": "Has Public Postman Workspace",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "CA",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-pricing-info",
"name": "APIs.json Apis Properties Pricing Info",
"icon": "",
"description": "This property provides a link to a pricing page that applies to an API, providing a breakdown of the costs associated with using an API",
"message": "Has Pricing",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-privacy-policy-info",
"name": "APIs.json Apis Properties Privacy Policy Info",
"icon": "",
"description": "This property provides a link to the privacy policy for an API, providing the legal details of how privacy is approached for each API",
"message": "Has an API Privacy Policy",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "P",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-questions-issues-info",
"name": "APIs.json Apis Properties Questions Issues Info",
"icon": "",
"description": "This property ensures that an API has a dedicated link to Git issues for asking questions",
"message": "Has Questions Issues URL",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-rate-limits-info",
"name": "APIs.json Apis Properties Rate Limits Info",
"icon": "",
"description": "This property ensures there is an API rate limits reference associated with API, ensuring the rate limits applied to an API are clearly communicated",
"message": "Has an API Terms of Services",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "G",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-road-map-info",
"name": "APIs.json Apis Properties Road Map Info",
"icon": "",
"description": "This property ensures there is a reference to the road map for an API or for the entire API operations within domain, line of business, or teams",
"message": "Has a Road Map",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "K",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-rules-info",
"name": "APIs.json Apis Properties Rules Info",
"icon": "",
"description": "This property ensures that an API has governance rules applied, usually as part of a central set of governance rules, defined by policy, or stages of the API lifecycle",
"message": "Has Linting Rules",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-sandbox-info",
"name": "APIs.json API Properties Sandbox Info",
"icon": "",
"description": "This property ensures that an API has a reference to a sandbox for individual APIs or as part of common properties, providing sandbox, synthetic data, and mock servers for use in making test requests.",
"message": "Has a Blog",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "AA",
"tags": ["APIs.json","APIs","Properties","Sandbox"],
"rules": null
},{
"slug": "apis-json-apis-properties-sdk-go-info",
"name": "APIs.json Apis Properties Sdk Go Info",
"icon": "",
"description": "This property ensures that there is a Go SDK available for an API, making it easier for Go developers to integrate an API into their applications",
"message": "Has Go SDK",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-sdk-info",
"name": "APIs.json Apis Properties Sdk Info",
"icon": "",
"description": "This property ensures that there is an SDK available for an API, making it easier for developers to integrate an API into their applications",
"message": "Has SDK",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "J",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-sdk-java-info",
"name": "APIs.json Apis Properties Sdk Java Info",
"icon": "",
"description": "This property ensures that there is a Java SDK available for an API, making it easier for Java developers to integrate an API into their applications",
"message": "Has Java SDK",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-sdk-node-info",
"name": "APIs.json Apis Properties Sdk Node Info",
"icon": "",
"description": "This property ensures that there is a Node SDK available for an API, making it easier for Node developers to integrate an API into their applications",
"message": "Has Node SDK",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-sdk-python-info",
"name": "APIs.json Apis Properties Sdk Python Info",
"icon": "",
"description": "This property ensures that there is a Python SDK available for an API, making it easier for Python developers to integrate an API into their applications",
"message": "Has Python SDK",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-security-info",
"name": "APIs.json Apis Properties Security Info",
"icon": "",
"description": "This property ensures there is a URL to the security page, providing details about how security is handled for an API",
"message": "Has Security Path",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-signup-info",
"name": "APIs.json Apis Properties Signup Info",
"icon": "",
"description": "This property ensures there is a link to where you sign up for an API, making sure API consumers can access in a single click",
"message": "Has a Sign Up",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "H",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-status-info",
"name": "APIs.json Apis Properties Status Info",
"icon": "",
"description": "This property ensures that there is a status page available for each API, providing the uptime status for any given moment, as well as historical data",
"message": "Has a Status Page",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "M",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-support-email-info",
"name": "APIs.json Apis Properties Support Email Info",
"icon": "",
"description": "This property ensures that an API has email support, providing a valid email address that can be used to get API support",
"message": "Has Support Email",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "N",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-support-issues-info",
"name": "APIs.json Apis Properties Support Issues Info",
"icon": "",
"description": "This property ensures that there are Git issues available to support an API, using the issues capability of GitHub, GitLab, or Bitbucket to support API consumers",
"message": "Has Support Issues URL",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-support-support-info",
"name": "APIs.json Apis Properties Support Support Info",
"icon": "",
"description": "This property ensures that there is a support page available for an API, providing direct and in-direct support opportunities for each API or for entire API platform",
"message": "Has Support Page",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "D",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-teams-info",
"name": "APIs.json Apis Properties Teams Info",
"icon": "",
"description": "This property ensures that there is a reference to the team behind an API, providing a reference to business and engineering stakeholders",
"message": "Has a Team Defined",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "E",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-terms-of-service-info",
"name": "APIs.json Apis Properties Terms Of Service Info",
"icon": "",
"description": "This property ensures that an API has a reference to a terms of service, covering the legal side of using an API",
"message": "Has an API Terms of Service",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "O",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-url-info",
"name": "APIs.json Apis Properties Url Info",
"icon": "",
"description": "This property ensures that properties of an API or API contract all have valid URLs, checking if any of the URLs are not properly formed, or could be other formats",
"message": "Property URLs Are Valid",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-properties-use-cases-info",
"name": "APIs.json Apis Properties Use Cases Info",
"icon": "",
"description": "This property ensures there is a reference to the use cases for an API, helping align an API with the who, what, how, and why of putting an API to work",
"message": "Has Use Cases",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "F",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-versioning-info",
"name": "APIs.json Apis Properties Versioning Info",
"icon": "",
"description": "This property ensures there is a reference to how APIs are versioned, providing a single place where teams can learn about how change is communicated",
"message": "Has Versioning for API",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","APIs","Properties","Fundamentals"],
"rules": null
},{
"slug": "apis-json-apis-properties-video-info",
"name": "APIs.json Apis Properties Video Info",
"icon": "",
"description": "This property ensures there is a reference to a video page or channel for an API",
"message": "Has Videos for API",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "G",
"tags": ["APIs.json","APIs","Properties","Additional"],
"rules": null
},{
"slug": "apis-json-apis-properties-vocabulary-info",
"name": "APIs.json Apis Properties Vocabulary Info",
"icon": "",
"description": "This property ensures that there is a centralized vocabulary in use for guiding the creation and usage of tags, path segments, and other metadata associated with an APIs",
"message": "Has Vocabulary",
"given": "[&quot;$.apis.*.properties.*&quot;, &quot;$.common.*&quot;]",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","APIs","Properties"],
"rules": null
},{
"slug": "apis-json-apis-tags-error",
"name": "APIs.json Apis Tags Error",
"icon": "style",
"description": "Each API defined in an APIs.json artifact includes a property for adding one or more tags. These tags provide additional context about the resources or capabilities offered by the API, highlighting its business value and the domain in which it is applied.",
"message": "API MUST Have a Tags Object",
"given": "$.apis.*",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","APIs","Tags"],
"rules": null
},{
"slug": "apis-json-apis-tags-info",
"name": "APIs.json Apis Tags Info",
"icon": "style",
"description": "Each API defined in an APIs.json artifact includes a property for adding one or more tags. These tags provide additional context about the resources or capabilities offered by the API, highlighting its business value and the domain in which it is applied.",
"message": "API Have a Tags Object",
"given": "$.apis.*",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","APIs","Tags"],
"rules": null
},{
"slug": "apis-json-apis-tags-upper-case-error",
"name": "APIs.json Apis Tags Upper Case Error",
"icon": "text_up",
"description": "Maintaining consistent casing for tags applied to individual APIs ensures a uniform appearance and enhances search and discovery. Each word in a tag should be capitalized, with the first letter of every word in a phrase treated the same way.",
"message": "API Tags MUST Be Upper Case",
"given": "$.apis.*.tags.*",
"severity": "error",
"view_sort": "IB",
"tags": ["APIs.json","APIs","Tags"],
"rules": null
},{
"slug": "apis-json-apis-tags-upper-case-info",
"name": "APIs.json Apis Tags Upper Case Info",
"icon": "text_up",
"description": "Maintaining consistent casing for tags applied to individual APIs ensures a uniform appearance and enhances search and discovery. Each word in a tag should be capitalized, with the first letter of every word in a phrase treated the same way.",
"message": "API Tags are Upper Case",
"given": "$.apis.*.tags.*",
"severity": "info",
"view_sort": "IB",
"tags": ["APIs.json","APIs","Tags"],
"rules": null
},{
"slug": "apis-json-common-info",
"name": "APIs.json Common Info",
"icon": "component_exchange",
"description": "An APIs.json artifact can include a set of common properties that describe aspects of API operations shared across multiple APIs in a collection. These common properties are typically managed by a centralized platform team, ensuring consistency and reducing the burden on individual teams. This allows API teams to focus on delivering the unique value of their APIs rather than duplicating efforts on shared operational elements.",
"message": "There is an common property.",
"given": "$",
"severity": "info",
"view_sort": "K",
"tags": ["APIs.json","Common","Metadata"],
"rules": null
},{
"slug": "apis-json-created-info",
"name": "APIs.json Created Info",
"icon": "calendar_month",
"description": "The created property in an APIs.json contract might seem like a minor detail, but it serves an important purpose by providing a timestamp that marks the origin of the intent to offer an interface for business purposes. This property offers a straightforward reference to indicate the age and potentially the maturity of a collection of APIs being used in business operations.",
"message": "There is a created date.",
"given": "$",
"severity": "info",
"view_sort": "E",
"tags": ["APIs.json","Metadata","Changes"],
"rules": null
},{
"slug": "apis-json-description-info",
"name": "APIs.json Description Info",
"icon": "description",
"description": "Every collection of APIs defined in APIs.json should include a one- or two-paragraph description outlining the purpose of the APIs. While individual APIs should have their own descriptions, the collection’s description should focus on the overall business purpose and the domain in which the APIs are intended to be used.",
"message": "There is a description.",
"given": "$",
"severity": "info",
"view_sort": "C",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-image-info",
"name": "APIs.json Image Info",
"icon": "image",
"description": "APIs.json contracts are often used to power discover and distribute as part of API catalogs and marketplaces. These are places where having a visual representation matching the purpose of a collection of APIs helps with discovery and onboarding, allowing some APIs to stand out and make a good first impression on consumers.",
"message": "There is an image.",
"given": "$",
"severity": "info",
"view_sort": "D",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-maintainers-email-info",
"name": "APIs.json Maintainers Email Info",
"icon": "",
"description": "The maintainers email is to provide a quick way to contact the maintainer of an APIs",
"message": "There is a email property for maintainers.",
"given": "$.maintainers.*",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","Maintainers"],
"rules": null
},{
"slug": "apis-json-maintainers-fn-info",
"name": "APIs.json Maintainers Fn Info",
"icon": "",
"description": "The purpose of the FN is to specify the formatted text corresponding to the contact name in the vCard for an APIs",
"message": "There is a FN property for maintainers.",
"given": "$.maintainers.*",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","Maintainers"],
"rules": null
},{
"slug": "apis-json-maintainers-info",
"name": "APIs.json Maintainers Info",
"icon": "",
"description": "The maintainers property is for identifying the entity who is maintaining an APIs",
"message": "There is a maintainer object.",
"given": "$",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","Maintainers"],
"rules": null
},{
"slug": "apis-json-modified-info",
"name": "APIs.json Modified Info",
"icon": "calendar_month",
"description": "The modified property in an APIs.json collection indicates the most recent updates made to a group of APIs. While detailed change logs can provide more specifics, an accurate and up-to-date modified timestamp is essential for tracking and managing changes effectively across operations.",
"message": "There is a modified date.",
"given": "$",
"severity": "info",
"view_sort": "F",
"tags": ["APIs.json","Metadata","Changes"],
"rules": null
},{
"slug": "apis-json-name-info",
"name": "APIs.json Name Info",
"icon": "id_card",
"description": "The name of a collection of APIs should describe their purpose, target audience, and the problems they aim to solve. While individual APIs should have their own specific names, the name in the APIs.json file should provide a higher-level description, emphasizing the overarching business purpose of the APIs.",
"message": "There is a name.",
"given": "$",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-specification-aid-info",
"name": "APIs.json Specification AID Info",
"icon": "fingerprint",
"description": "Every collection of APIs should have a unique identifier. This unique API identifier, or AID, serves as a human and machine-readable reference for organizing and managing various APIs. Similar to a barcode, a unique identifier helps track APIs, whether you are discovering them or putting them to use.",
"message": "There is an aid.",
"given": "$",
"severity": "info",
"view_sort": "",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-specification-type-info",
"name": "APIs.json Type Info",
"icon": "text_fields_alt",
"description": "The type property in an APIs.json file classifies the business contracts for different types of API collections. It can represent a simple index for a single API, a template or example to showcase possibilities, or classifications such as contract, search, and network to address specific business or discovery purposes.",
"message": "There is a specification type.",
"given": "$",
"severity": "info",
"view_sort": "G",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-specification-version-info",
"name": "APIs.json Version Info",
"icon": "change_circle",
"description": "The specification version of an APIs.json collection indicates which version of the APIs.json specification is being used. This ensures compatibility and allows for the validation of new properties. While property types are the most common additions, new top-level elements are also being introduced. Proper governance ensures that the correct version of the specification is applied.",
"message": "There is a specification version.",
"given": "$",
"severity": "info",
"view_sort": "H",
"tags": ["APIs.json","Metadata","Changes"],
"rules": null
},{
"slug": "apis-json-tags-info",
"name": "APIs.json Tags Info",
"icon": "style",
"description": "Each collection of APIs defined in an APIs.json artifact includes a property for adding one or more tags. These tags provide additional context about the resources or capabilities offered as part of the collection of APIs, highlighting its business value and the domain in which it is applied.",
"message": "There is a Tags Object",
"given": "$",
"severity": "info",
"view_sort": "J",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "apis-json-tags-upper-case-error",
"name": "APIs.json Tags Upper Case Error",
"icon": "text_up",
"description": "Maintaining consistent casing for tags applied to APIs.json contracts ensures a uniform appearance and enhances search and discovery. Each word in a tag should be capitalized, with the first letter of every word in a phrase treated the same way.",
"message": "Tags Upper Case",
"given": "$.tags.*",
"severity": "error",
"view_sort": "JA",
"tags": ["APIs.json","Tags"],
"rules": null
},{
"slug": "apis-json-tags-upper-case-info",
"name": "APIs.json Tags Upper Case Info",
"icon": "text_up",
"description": "Maintaining consistent casing for tags applied to APIs.json contracts ensures a uniform appearance and enhances search and discovery. Each word in a tag should be capitalized, with the first letter of every word in a phrase treated the same way.",
"message": "Tags Upper Case",
"given": "$.tags.*",
"severity": "info",
"view_sort": "JA",
"tags": ["APIs.json","Tags"],
"rules": null
},{
"slug": "apis-json-url-info",
"name": "APIs.json Url Info",
"icon": "link",
"description": "The top-level URL in an APIs.json file contains a fully qualified link to where the APIs.json file is published. This URL serves as a reference for the API collection and can also be validated. When an APIs.json file includes URLs to various properties, it can be verified against the top-level domain, ensuring the creation of an authoritative APIs.json artifact.",
"message": "There is a URL.",
"given": "$",
"severity": "info",
"view_sort": "I",
"tags": ["APIs.json","Metadata"],
"rules": null
},{
"slug": "asyncapi-channel-parameters-examples-warn",
"name": "AsyncAPI Channel Parameters Examples",
"icon": "message-square",
"description": "AsyncAPI channel parameters should include examples to support mocking, testing, and documentation. Examples help consumers understand expected parameter values for channel subscriptions.",
"message": "AsyncAPI channel parameters SHOULD include examples.",
"given": "$.channels[*].parameters.*",
"severity": "warn",
"view_sort": "B",
"tags": ["AsyncAPI","Channels","Parameters","Examples","Mocking"],
"rules": null
},{
"slug": "asyncapi-message-examples-warn",
"name": "AsyncAPI Message Examples",
"icon": "message-square",
"description": "AsyncAPI messages should include examples to support event-driven API mocking, testing, and documentation. Examples help consumers understand message payloads and enable tools to generate realistic mock events.",
"message": "AsyncAPI messages SHOULD include examples.",
"given": "$.channels[*].subscribe.message,$.channels[*].publish.message",
"severity": "warn",
"view_sort": "B",
"tags": ["AsyncAPI","Messages","Examples","Mocking"],
"rules": null
},{
"slug": "json-schema-2020-12-description-error",
"name": "JSON Schema Draft 2020-12 Description Error",
"icon": "",
"description": "Each JSON Schema object MUST include a description that explains, in plain language, the purpose and function of the object. This description should provide a clear overview of how the object is intended to be used within operations.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "F",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-description-info",
"name": "JSON Schema Draft 2020-12 Description Info",
"icon": "",
"description": "Each JSON Schema object MUST include a description that explains, in plain language, the purpose and function of the object. This description should provide a clear overview of how the object is intended to be used within operations.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "F",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-description-length-error",
"name": "JSON Schema Draft 2020-12 Description Length Error",
"icon": "",
"description": "The description for any JSON Schema object should be concise, ensuring it remains easy to read and understand for anyone using or interpreting it. This approach helps keep the schema self-contained while still providing enough context to inform its application wherever it is used.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "FA",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-description-length-info",
"name": "JSON Schema Draft 2020-12 Description Length Info",
"icon": "",
"description": "The description for any JSON Schema object should be concise, ensuring it remains easy to read and understand for anyone using or interpreting it. This approach helps keep the schema self-contained while still providing enough context to inform its application wherever it is used.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "FA",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-id-error",
"name": "JSON Schema Draft 2020-12 ID Error",
"icon": "",
"description": "Each JSON Schema object MUST have a unique identifier, represented as a URL pointing to its location. The $id property in JSON Schema is used to establish the source of truth for any object being defined and validated.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "A",
"tags": ["JSON Schema","Metadata","Identifiers"],
"rules": null
},{
"slug": "json-schema-2020-12-id-info",
"name": "JSON Schema Draft 2020-12 ID Info",
"icon": "",
"description": "Each JSON Schema object MUST have a unique identifier, represented as a URL pointing to its location. The $id property in JSON Schema is used to establish the source of truth for any object being defined and validated.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "A",
"tags": ["JSON Schema","Metadata","Identifiers"],
"rules": null
},{
"slug": "json-schema-2020-12-id-source-url-error",
"name": "JSON Schema Draft 2020-12 ID Source URL Error",
"icon": "",
"description": "The $id property in any JSON Schema MUST contain a valid URL pointing to a central registry, repository, or another authoritative source for the object. This URL ensures that the object's source is always accessible and can be used for proper validation.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "B",
"tags": ["JSON Schema","Metadata","Identifiers"],
"rules": null
},{
"slug": "json-schema-2020-12-id-source-url-info",
"name": "JSON Schema Draft 2020-12 ID Source URL Info",
"icon": "",
"description": "The $id property in any JSON Schema MUST contain a valid URL pointing to a central registry, repository, or another authoritative source for the object. This URL ensures that the object's source is always accessible and can be used for proper validation.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "B",
"tags": ["JSON Schema","Metadata","Identifiers"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-allowed-integer-format-error",
"name": "JSON Schema Draft 2020-12 Properties Allowed Integer Format Error",
"icon": "",
"description": "Schema integer properties should have a format property with int32 or int64 applied",
"message": "Type Format MUST Be int32 or int64.",
"given": "$.properties[?(@.type==&quot;integer&quot;)]",
"severity": "hint",
"view_sort": "G",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-allowed-number-format-error",
"name": "JSON Schema Draft 2020-12 Properties Allowed Number Format Error",
"icon": "",
"description": "Schema integer properties should have a format property with int32 or int64 applied",
"message": "Schema Properties MUST Have Format",
"given": "$.properties[?(@.type==&quot;number&quot;)]",
"severity": "hint",
"view_sort": "G",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-items-error",
"name": "JSON Schema Draft 2020-12 Properties Array Items Error",
"icon": "",
"description": "Schema properties that are of the type array must have an items property defined",
"message": "Schema Array Properties MUST Have Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "H",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-items-info",
"name": "JSON Schema Draft 2020-12 Properties Array Items Info",
"icon": "",
"description": "Schema properties that are of the type array must have an items property defined",
"message": "Schema Array Properties Has Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "H",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-maxitems-error",
"name": "JSON Schema Draft 2020-12 Properties Array Maxitems Error",
"icon": "",
"description": "Schema properties that are of the type array should have a max items property defined",
"message": "Schema Array Properties MUST Have Max Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "HB",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-maxitems-info",
"name": "JSON Schema Draft 2020-12 Properties Array Maxitems Info",
"icon": "",
"description": "Schema properties that are of the type array should have a max items property defined",
"message": "Schema Array Properties Have Max Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "HB",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-minitems-error",
"name": "JSON Schema Draft 2020-12 Properties Array Minitems Error",
"icon": "",
"description": "Schema properties that are of the type array should have a min items property defined",
"message": "Schema Array Properties MUST Have Min Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "HA",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-array-minitems-info",
"name": "JSON Schema Draft 2020-12 Properties Array Minitems Info",
"icon": "",
"description": "Schema properties that are of the type array should have a min items property defined",
"message": "Schema Array Properties Have Min Items",
"given": "$.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "HA",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-define-number-maximum-error",
"name": "JSON Schema Draft 2020-12 Properties Define Number Maximum Error",
"icon": "",
"description": "Schema properties that are of the type number should have a maximum property defined",
"message": "Schema Number Properties MUST Have Maximum",
"given": "$.properties[?(@.type==&quot;number&quot;)]",
"severity": "error",
"view_sort": "FA",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-define-number-minimum-error",
"name": "JSON Schema Draft 2020-12 Properties Define Number Minimum Error",
"icon": "",
"description": "Schema properties that are of the type number should have a minimum property defined",
"message": "Schema Number Properties MUST Have Minimum",
"given": "$.properties[?(@.type==&quot;number&quot;)]",
"severity": "error",
"view_sort": "FA",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-descriptions-error",
"name": "JSON Schema Draft 2020-12 Properties Descriptions Error",
"icon": "",
"description": "Schema properties should have descriptions that provide a narrative of the property contains, and how it can be used",
"message": "Schema Properties MUST Have Description",
"given": "$.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "C",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-descriptions-info",
"name": "JSON Schema Draft 2020-12 Properties Descriptions Info",
"icon": "",
"description": "Schema properties should have descriptions that provide a narrative of the property contains, and how it can be used",
"message": "Schema Properties Have Description",
"given": "$.properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "C",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-descriptions-length-error",
"name": "JSON Schema Draft 2020-12 Properties Descriptions Length Error",
"icon": "",
"description": "Schema property descriptions should have a length limit applied, applying constraints to writing descriptions, and keeping consistent across APIs",
"message": "Schema Properties Description MUST Have 250 Characters",
"given": "$.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "CA",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-enum-casing-error",
"name": "JSON Schema Draft 2020-12 Properties Enum Casing Error",
"icon": "",
"description": "Schema property enumerators are consistent casing, keeping all entries upper snake case, and consistent across all APIs",
"message": "Schema Property Enum MUST Be Upper Snake Case",
"given": "$.properties.*.enum.*",
"severity": "error",
"view_sort": "J",
"tags": ["JSON Schema","Schema","Properties","Enumerators"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-enum-casing-info",
"name": "JSON Schema Draft 2020-12 Properties Enum Casing Info",
"icon": "",
"description": "Schema property enumerators are consistent casing, keeping all entries upper snake case, and consistent across all APIs",
"message": "Schema Property Enum Are Upper Snake Case",
"given": "$.properties.*.enum.*",
"severity": "error",
"view_sort": "J",
"tags": ["JSON Schema","Schema","Properties","Enumerators"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-enum-info",
"name": "JSON Schema Draft 2020-12 Properties Enum Info",
"icon": "",
"description": "Schema property has enumerators, providing consistent values chosen by consumers when making requests",
"message": "Schema Property Have Enum",
"given": "$.properties.*",
"severity": "info",
"view_sort": "I",
"tags": ["JSON Schema","Schema","Properties","Enumerators"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-error",
"name": "JSON Schema Draft 2020-12 Properties Error",
"icon": "",
"description": "Schema has properties, providing more detail regarding the structure of each schema being applied as part of a request or a response",
"message": "Schema MUST Have Properties",
"given": "$[?(@.type==&quot;object&quot;)]",
"severity": "error",
"view_sort": "A",
"tags": ["JSON Schema","Schema","Properties"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-info",
"name": "JSON Schema Draft 2020-12 Properties Info",
"icon": "",
"description": "Schema has properties, providing more detail regarding the structure of each schema being applied as part of a request or a response",
"message": "Schema Have Properties",
"given": "$[?(@.type==&quot;object&quot;)]",
"severity": "info",
"view_sort": "A",
"tags": ["JSON Schema","Schema","Properties"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-names-camel-case-error",
"name": "JSON Schema Draft 2020-12 Properties Names Camel Case Error",
"icon": "",
"description": "Schema property names are camel case, providing consistent casing across all the schema properties used by APIs",
"message": "Schema Property Names MUST Be camelCase.",
"given": "$properties",
"severity": "error",
"view_sort": "B",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-names-camel-case-info",
"name": "JSON Schema Draft 2020-12 Properties Names Camel Case Info",
"icon": "",
"description": "Schema property names are camel case, providing consistent casing across all the schema properties used by APIs",
"message": "Schema Property Names Are camelCase.",
"given": "$properties",
"severity": "info",
"view_sort": "B",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-names-length-error",
"name": "JSON Schema Draft 2020-12 Properties Names Length Error",
"icon": "",
"description": "Schema property names have a length restriction applied, keeping names consistent, and avoiding being too long",
"message": "Schema Properties Name Length",
"given": "$properties",
"severity": "error",
"view_sort": "BA",
"tags": ["JSON Schema","Schema","Properties","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-string-maxlength-error",
"name": "JSON Schema Draft 2020-12 Properties String Maxlength Error",
"icon": "",
"description": "Schema properties that are of the string type have the max length applied defining the shape of the property",
"message": "Schema String Properties MUST Have Maximum Length",
"given": "$properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "F",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-string-maxlength-info",
"name": "JSON Schema Draft 2020-12 Properties String Maxlength Info",
"icon": "",
"description": "Schema properties that are of the string type have the max length applied defining the shape of the property",
"message": "Schema String Properties Has Maximum Length",
"given": "$properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "F",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-string-minlength-error",
"name": "JSON Schema Draft 2020-12 Properties String Minlength Error",
"icon": "",
"description": "Schema properties that are of the string type have the min length applied defining the shape of the property",
"message": "Schema String Properties MUST Have Minimum Length",
"given": "$properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "E",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-properties-string-minlength-info",
"name": "JSON Schema Draft 2020-12 Properties String Minlength Info",
"icon": "",
"description": "Schema properties that are of the string type have the min length applied defining the shape of the property",
"message": "Schema String Properties Has Minimum Length",
"given": "$properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "E",
"tags": ["JSON Schema","Schema","Properties","Types"],
"rules": null
},{
"slug": "json-schema-2020-12-required-error",
"name": "JSON Schema Draft 2020-12 Required Error",
"icon": "",
"description": "All JSON Schema objects should explicitly define their properties and include at least one required property. Defining required properties enhances the accuracy and reliability of validation for each object.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "H",
"tags": ["JSON Schema","Metadata","Required"],
"rules": null
},{
"slug": "json-schema-2020-12-required-info",
"name": "JSON Schema Draft 2020-12 Required Info",
"icon": "",
"description": "All JSON Schema objects should explicitly define their properties and include at least one required property. Defining required properties enhances the accuracy and reliability of validation for each object.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "H",
"tags": ["JSON Schema","Metadata","Required"],
"rules": null
},{
"slug": "json-schema-2020-12-schema-draft-error",
"name": "JSON Schema Draft 2020-12 Schema Draft Error",
"icon": "",
"description": "The $schema property in a JSON Schema MUST always reference the latest draft of the specification to ensure consistent validation across all objects. Using the most up-to-date version of the specification helps maintain stability and reliability in the use of objects within any API.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "D",
"tags": ["JSON Schema","Metadata","Changes"],
"rules": null
},{
"slug": "json-schema-2020-12-schema-draft-info",
"name": "JSON Schema Draft 2020-12 Schema Draft Info",
"icon": "",
"description": "The $schema property in a JSON Schema MUST always reference the latest draft of the specification to ensure consistent validation across all objects. Using the most up-to-date version of the specification helps maintain stability and reliability in the use of objects within any API.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "D",
"tags": ["JSON Schema","Metadata","Changes"],
"rules": null
},{
"slug": "json-schema-2020-12-schema-error",
"name": "JSON Schema Draft 2020-12 Schema Error",
"icon": "",
"description": "JSON Schema objects should always include the $schema property to explicitly indicate which version of the specification is being used. This property is essential for tooling and should consistently reference the latest version to ensure compatibility and up-to-date functionality.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "C",
"tags": ["JSON Schema","Metadata","Changes"],
"rules": null
},{
"slug": "json-schema-2020-12-schema-info",
"name": "JSON Schema Draft 2020-12 Schema Info",
"icon": "",
"description": "JSON Schema objects should always include the $schema property to explicitly indicate which version of the specification is being used. This property is essential for tooling and should consistently reference the latest version to ensure compatibility and up-to-date functionality.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "C",
"tags": ["JSON Schema","Metadata","Changes"],
"rules": null
},{
"slug": "json-schema-2020-12-title-error",
"name": "JSON Schema Draft 2020-12 Title Error",
"icon": "",
"description": "JSON Schema objects MUST include a title property that describes the object in plain language while reflecting the object's file name. The title should convey the object's content and purpose, providing clarity on how it is intended to be used.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "E",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-title-info",
"name": "JSON Schema Draft 2020-12 Title Info",
"icon": "",
"description": "JSON Schema objects MUST include a title property that describes the object in plain language while reflecting the object's file name. The title should convey the object's content and purpose, providing clarity on how it is intended to be used.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "E",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-title-length-error",
"name": "JSON Schema Draft 2020-12 Title Length Error",
"icon": "",
"description": "The title of JSON Schema objects should be concise yet accurately describe the object's purpose. Keeping the title short ensures clarity and minimizes downstream impact on other items using the object.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "EA",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-title-length-error",
"name": "JSON Schema Draft 2020-12 Title Length info",
"icon": "",
"description": "The title of JSON Schema objects should be concise yet accurately describe the object's purpose. Keeping the title short ensures clarity and minimizes downstream impact on other items using the object.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "EA",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-title-pascal-case-error",
"name": "JSON Schema Draft 2020-12 Title Pascal Case Error",
"icon": "",
"description": "The name of a JSON Schema object should always be in PascalCase to ensure readability and consistency across APIs. Using PascalCase helps maintain uniformity and aligns the object's name with its plain-language title.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "EB",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-title-pascal-case-info",
"name": "JSON Schema Draft 2020-12 Title Pascal Case Info",
"icon": "",
"description": "The name of a JSON Schema object should always be in PascalCase to ensure readability and consistency across APIs. Using PascalCase helps maintain uniformity and aligns the object's name with its plain-language title.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "EB",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-type-error",
"name": "JSON Schema Draft 2020-12 Type Error",
"icon": "",
"description": "JSON Schema objects should explicitly define their type, ensuring clarity about each object's structure. This allows tools utilizing the schema to accurately validate the object wherever it is applied.",
"message": "",
"given": "",
"severity": "error",
"view_sort": "G",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "json-schema-2020-12-type-info",
"name": "JSON Schema Draft 2020-12 Type Info",
"icon": "",
"description": "JSON Schema objects should explicitly define their type, ensuring clarity about each object's structure. This allows tools utilizing the schema to accurately validate the object wherever it is applied.",
"message": "",
"given": "",
"severity": "info",
"view_sort": "G",
"tags": ["JSON Schema","Metadata"],
"rules": null
},{
"slug": "openapi-components-examples-error",
"name": "OpenAPI Components Examples Error",
"icon": "",
"description": "Utilizing an example object in the centralized OpenAPI components library helps make examples reusable across API requests and responses",
"message": "Components MUST Have a Examples Property",
"given": "$.components",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-examples-info",
"name": "OpenAPI Components Examples Info",
"icon": "",
"description": "Utilizing an example object in the centralized OpenAPI components library helps make examples reusable across API requests and responses",
"message": "Components Have a Examples Property",
"given": "$.components",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-headers-error",
"name": "OpenAPI Components Headers Error",
"icon": "",
"description": "Utilizing the headers object in the centralized OpenAPI components library helps make headers reusable across API requests and responses",
"message": "Components MUST Have a Headers Property",
"given": "$.components",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-headers-info",
"name": "OpenAPI Components Headers Info",
"icon": "",
"description": "Utilizing the headers object in the centralized OpenAPI components library helps make headers reusable across API requests and responses",
"message": "Components Have a Headers Property",
"given": "$.components",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-headers-rate-limit-error",
"name": "OpenAPI Components Headers Rate Limit Error",
"icon": "",
"description": "Utilizing centralized headers rate limits allows you to reuse headers across all API requests and responses, enabling a more organized approach to handling the transport and rate limits applied consistently across all APIs.",
"message": "Components MUST Have Rate Limit Headers",
"given": "$.components.headers",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Headers"],
"rules": null
},{
"slug": "openapi-components-headers-rate-limit-info",
"name": "OpenAPI Components Headers Rate Limit Info",
"icon": "",
"description": "Utilizing centralized headers rate limits allows you to reuse headers across all API requests and responses, enabling a more organized approach to handling the transport and rate limits applied consistently across all APIs.",
"message": "Components Have Rate Limit Headers",
"given": "$.components.headers",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Headers"],
"rules": null
},{
"slug": "openapi-components-headers-retry-after-error",
"name": "OpenAPI Components Headers Retry After Error",
"icon": "",
"description": "Utilizing centralized retry after headers allows you to reuse headers across all API requests and responses, enabling a more organized approach to handling the transport and rate limiting applied consistently across all APIs.",
"message": "Components MUST have a retry after headers.",
"given": "$.components.headers",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Headers"],
"rules": null
},{
"slug": "openapi-components-headers-retry-after-info",
"name": "OpenAPI Components Headers Retry After Info",
"icon": "",
"description": "Utilizing centralized retry after headers allows you to reuse headers across all API requests and responses, enabling a more organized approach to handling the transport and rate limiting applied consistently across all APIs.",
"message": "Components has a retry after header.",
"given": "$.components.headers",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Headers"],
"rules": null
},{
"slug": "openapi-components-parameters-casing-camel-error",
"name": "OpenAPI Components Parameters Casing Camel Error",
"icon": "",
"description": "Providing parameters with consistent naming helps make it easier for API consumers to understand how they are able to configure their API requests",
"message": "Parameters Names MUST Be Camel Case",
"given": "$.components.parameters.*",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-casing-camel-info",
"name": "OpenAPI Components Parameters Casing Camel Info",
"icon": "",
"description": "Providing parameters with consistent naming helps make it easier for API consumers to understand how they are able to configure their API requests",
"message": "Parameters Names Are Camel Case",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-description-error",
"name": "OpenAPI Components Parameters Description Error",
"icon": "",
"description": "Having a parameters description provides more depth to what a parameter does and will be displayed via documentation, and other tooling used across the API lifecycle",
"message": "Parameters MUST Have a Description",
"given": "$.paths.*.*.parameters.*",
"severity": "",
"view_sort": "E",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-description-info",
"name": "OpenAPI Components Parameters Description Info",
"icon": "",
"description": "Having a parameters description provides more depth to what a parameter does and will be displayed via documentation, and other tooling used across the API lifecycle",
"message": "Parameters Have a Description",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-description-length-error",
"name": "OpenAPI Components Parameters Description Length Error",
"icon": "",
"description": "Limiting the length of parameters description forces us to be more concise in how we describe each parameter, while keeping our documentation and other ways descriptions show up in discovery and portals more consistent",
"message": "Parameters Description MUST Be Less Than 500 Characters",
"given": "$.components.parameters.*",
"severity": "",
"view_sort": "EA",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-enum-casing-error",
"name": "OpenAPI Components Parameters Enum Casing Error",
"icon": "",
"description": "Keeping parameters enumerator casing consistent across APIs helps reduce confusion by consumers, and can keep aligned with services and applications putting an API to work",
"message": "Parameters Enums MUST Must Be Upper Snake Case",
"given": "$.components.parameters.*.enum.*",
"severity": "error",
"view_sort": "NA",
"tags": ["OpenAPI","Components","Parameters","Enumerators","Type","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-enum-casing-info",
"name": "OpenAPI Components Parameters Enum Casing Info",
"icon": "",
"description": "Keeping parameters enumerator casing consistent across APIs helps reduce confusion by consumers, and can keep aligned with services and applications putting an API to work",
"message": "Parameters Enums Are Upper Snake Case",
"given": "$.components.parameters.*.enum.*",
"severity": "info",
"view_sort": "NA",
"tags": ["OpenAPI","Components","Parameters","Enumerators","Type","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-enum-info",
"name": "OpenAPI Components Parameters Enum Info",
"icon": "",
"description": "Providing enums for your parameters helps reduce errors and keeps the inputs for your API requests more consistent for consumers",
"message": "Parameters Have Enum",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "N",
"tags": ["OpenAPI","Components","Parameters","Enumerators","Type"],
"rules": null
},{
"slug": "openapi-components-parameters-error",
"name": "OpenAPI Components Parameters Error",
"icon": "",
"description": "Having a components parameters object allows all parameters used across an API to be centralized, allowing for reuse and easier governance of the parameters used to configure API requests",
"message": "Components MUST Have a Parameters Property",
"given": "$.components",
"severity": "error",
"view_sort": "AB",
"tags": ["OpenAPI","Components","Parameters"],
"rules": null
},{
"slug": "openapi-components-parameters-example-error",
"name": "OpenAPI Components Parameters Example Error",
"icon": "",
"description": "Parameters must always possess a example to help define the format and shape of the parameter, setting expections with consumers about what should be passed in",
"message": "Parameters MUST Have Example",
"given": "$.components.parameters.*",
"severity": "",
"view_sort": "F",
"tags": ["OpenAPI","Components","Parameters","Example"],
"rules": null
},{
"slug": "openapi-components-parameters-example-info",
"name": "OpenAPI Components Parameters Example Info",
"icon": "",
"description": "Parameters must always possess a example to help define the format and shape of the parameter, setting expections with consumers about what should be passed in",
"message": "Parameters Have Example",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Components","Parameters","Example"],
"rules": null
},{
"slug": "openapi-components-parameters-in-error",
"name": "OpenAPI Components Parameters In Error",
"icon": "",
"description": "Providing an in property for parameters gets explicit about whether a parameter is in the path, query, or a header, making it clear to consumers where they can configure their request",
"message": "Parameters In Property MUST Be Set",
"given": "$.components.parameters.*",
"severity": "",
"view_sort": "C",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-in-info",
"name": "OpenAPI Components Parameters In Info",
"icon": "",
"description": "Providing an in property for parameters gets explicit about whether a parameter is in the path, query, or a header, making it clear to consumers where they can configure their request",
"message": "Parameters In Property Is Set",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-info",
"name": "OpenAPI Components Parameters Info",
"icon": "",
"description": "Having a components parameters object allows all parameters used across an API to be centralized, allowing for reuse and easier governance of the parameters used to configure API requests",
"message": "Components Have a Parameters Property",
"given": "$.components",
"severity": "info",
"view_sort": "AB",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-name-error",
"name": "OpenAPI Components Parameters Name Error",
"icon": "",
"description": "Providing a simple, intuitive, and consistent names for your parameters helps make it easier for API consumers to understand how they are able to configure their API requests",
"message": "Parameters MUST Have a Name",
"given": "$.components.parameters.*",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-name-info",
"name": "OpenAPI Components Parameters Name Info",
"icon": "",
"description": "Providing a simple, intuitive, and consistent names for your parameters helps make it easier for API consumers to understand how they are able to configure their API requests",
"message": "Parameters Have a Name",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-name-length-error",
"name": "OpenAPI Components Parameters Name Length Error",
"icon": "",
"description": "Providing short and concise names for your parameters helps make it easier for API consumers to understand how they are able to configure their API requests",
"message": "Parameters Name Length MUST Be Less Than 25 Characters",
"given": "$.components.parameters[?(@.in==&#39;path&#39;)].name",
"severity": "",
"view_sort": "BA",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-required-error",
"name": "OpenAPI Components Parameters Required Error",
"icon": "",
"description": "Providrequiredg an required property for parameters gets explicit about whether a parameter is required the path, query, or a header, making it clear to consumers where they can configure their request",
"message": "Parameters Required Property MUST Be Set",
"given": "$.components.parameters.*",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-required-info",
"name": "OpenAPI Components Parameters Required Info",
"icon": "",
"description": "Providrequiredg an required property for parameters gets explicit about whether a parameter is required the path, query, or a header, makrequiredg it clear to consumers where they can configure their request.",
"message": "Parameters Required Property Is Set",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Components","Parameters","Metadata","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-error",
"name": "OpenAPI Components Parameters Schema Error",
"icon": "",
"description": "Parameters must always possess a schema to help define the format and shape of the parameter, setting expections with consumers about what should be passed in",
"message": "Parameters MUST Have Schema",
"given": "$.components.parameters.*",
"severity": "",
"view_sort": "F",
"tags": ["OpenAPI","Components","Parameters","Schema","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-info",
"name": "OpenAPI Components Parameters Schema Info",
"icon": "",
"description": "Parameters must always possess a schema to help define the format and shape of the parameter, setting expections with consumers about what should be passed in",
"message": "Parameters Have Schema",
"given": "$.components.parameters.*",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Components","Parameters","Schema","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-items-array-error",
"name": "OpenAPI Components Parameters Schema Items Array Error",
"icon": "",
"description": "Parameters that are of an array type should always have the items defined, being explicit about what is continued as part of the array",
"message": "Parameter Schema Array MUST Have Items",
"given": "$.components.parameters.schema[?(@.type==&#39;array&#39;)]",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-items-array-info",
"name": "OpenAPI Components Parameters Schema Items Array Info",
"icon": "",
"description": "Parameters that are of an array type should always have the items defined, being explicit about what is continued as part of the array",
"message": "Parameter Schema Array MUST Has Items",
"given": "$.components.parameters.schema[?(@.type==&#39;array&#39;)]",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-ref-error",
"name": "OpenAPI Components Parameters Schema Ref Error",
"icon": "",
"description": "Parameters must always use a schema reference that utilizes reusable schema that are defined as part of a centralized schema components library",
"message": "Parameters MUST Use Schema Reference",
"given": "$.components.parameters.*.schema",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Components","Parameters","Schema","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-ref-info",
"name": "OpenAPI Components Parameters Schema Ref Info",
"icon": "",
"description": "Parameters must always use a schema reference that utilizes reusable schema that are defined as part of a centralized schema components library",
"message": "Parameters Use Schema Reference",
"given": "$.components.parameters.*.schema",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Components","Parameters","Schema","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-error",
"name": "OpenAPI Components Parameters Schema Type Error",
"icon": "",
"description": "Parameters must always have their schema type defined, being precise about what type of data can be inputted and used to configure an API request",
"message": "Parameter Schema Type",
"given": "$.components.parameters.*.schema",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-info",
"name": "OpenAPI Components Parameters Schema Type Info",
"icon": "",
"description": "Parameters must always have their schema type defined, being precise about what type of data can be inputted and used to configure an API request",
"message": "Parameter Schema Type",
"given": "$.components.parameters.*.schema",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-integer-maximum-info",
"name": "OpenAPI Components Parameters Schema Type Integer Maximum Info",
"icon": "",
"description": "Parameters that are of the integer schema type must have their maximum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type Integer Maximum",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;integer&#39;)]&quot;]",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-integer-maximum-warn",
"name": "OpenAPI Components Parameters Schema Type Integer Maximum Warn",
"icon": "",
"description": "Parameters that are of the integer schema type must have their maximum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type Integer Maximum",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;integer&#39;)]&quot;]",
"severity": "warn",
"view_sort": "L",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-integer-minimum-info",
"name": "OpenAPI Components Parameters Schema Type Integer Minimum Info",
"icon": "",
"description": "Parameters that are of the integer schema type must have their minimum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type Integer Minimum",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;integer&#39;)]&quot;]",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-integer-minimum-warn",
"name": "OpenAPI Components Parameters Schema Type Integer Minimum Warn",
"icon": "",
"description": "Parameters that are of the integer schema type must have their minimum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type Integer Minimum",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;integer&#39;)]&quot;]",
"severity": "warn",
"view_sort": "K",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-maxlength-info",
"name": "OpenAPI Components Parameters Schema Type String Maxlength Info",
"icon": "",
"description": "Parameters that are of the type string schema type must have their maximum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String MaxLength",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-maxlength-warn",
"name": "OpenAPI Components Parameters Schema Type String Maxlength Warn",
"icon": "",
"description": "Parameters that are of the string schema type must have their maximum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String MaxLength",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "warn",
"view_sort": "I",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-minlength-info",
"name": "OpenAPI Components Parameters Schema Type String Minlength Info",
"icon": "",
"description": "Parameters that are of the string schema type must have their minimum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String MinLength",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-minlength-warn",
"name": "OpenAPI Components Parameters Schema Type String Minlength Warn",
"icon": "",
"description": "Parameters that are of the string schema type must have their minimum value set, defining the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String MinLength",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "warn",
"view_sort": "H",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-pattern-info",
"name": "OpenAPI Components Parameters Schema Type String Pattern Info",
"icon": "",
"description": "Parameters that are of the string schema type must have a pattern set, using a regex to define the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String Pattern",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-parameters-schema-type-string-pattern-warn",
"name": "OpenAPI Components Parameters Schema Type String Pattern Warn",
"icon": "",
"description": "Parameters that are of the string schema type must have a pattern set, using a regex to define the shape of parameter data passed in with a request",
"message": "Parameter Schema Type String Pattern",
"given": "[&quot;$.components.parameters.[?(@.type==&#39;string&#39;)]&quot;]",
"severity": "warn",
"view_sort": "J",
"tags": ["OpenAPI","Components","Parameters","Schema","Type","Default","Security"],
"rules": null
},{
"slug": "openapi-components-responses-bad-request-error",
"name": "OpenAPI Components Responses Bad Request Error",
"icon": "",
"description": "Having a bad request responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a bad request response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-bad-request-info",
"name": "OpenAPI Components Responses Bad Request Info",
"icon": "",
"description": "Having a bad request responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a bad request response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-conflict-error",
"name": "OpenAPI Components Responses Conflict Error",
"icon": "",
"description": "Having a conflict responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a conflict response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-conflict-info",
"name": "OpenAPI Components Responses Conflict Info",
"icon": "",
"description": "Having a conflict responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a conflict response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-error",
"name": "OpenAPI Components Responses Error",
"icon": "",
"description": "Utilizing the responses object in the centralized OpenAPI components library helps make responses reusable across API requests",
"message": "Components MUST have a responses property.",
"given": "$.components",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-responses-forbidden-error",
"name": "OpenAPI Components Responses Forbidden Error",
"icon": "",
"description": "Having a forbidden responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a forbidden response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-forbidden-info",
"name": "OpenAPI Components Responses Forbidden Info",
"icon": "",
"description": "Having a forbidden responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a forbidden response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-info",
"name": "OpenAPI Components Responses Info",
"icon": "",
"description": "Utilizing the responses object in the centralized OpenAPI components library helps make responses reusable across API requests",
"message": "Components has a responses property.",
"given": "$.components",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components"],
"rules": null
},{
"slug": "openapi-components-responses-internal-server-error-error",
"name": "OpenAPI Components Responses Internal Server Error Error",
"icon": "",
"description": "Having a internal server error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a internal server error response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-internal-server-error-info",
"name": "OpenAPI Components Responses Internal Server Error Info",
"icon": "",
"description": "Having a internal server error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a internal server error response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-not-found-error",
"name": "OpenAPI Components Responses Not Found Error",
"icon": "",
"description": "Having a not found error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a not found response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-not-found-info",
"name": "OpenAPI Components Responses Not Found Info",
"icon": "",
"description": "Having a not found error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a not found response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-too-many-requests-error",
"name": "OpenAPI Components Responses Too Many Requests Error",
"icon": "",
"description": "Having a too many requests error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a too many requests response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-too-many-requests-info",
"name": "OpenAPI Components Responses Too Many Requests Info",
"icon": "",
"description": "Having a too many requests error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a too many requests response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-unauthorized-error",
"name": "OpenAPI Components Responses Unauthorized Error",
"icon": "",
"description": "Having a unauthorized error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components MUST have a unauthorized response.",
"given": "$.components.responses",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-responses-unauthorized-info",
"name": "OpenAPI Components Responses Unauthorized Info",
"icon": "",
"description": "Having a unauthorized error responses in the centralized OpenAPI components library helps make error responses reusable across API requests",
"message": "Components has a unauthorized response.",
"given": "$.components.responses",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Responses"],
"rules": null
},{
"slug": "openapi-components-schemas-error",
"name": "OpenAPI Components Schemas Error",
"icon": "",
"description": "Utilizing the schema object in the centralized OpenAPI components library helps make schema reusable across API requests and responses",
"message": "Components MUST Have a Schema Property",
"given": "$.components",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Components","Default"],
"rules": null
},{
"slug": "openapi-components-schemas-info",
"name": "OpenAPI Components Schemas Info",
"icon": "",
"description": "Utilizing the schema object in the centralized OpenAPI components library helps make schema reusable across API requests and responses",
"message": "Components Have a Schema Property",
"given": "$.components",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Components","Default"],
"rules": null
},{
"slug": "openapi-external-docs-error",
"name": "OpenAPI External Docs Error",
"icon": "",
"description": "Having an external documentation link present in the OpenAPI for an API, makes it easy for API producers or consumers to find their way to the rest of the operations and resources available around an API",
"message": "OpenAPI MUST Have External Documentation",
"given": "$",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","External Documentation","Default"],
"rules": null
},{
"slug": "openapi-external-docs-info",
"name": "OpenAPI External Docs Info",
"icon": "",
"description": "Having an external documentation link present in the OpenAPI for an API, makes it easy for API producers or consumers to find their way to the rest of the operations and resources available around an API",
"message": "OpenAPI Has External Documentation",
"given": "$",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","External Documentation","Default"],
"rules": null
},{
"slug": "openapi-headers-hyphenated-pascal-case-error",
"name": "OpenAPI Headers Hyphenated Pascal Case",
"icon": "type",
"description": "HTTP headers should follow Hyphenated-Pascal-Case naming convention for consistency and readability, such as Content-Type, X-Request-Id, or Accept-Language.",
"message": "HTTP Headers MUST use Hyphenated-Pascal-Case.",
"given": "$..headers.*~",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Headers","Casing","Naming"],
"rules": null
},{
"slug": "openapi-info-contact-email-error",
"name": "OpenAPI Info Contact Email Error",
"icon": "",
"description": "Having a contact email address associated with the technical contract ensures that anyone who comes across the API has someone to email and get more information",
"message": "Info MUST Have Contact Email",
"given": "$.info.contact",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-email-info",
"name": "OpenAPI Info Contact Email Info",
"icon": "",
"description": "Having a contact email address associated with the technical contract ensures that anyone who comes across the API has someone to email and get more information",
"message": "Info Has Contact Email",
"given": "$.info.contact",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-error",
"name": "OpenAPI Info Contact Error",
"icon": "",
"description": "Having a contact object associated with the technical contract ensures that anyone who comes across the API has someone to contact and get more information",
"message": "Info MUST Have Contact Object",
"given": "$.info",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-info",
"name": "OpenAPI Info Contact Info",
"icon": "",
"description": "Having a contact object associated with the technical contract ensures that anyone who comes across the API has someone to contact and get more information",
"message": "Info Has Contact Object",
"given": "$.info",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-name-error",
"name": "OpenAPI Info Contact Name Error",
"icon": "",
"description": "Having a contact name associated with the technical contract ensures that anyone who comes across the API knows who to contact",
"message": "Info MUST Have Contact Name",
"given": "$.info.contact",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-name-info",
"name": "OpenAPI Info Contact Name Info",
"icon": "",
"description": "Having a contact name associated with the technical contract ensures that anyone who comes across the API knows who to contact",
"message": "Info Has Contact Name",
"given": "$.info.contact",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-url-error",
"name": "OpenAPI Info Contact Url Error",
"icon": "",
"description": "Having a contact url associated with the technical contract ensures that anyone who comes across the API knows where to go to contact someone",
"message": "Info MUST Have Contact URL",
"given": "$.info.contact",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-contact-url-info",
"name": "OpenAPI Info Contact Url Info",
"icon": "",
"description": "Having a contact url associated with the technical contract ensures that anyone who comes across the API knows where to go to contact someone",
"message": "Info Has Contact URL",
"given": "$.info.contact",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Metadata","Contacts","Default"],
"rules": null
},{
"slug": "openapi-info-description-error",
"name": "OpenAPI Info Description Error",
"icon": "",
"description": "Having a detailed description as part of the OpenAPI info object helps describe what a collection of paths and operations does for consumers, providing a short, concise, and relevant couple of paragraphs about the value that is represented as the OpenAPI",
"message": "Info MUST Have Description",
"given": "$.info",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-eval-error",
"name": "OpenAPI Info Description Eval Tag Error",
"icon": "",
"description": "Eval functions MUST not be included in the description of an API, keeping descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible.",
"message": "Info MUST Have Description",
"given": "$.info",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-eval-info",
"name": "OpenAPI Info Description Eval Tag Info",
"icon": "",
"description": "Eval functions MUST not be included in the description of an API, keeping descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible.",
"message": "Info MUST Have Description",
"given": "$.info",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-info",
"name": "OpenAPI Info Description Info",
"icon": "",
"description": "Having a detailed description as part of the OpenAPI info object helps describe what a collection of paths and operations does for consumers, providing a short, concise, and relevant couple of paragraphs about the value that is represented as the OpenAPI",
"message": "Info Has Description",
"given": "$.info",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-length-error",
"name": "OpenAPI Info Description Length Error",
"icon": "",
"description": "Having a restriction on the length of the API description expressed as the OpenAPI info description helps provide constraints for consumers when adding a description, and keeps portals, landing pages, documentation, and discovery results more consistent",
"message": "Info description MUST be less than 500 characters.",
"given": "$.info",
"severity": "error",
"view_sort": "CA",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-script-error",
"name": "OpenAPI Info Description Script Tag Error",
"icon": "",
"description": "Script tags MUST not be included in the description of an API, keeping descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible.",
"message": "Info MUST Have Description",
"given": "$.info",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-description-script-info",
"name": "OpenAPI Info Description Script Tag Info",
"icon": "",
"description": "Script tags MUST not be included in the description of an API, keeping descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible.",
"message": "Info MUST Have Description",
"given": "$.info",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-error",
"name": "OpenAPI Info Error",
"icon": "",
"description": "Having an info object provides much of the metadata needed for the collection of APIs described in an OpenAPI",
"message": "Info Object MUST Exist",
"given": "$",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Default"],
"rules": null
},{
"slug": "openapi-info-info",
"name": "OpenAPI Info Info",
"icon": "",
"description": "Having an info object provides much of the metadata needed for the collection of APIs described in an OpenAPI",
"message": "Info Object Exists",
"given": "$",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Default"],
"rules": null
},{
"slug": "openapi-info-license-error",
"name": "OpenAPI Info License Error",
"icon": "",
"description": "Having a license associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info MUST Have License",
"given": "$.info",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-identifier-cc-by-nc-sa-error",
"name": "OpenAPI Info License Identifier Cc By Nc Sa Error",
"icon": "",
"description": "Having a Create Commons CC BY NC SA license associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info MUST Have CC-BY-NC-SA 4.0 License",
"given": "$.info.license",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-identifier-cc-by-nc-sa-info",
"name": "OpenAPI Info License Identifier Cc By Nc Sa Info",
"icon": "",
"description": "Having a Create Commons CC BY NC SA license associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info Has CC-BY-NC-SA 4.0 License",
"given": "$.info.license",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-identifier-error",
"name": "OpenAPI Info License Identifier Error",
"icon": "",
"description": "Having a license identifier associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info MUST Have License Identifier",
"given": "$.info.license",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-identifier-info",
"name": "OpenAPI Info License Identifier Info",
"icon": "",
"description": "Having a license identifier associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info Has License Identifier",
"given": "$.info.license",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-info",
"name": "OpenAPI Info License Info",
"icon": "",
"description": "Having a license associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info Has License",
"given": "$.info",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-name-error",
"name": "OpenAPI Info License Name Error",
"icon": "",
"description": "Having a license name associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info MUST Have License Name",
"given": "$.info.license",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-name-info",
"name": "OpenAPI Info License Name Info",
"icon": "",
"description": "Having a license name associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info License Name",
"given": "$.info.license",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-url-error",
"name": "OpenAPI Info License Url Error",
"icon": "",
"description": "Having a license url associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info MUST Have License URL",
"given": "$.info.license",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-license-url-info",
"name": "OpenAPI Info License Url Info",
"icon": "",
"description": "Having a license url associated with an OpenAPI using the info licensing property ensures that the legal aspects of licensing the API always travel with the technical contract for an API",
"message": "Info Has License URL",
"given": "$.info.license",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-terms-of-service-error",
"name": "OpenAPI Info Terms Of Service Error",
"icon": "",
"description": "Having a terms of service associated with an OpenAPI using the info terms of service property ensures that the legal aspects of legal side of the API always travel with the technical contract for an API",
"message": "Info MUST Have Terms of Service",
"given": "$.info",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-terms-of-service-info",
"name": "OpenAPI Info Terms Of Service Info",
"icon": "",
"description": "Having a terms of service associated with an OpenAPI using the info terms of service property ensures that the legal aspects of legal side of the API always travel with the technical contract for an API",
"message": "Info Has Terms of Service",
"given": "$.info",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Metadata","Legal"],
"rules": null
},{
"slug": "openapi-info-title-error",
"name": "OpenAPI Info Title Error",
"icon": "",
"description": "Having a intuitive and helpful title for your API using the OpenAPI info title is the first impression you will make on the consumers of your API",
"message": "Info MUST Have Title",
"given": "$.info",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-title-info",
"name": "OpenAPI Info Title Info",
"icon": "",
"description": "Having a intuitive and helpful title for your API using the OpenAPI info title is the first impression you will make on the consumers of your API",
"message": "Info Has Title",
"given": "$.info",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-title-length-error",
"name": "OpenAPI Info Title Length Error",
"icon": "",
"description": "Having a limitation on the length of the title for your API helps provide constraints for teams naming it, but also keep consistent with other APIs from across teams",
"message": "Info Title MUST Be Less Than 50 Characters",
"given": "$.info",
"severity": "error",
"view_sort": "BA",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-title-upper-case-error",
"name": "OpenAPI Info Title Upper Case Error",
"icon": "",
"description": "Having a consistent casing for the title for your API helps provide constraints for teams naming the API, but also keep consistent with other APIs from across teams",
"message": "Info Title Has First Characters Capitalized",
"given": "$.info.title",
"severity": "error",
"view_sort": "BB",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-title-upper-case-info",
"name": "OpenAPI Info Title Upper Case Info",
"icon": "",
"description": "Having a consistent casing for the title for your API helps provide constraints for teams naming the API, but also keep consistent with other APIs from across teams",
"message": "Info Title Has First Characters Capitalized",
"given": "$.info.title",
"severity": "info",
"view_sort": "BB",
"tags": ["OpenAPI","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-info-version-error",
"name": "OpenAPI Info Version Error",
"icon": "",
"description": "Publishing a version for your OpenAPI technical contract helps you communicate change with consumers using Semantic or date-based versioning published to the info version property",
"message": "Info MUST Have Version",
"given": "$.info",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Versions","Default"],
"rules": null
},{
"slug": "openapi-info-version-info",
"name": "OpenAPI Info Version Info",
"icon": "",
"description": "Publishing a version for your OpenAPI technical contract helps you communicate change with consumers using Semantic or date-based versioning published to the info version property",
"message": "Info Has Version",
"given": "$.info",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Metadata","Versions","Default"],
"rules": null
},{
"slug": "openapi-method-delete-error",
"name": "OpenAPI Method DELETE Error",
"icon": "",
"description": "DELETE HTTP methods should be available.",
"message": "DELETE Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","DELETE"],
"rules": null
},{
"slug": "openapi-method-delete-info",
"name": "OpenAPI Method DELETE Info",
"icon": "",
"description": "DELETE HTTP methods should be available.",
"message": "DELETE Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","DELETE"],
"rules": null
},{
"slug": "openapi-method-get-error",
"name": "OpenAPI Method GET Error",
"icon": "",
"description": "GET HTTP methods should be available.",
"message": "GET Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","GET"],
"rules": null
},{
"slug": "openapi-method-get-info",
"name": "OpenAPI Method GET Info",
"icon": "",
"description": "GET HTTP methods should be available.",
"message": "GET Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","GET"],
"rules": null
},{
"slug": "openapi-method-post-error",
"name": "OpenAPI Method POST Error",
"icon": "",
"description": "POST HTTP methods should be available.",
"message": "POST Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","POST"],
"rules": null
},{
"slug": "openapi-method-post-info",
"name": "OpenAPI Method POST Info",
"icon": "",
"description": "POST HTTP methods should be available.",
"message": "POST Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","POST"],
"rules": null
},{
"slug": "openapi-method-put-error",
"name": "OpenAPI Method PUT Error",
"icon": "",
"description": "PUT HTTP methods should be available.",
"message": "PUT Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","PUT"],
"rules": null
},{
"slug": "openapi-method-put-info",
"name": "OpenAPI Method PUT Info",
"icon": "",
"description": "PUT HTTP methods should be available.",
"message": "PUT Request Body",
"given": "$.paths.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","PUT"],
"rules": null
},{
"slug": "openapi-operation-security-definitions-error",
"name": "OpenAPI Operation Security Definitions Error",
"icon": "",
"description": "Each API operation should have a security definition referencing the central security scheme express for an OpenAPI",
"message": "Operations MUST Have a Security Definition",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Operations","Security","Default"],
"rules": null
},{
"slug": "openapi-operation-security-definitions-info",
"name": "OpenAPI Operation Security Definitions Info",
"icon": "",
"description": "Each API operation should have a security definition referencing the central security scheme express for an OpenAPI",
"message": "Operations MUST Have a Security Definition",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Operations","Security","Default"],
"rules": null
},{
"slug": "openapi-operation-security-definitions-keys-error",
"name": "OpenAPI Operation Security Definitions API Keys Error",
"icon": "",
"description": "Each API operation should have a security definition referencing the central security scheme express for an OpenAPI referencing apiKeys property.",
"message": "Operations MUST Have a Security Definition for API Keys",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Operations","Security","Default"],
"rules": null
},{
"slug": "openapi-operation-security-definitions-keys-info",
"name": "OpenAPI Operation Security Definitions API Keys Info",
"icon": "",
"description": "Each API operation should have a security definition referencing the central security scheme express for an OpenAPI referencing apiKeys property.",
"message": "Operations MUST Have a Security Definition for API Keys",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Operations","Security","Default"],
"rules": null
},{
"slug": "openapi-operations-description-error",
"name": "OpenAPI Operations Description Error",
"icon": "",
"description": "Having a paragraph or two description of each API operation helps API consumers understand what is possible with each API request",
"message": "Operation MUST Have Description",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-description-info",
"name": "OpenAPI Operations Description Info",
"icon": "",
"description": "Having a paragraph or two description of each API operation helps API consumers understand what is possible with each API request",
"message": "Operation Has Description",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-description-length-error",
"name": "OpenAPI Operations Description Length Error",
"icon": "",
"description": "Having a length limitation for each description of each API operation helps apply constraints to how you describe your APIs, while helping drive consistency across APIs when it comes to search, documentation, and other ways an API is made available.",
"message": "Operation Description MUST Be Less Than 250 Characters",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "",
"view_sort": "B",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-camel-case-error",
"name": "OpenAPI Operations Operation Ids Camel Case Error",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, and requiring them to have consistent casing reduces friction when generating SDKs and automating around APIs",
"message": "Operation Identifier MUST Be camelCase",
"given": "$.paths.*[get,post,patch,put,delete].operationId",
"severity": "error",
"view_sort": "CA",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-camel-case-info",
"name": "OpenAPI Operations Operation Ids Camel Case Info",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, and requiring them to have consistent casing reduces friction when generating SDKs and automating around APIs",
"message": "Operation Identifier Is camelCase",
"given": "$.paths.*[get,post,patch,put,delete].operationId",
"severity": "info",
"view_sort": "CA",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-characters-error",
"name": "OpenAPI Operations Operation Ids Special Characters Error",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, and requiring them to have consistent casing reduces friction when generating SDKs and automating around APIs",
"message": "Operation Identifier MUST Not Have Special Characters",
"given": "$.paths.*[get,post,patch,put,delete].operationId",
"severity": "error",
"view_sort": "CA",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-characters-info",
"name": "OpenAPI Operations Operation Ids Special Characters Info",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, and requiring them to have consistent casing reduces friction when generating SDKs and automating around APIs.",
"message": "Operation Identifier Does Not Have Special Characters",
"given": "$.paths.*[get,post,patch,put,delete].operationId",
"severity": "info",
"view_sort": "CA",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-error",
"name": "OpenAPI Operations Operation Ids Error",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, which then used for SDK generation and other automation",
"message": "Operation MUST Have Identifier",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-operation-ids-info",
"name": "OpenAPI Operations Operation Ids Info",
"icon": "",
"description": "Operation identifiers provide a unique way to identify each individual API, which then used for SDK generation and other automation",
"message": "Operation Has Identifier",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Operations","Metadata","Default"],
"rules": null
},{
"slug": "openapi-operations-post-no-retrieve-verbs-error",
"name": "OpenAPI Operations POST No Retrieve Verbs",
"icon": "edit",
"description": "POST operations should not use verbs like retrieve, fetch, get, or read in their summaries. If data retrieval is the goal, a GET method should be used instead to follow RESTful conventions.",
"message": "POST operation summaries MUST NOT use retrieve, fetch, get, or read verbs.",
"given": "$.paths[*].post.summary",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Operations","POST","REST","Design"],
"rules": null
},{
"slug": "openapi-operations-summary-error",
"name": "OpenAPI Operations Summary Error",
"icon": "",
"description": "Having short and intuitive summary for each API operation helps API consumers understand what is possible with each API request",
"message": "Operation MUST Have a Summary",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-summary-info",
"name": "OpenAPI Operations Summary Info",
"icon": "",
"description": "Having short and intuitive summary for each API operation helps API consumers understand what is possible with each API request",
"message": "Operation Has a Summary",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-summary-length-error",
"name": "OpenAPI Operations Summary Length Error",
"icon": "",
"description": "Apply length constraints to the operation summary helps keep them consistent for publishing in documentation",
"message": "Operation Summary MUST Be Less Than 50 Characters",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "",
"view_sort": "AB",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-summary-period-none-error",
"name": "OpenAPI Operations Summary Period Error",
"icon": "",
"description": "Operation summaries should not have a period, keeping the primary summary for each API as consistent as possible for publishing in documentation",
"message": "Operation MUST Not Have a Period.",
"given": "$.paths[*][*].summary",
"severity": "error",
"view_sort": "AC",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-summary-period-none-info",
"name": "OpenAPI Operations Summary Period Info",
"icon": "",
"description": "Operation summaries should not have a period, keeping the primary summary foreach API as consistent as possible for publishing in documentation.",
"message": "Operation Has a Period.",
"given": "$.paths[*][*].summary",
"severity": "info",
"view_sort": "AC",
"tags": ["OpenAPI","Operations","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-tags-error",
"name": "OpenAPI Operations Tags Error",
"icon": "",
"description": "Having tags applied to each API operations helps organize and group APIs in portals, documentation, search, and other ways in which APIs are made available",
"message": "Operations MUST Have Tags",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Operations","Tags","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-tags-info",
"name": "OpenAPI Operations Tags Info",
"icon": "",
"description": "Having tags applied to each API operations helps organize and group APIs in portals, documentation, search, and other ways in which APIs are made available",
"message": "Operations Has Tags",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Operations","Tags","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-tags-one-error",
"name": "OpenAPI Operations Tags One Error",
"icon": "",
"description": "Having tags applied to each API operations helps organize and group APIs in portals, documentation, search, and other ways in which APIs are made available",
"message": "MUST Be At Least One Operation Tag",
"given": "$.paths.*[get,post,patch,put,delete]",
"severity": "error",
"view_sort": "DA",
"tags": ["OpenAPI","Operations","Tags","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-tags-upper-case-error",
"name": "OpenAPI Operations Tags Upper Case Error",
"icon": "",
"description": "Having the first letter of each word applied as a tag to API operations helps keep a consistent layout when published via search, documentation, and other ways APIs are made available",
"message": "Operation Tag Names MUST Have First Letter in Each Word Capitalized",
"given": "$.paths.*[get,post,patch,put,delete].tags.*",
"severity": "error",
"view_sort": "DB",
"tags": ["OpenAPI","Operations","Tags","Default","Documentation"],
"rules": null
},{
"slug": "openapi-operations-tags-upper-case-info",
"name": "OpenAPI Operations Tags Upper Case Info",
"icon": "",
"description": "Having the first letter of each word applied as a tag to API operations helps keep a consistent layout when published via search, documentation, and other ways APIs are made available",
"message": "Operation Tag Names Have First Letter in Each Word Capitalized",
"given": "$.paths.*[get,post,patch,put,delete].tags.*",
"severity": "info",
"view_sort": "DB",
"tags": ["OpenAPI","Operations","Tags","Default","Documentation"],
"rules": null
},{
"slug": "openapi-parameters-componentized-error",
"name": "OpenAPI Parameters Componentized Error",
"icon": "",
"description": "Having all parameters using the central OpenAPI components parameters object helps increase the reusability of parameters across API operations, but it also help standardize parameter across all APIs",
"message": "Parameters MUST use components $ref.",
"given": "$.paths.*.*.parameters.*",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Components","Parameters"],
"rules": null
},{
"slug": "openapi-parameters-componentized-info",
"name": "OpenAPI Parameters Componentized Info",
"icon": "",
"description": "Having all parameters using the central OpenAPI components parameters object helps increase the reusability of parameters across API operations, but it also help standardize parameter across all APIs",
"message": "Parameters use components $ref.",
"given": "$.paths.*.*.parameters.*",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Components","Parameters"],
"rules": null
},{
"slug": "openapi-parameters-optional-examples-info",
"name": "OpenAPI Parameters Optional Examples",
"icon": "book-open",
"description": "Optional parameters should include examples to support API mocking, testing, and documentation. While not strictly required, examples help consumers understand the range of acceptable values.",
"message": "Optional parameters SHOULD include examples.",
"given": "$.paths[*][*].parameters[?(@.required==false)]",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Parameters","Examples","Mocking"],
"rules": null
},{
"slug": "openapi-parameters-required-examples-warn",
"name": "OpenAPI Parameters Required Examples",
"icon": "book-open",
"description": "Required parameters should include examples to support API mocking, testing, and documentation. Examples help consumers understand expected values and enable tools like Microcks to generate realistic mock responses.",
"message": "Required parameters SHOULD include examples.",
"given": "$.paths[*][*].parameters[?(@.required==true)]",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Parameters","Examples","Mocking"],
"rules": null
},{
"slug": "openapi-paths-apis-error",
"name": "OpenAPI Paths API",
"icon": "",
"description": "There are very few situations where you actually want the acronym API in the path of your API, only when it is a resource.",
"message": "The Word API SHOULD NOT Be in Path",
"given": "$.paths.*~",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-paths-api-info",
"name": "OpenAPI No Api In Path Info",
"icon": "",
"description": "There are very few situations where you actually want the acronym API in the path of your API, only when it is a resource.",
"message": "",
"given": "$.paths.*~",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-paths-declarations-error",
"name": "OpenAPI Path Declarations Error",
"icon": "",
"description": "There must be a paths property and have paths declared, providing the minimum viable definition for an API.",
"message": "OpenAPI Path Declarations Error",
"given": "$.paths",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-paths-declarations-info",
"name": "OpenAPI Path Declarations Info",
"icon": "",
"description": "There must be a paths property and have paths declared, providing the minimum viable definition for an API.",
"message": "OpenAPI Path Declarations Info",
"given": "$.paths",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-paths-query-error",
"name": "OpenAPI Path Kebab Case",
"icon": "",
"description": "Path segments should be kebab case and not have different casing that could cause other problems.",
"message": "Path Segments MUST Be Kebab Case",
"given": "$.paths.*~",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Paths","Casing","Default"],
"rules": null
},{
"slug": "openapi-paths-query-info",
"name": "OpenAPI Path Kebab Case",
"icon": "",
"description": "The query delimiter should not be included as part of any API path.",
"message": "Path Segments Are Kebab Case",
"given": "$.paths.*~",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Paths","Casing","Default"],
"rules": null
},{
"slug": "openapi-paths-no-verbs-warn",
"name": "OpenAPI Paths No Verbs",
"icon": "link",
"description": "RESTful API path segments should not contain action verbs. HTTP methods already convey the action, so verbs in paths indicate a non-RESTful design. Paths should describe resources, not actions.",
"message": "Paths SHOULD NOT contain action verbs.",
"given": "$.paths.*~",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Paths","REST","Design"],
"rules": null
},{
"slug": "openapi-paths-parameters-camel-case-warn",
"name": "OpenAPI Path Parameters Camel Case",
"icon": "type",
"description": "Path parameters should follow camelCase naming convention for consistency across the API, making parameter names predictable and aligned with common programming conventions.",
"message": "Path parameters SHOULD be camelCase.",
"given": "$.paths[*].parameters[?(@.in==&#39;path&#39;)].name",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Paths","Parameters","Casing"],
"rules": null
},{
"slug": "openapi-paths-query-error",
"name": "OpenAPI Path Query",
"icon": "",
"description": "The query delimiter should not be included as part of any API path.",
"message": "The Query Should Not Be Included in API Paths",
"given": "$.paths.*~",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-paths-query-info",
"name": "OpenAPI No Api In Path Info",
"icon": "",
"description": "The query delimiter should not be included as part of any API path.",
"message": "The Query Is Not Included in API Paths",
"given": "$.paths.*~",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-no-path-trailing-slash-error",
"name": "OpenAPI No Path Trailing Slash Error",
"icon": "",
"description": "It is common to be explicit and consistent about whether or not to have a trailing slack on each API path",
"message": "Path Trailing Slash",
"given": "$.paths.*~",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-no-path-trailing-slash-info",
"name": "OpenAPI No Path Trailing Slash Info",
"icon": "",
"description": "It is common to be explicit and consistent about whether or not to have a trailing slack on each API path",
"message": "Path Trailing Slash",
"given": "$.paths.*~",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Paths","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-application-json-info",
"name": "OpenAPI Request Body Have Application Json Info",
"icon": "",
"description": "Request bodies use the application/json media type to encode the request payload is a common data format",
"message": "Request Body Application JSON",
"given": "$.paths.*.*.requestBody.content",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Request Bodies","Media Types"],
"rules": null
},{
"slug": "openapi-request-bodies-application-x-www-form-url-encoded-info",
"name": "OpenAPI Request Body Have Application X Www Form Url Encoded Info",
"icon": "",
"description": "Request bodies use the application/x-www-form-urlencoded media type to encode the request payload is a common data format",
"message": "Request Body Application X WWW Form URL Encoded",
"given": "$.paths.*.*.requestBody.content",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Request Bodies","Media Types"],
"rules": null
},{
"slug": "openapi-request-bodies-content-post-error",
"name": "OpenAPI Request Body Content On Post Error",
"icon": "",
"description": "POST requests with a request body should have content defined, providing more detail on what is contained within the API request body",
"message": "Request Body Content POST",
"given": "$.paths.*.post.requestBody",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Request Bodies","POST"],
"rules": null
},{
"slug": "openapi-request-bodies-content-post-info",
"name": "OpenAPI Request Body Content On Post Info",
"icon": "",
"description": "POST requests with a request body should have content defined, providing more detail on what is contained within the API request body",
"message": "Request Body Content POST",
"given": "$.paths.*.post.requestBody",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Request Bodies","POST"],
"rules": null
},{
"slug": "openapi-request-bodies-content-put-error",
"name": "OpenAPI Request Body Content On Put Error",
"icon": "",
"description": "PUT requests with a request body should have content defined, providing more detail on what is contained within the API request body",
"message": "Request Body Content PUT",
"given": "$.paths.*.put.requestBody",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Request Bodies","PUT"],
"rules": null
},{
"slug": "openapi-request-body-content-on-put-info",
"name": "OpenAPI Request Body Content On Put Info",
"icon": "",
"description": "PUT requests with a request body should have content defined, providing more detail on what is contained within the API request body",
"message": "Request Body Content PUT",
"given": "$.paths.*.put.requestBody",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Request Bodies","PUT"],
"rules": null
},{
"slug": "openapi-request-bodies-delete-error",
"name": "OpenAPI No Request Body On Delete Error",
"icon": "",
"description": "DELETE HTTP methods should not have a request body, keeping API requests compliant with the HTTP standard",
"message": "DELETE Request Body",
"given": "$.paths.*.delete",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Request Bodies","DELETE","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-delete-info",
"name": "OpenAPI No Request Body On Delete Info",
"icon": "",
"description": "DELETE HTTP methods should not have a request body, keeping API requests compliant with the HTTP standard",
"message": "DELETE Request Body",
"given": "$.paths.*.delete",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Request Bodies","DELETE","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-description-error",
"name": "OpenAPI Request Bodies Description Error",
"icon": "",
"description": "It is helpful to provide a description for request bodies, providing a simple explanation of what can be configured as part of the request payload",
"message": "Request Bodies MUST Have a Description",
"given": "$.paths.*.requestBody",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Request Bodies","Metadata"],
"rules": null
},{
"slug": "openapi-request-bodies-description-info",
"name": "OpenAPI Request Bodies Description Info",
"icon": "",
"description": "It is helpful to provide a description for request bodies, providing a simple explanation of what can be configured as part of the request payload",
"message": "Request Bodies Have a Description",
"given": "$.paths.*.requestBody",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Request Bodies","Metadata"],
"rules": null
},{
"slug": "openapi-request-bodies-examples-content-warn",
"name": "OpenAPI Request Bodies Examples Content",
"icon": "book-open",
"description": "Request body content should include examples to support API mocking, testing, and documentation. Examples enable tools to generate realistic mock requests and help consumers understand expected payloads.",
"message": "Request body content SHOULD include examples.",
"given": "$.paths[*][*].requestBody.content.*",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Request Bodies","Examples","Mocking"],
"rules": null
},{
"slug": "openapi-request-bodies-examples-error",
"name": "OpenAPI Request Body Have Examples Error",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have examples, providing one or more examples of what should be submitted for different types of requests",
"message": "Request Bodies MUST Have Examples",
"given": "$.paths.*.*.requestBody.content.*",
"severity": "error",
"view_sort": "K",
"tags": ["OpenAPI","Request Bodies","Examples"],
"rules": null
},{
"slug": "openapi-request-bodies-examples-info",
"name": "OpenAPI Request Body Have Examples Info",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have examples, providing one or more examples of what should be submitted for different types of requests",
"message": "Request Bodies Have Examples",
"given": "$.paths.*.*.requestBody.content.*",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Request Bodies","Examples"],
"rules": null
},{
"slug": "openapi-request-bodies-examples-ref-error",
"name": "OpenAPI Request Body Have Examples Ref Error",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have examples using references to centralized component examples, providing one or more examples of what should be submitted for different types of requests",
"message": "Request Bodies MUST Use Examples Reference",
"given": "$.paths.*.*.requestBody.content.*.examples",
"severity": "error",
"view_sort": "L",
"tags": ["OpenAPI","Request Bodies","Examples"],
"rules": null
},{
"slug": "openapi-request-bodies-examples-ref-info",
"name": "OpenAPI Request Body Have Examples Ref Info",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have examples using references to centralized component examples, providing one or more examples of what should be submitted for different types of requests",
"message": "Request Bodies Use Examples Reference",
"given": "$.paths.*.*.requestBody.content.*.examples",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Request Bodies","Examples"],
"rules": null
},{
"slug": "openapi-request-bodies-get-error",
"name": "OpenAPI No Request Body On Get Error",
"icon": "",
"description": "GET HTTP methods should not have a request body, keeping API requests compliant with the HTTP standard",
"message": "GET Request Body",
"given": "$.paths.*.get",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","GET","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-get-info",
"name": "OpenAPI No Request Body On Get Info",
"icon": "",
"description": "GET HTTP methods should not have a request body, keeping API requests compliant with the HTTP standard",
"message": "GET Request Body",
"given": "$.paths.*.get",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Request Bodies","GET","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-patch-merge-patch-info",
"name": "OpenAPI Request Bodies PATCH Merge Patch",
"icon": "edit-3",
"description": "PATCH operations should use application/merge-patch+json content type as defined in RFC 7396, providing a standardized approach for partial updates to resources.",
"message": "PATCH operations SHOULD use application/merge-patch+json content type.",
"given": "$.paths[*].patch.requestBody.content",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Request Bodies","PATCH","Content Type"],
"rules": null
},{
"slug": "openapi-request-body-on-post-error",
"name": "OpenAPI Request Body On Post Error",
"icon": "",
"description": "POST HTTP methods can have a request body, providing a structured payload for configuring each API request",
"message": "POST Requests MUST Have a Body",
"given": "$.paths.*.post",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Request Bodies","POST","Default"],
"rules": null
},{
"slug": "openapi-request-body-on-post-info",
"name": "OpenAPI Request Body On Post Info",
"icon": "",
"description": "POST HTTP methods can have a request body, providing a structured payload for configuring each API request",
"message": "POST Requests Has a Body",
"given": "$.paths.*.post",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Request Bodies","POST","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-put-error",
"name": "OpenAPI Request Body On Put Error Info",
"icon": "",
"description": "PUT HTTP methods can have a request body, providing a structured payload for configuring each API request",
"message": "PUT Requests MUST Have a Body",
"given": "$.paths.*.put",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Request Bodies","PUT","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-put-info",
"name": "OpenAPI Request Body On Put Info",
"icon": "",
"description": "PUT HTTP methods can have a request body, providing a structured payload for configuring each API request",
"message": "PUT Requests Has a Body",
"given": "$.paths.*.put",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Request Bodies","PUT","Default"],
"rules": null
},{
"slug": "openapi-request-bodies-required-property-error",
"name": "OpenAPI Request Bodies Required Property Error",
"icon": "",
"description": "It is important to be explicit about whether or not the request body for an API operation is required or not",
"message": "REQUEST BODIES Required",
"given": "$.paths.*.requestBody",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Request Bodies","Metadata","Required"],
"rules": null
},{
"slug": "openapi-request-bodies-required-property-info",
"name": "OpenAPI Request Bodies Required Property Info",
"icon": "",
"description": "It is important to be explicit about whether or not the request body for an API operation is required or not",
"message": "REQUEST BODIES Required",
"given": "$.paths.*.requestBody",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Request Bodies","Metadata","Required"],
"rules": null
},{
"slug": "openapi-request-bodies-schema-error",
"name": "OpenAPI Request Body Have Schema Error",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have schema defined, providing more detail on what the structure of the API request body should be",
"message": "Request Body Schema",
"given": "$.paths.*.*.requestBody.content.*",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Request Bodies","Schema"],
"rules": null
},{
"slug": "openapi-request-bodies-schema-info",
"name": "OpenAPI Request Body Have Schema Info",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have schema defined, providing more detail on what the structure of the API request body should be",
"message": "Request Body Schema",
"given": "$.paths.*.*.requestBody.content.*",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Request Bodies","Schema"],
"rules": null
},{
"slug": "openapi-request-bodies-schema-ref-error",
"name": "OpenAPI Request Body Have Schema Ref Error",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have schema reference defined, providing more detail on what the structure of the API request body should be",
"message": "Request Bodies MUST Use Schema Reference",
"given": "$.paths.*.*.requestBody.content.*.schema",
"severity": "error",
"view_sort": "N",
"tags": ["OpenAPI","Request Bodies","Schema"],
"rules": null
},{
"slug": "openapi-request-bodies-schema-ref-info",
"name": "OpenAPI Request Body Have Schema Ref Info",
"icon": "",
"description": "POST, PUT, and PATCH request bodies should have schema reference defined, providing more detail on what the structure of the API request body should be",
"message": "Request Bodies Use Schema Reference",
"given": "$.paths.*.*.requestBody.content.*.schema",
"severity": "info",
"view_sort": "N",
"tags": ["OpenAPI","Request Bodies","Schema"],
"rules": null
},{
"slug": "openapi-response-content-examples-warn",
"name": "OpenAPI Response Content Examples",
"icon": "book-open",
"description": "Response content should include examples to support API mocking, testing, and documentation. Examples enable tools to generate realistic mock responses and help consumers understand what to expect.",
"message": "Response content SHOULD include examples.",
"given": "$.paths[*][*].responses[*].content.*",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Responses","Examples","Mocking"],
"rules": null
},{
"slug": "openapi-response-delete-204-status-code-error",
"name": "OpenAPI Response Delete 204 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 204 success HTTP status codes, communicating a success created response to consumers",
"message": "DELETE 204 Status Code",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Responses","DELETE","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-delete-204-status-code-info",
"name": "OpenAPI Response Delete 204 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 204 success HTTP status codes, communicating a success created response to consumers",
"message": "DELETE 204 Status Code",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Responses","DELETE","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-delete-400-schema-ref-error",
"name": "OpenAPI Response Delete 400 Schema Ref Error",
"icon": "",
"description": "DELETE 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 400 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.400",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-400-schema-ref-info",
"name": "OpenAPI Response Delete 400 Schema Ref Info",
"icon": "",
"description": "DELETE 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 400 Responses Use Schema Reference",
"given": "$.paths.*.delete.responses.400",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-400-status-code-error",
"name": "OpenAPI Response Delete 400 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "DELETE Responses MUST Have 400 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-400-status-code-info",
"name": "OpenAPI Response Delete 400 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "DELETE Responses Has 400 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-401-schema-ref-error",
"name": "OpenAPI Response Delete 401 Schema Ref Error",
"icon": "",
"description": "DELETE 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 401 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.401",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-401-schema-ref-info",
"name": "OpenAPI Response Delete 401 Schema Ref Info",
"icon": "",
"description": "DELETE 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 401 Responses Uses Schema Reference",
"given": "$.paths.*.delete.responses.401",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-401-status-code-error",
"name": "OpenAPI Response Delete 401 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "DELETE Responses MUST Have 401 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-401-status-code-info",
"name": "OpenAPI Response Delete 401 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "DELETE Responses Has 401 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-403-schema-ref-error",
"name": "OpenAPI Response Delete 403 Schema Ref Error",
"icon": "",
"description": "DELETE 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 403 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.403",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-403-schema-ref-info",
"name": "OpenAPI Response Delete 403 Schema Ref Info",
"icon": "",
"description": "DELETE 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 403 Responses Uses Schema Reference",
"given": "$.paths.*.delete.responses.403",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-403-status-code-error",
"name": "OpenAPI Response Delete 403 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "DELETE Responses MUST Have 403 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-403-status-code-info",
"name": "OpenAPI Response Delete 403 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "DELETE Responses Has 403 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-404-schema-ref-error",
"name": "OpenAPI Response Delete 404 Schema Ref Error",
"icon": "",
"description": "DELETE 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 404 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.404",
"severity": "error",
"view_sort": "I",
"tags": ["OpenAPI","Responses","DELETE","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-delete-404-schema-ref-info",
"name": "OpenAPI Response Delete 404 Schema Ref Info",
"icon": "",
"description": "DELETE 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 404 Responses Uses Schema Reference",
"given": "$.paths.*.delete.responses.404",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Responses","DELETE","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-delete-404-status-code-error",
"name": "OpenAPI Response Delete 404 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "DELETE Responses MUST Have 404 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-404-status-code-info",
"name": "OpenAPI Response Delete 404 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "DELETE Responses Has 404 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-429-schema-ref-error",
"name": "OpenAPI Response Delete 429 Schema Ref Error",
"icon": "",
"description": "DELETE 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 429 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.429",
"severity": "error",
"view_sort": "K",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-429-schema-ref-info",
"name": "OpenAPI Response Delete 429 Schema Ref Info",
"icon": "",
"description": "DELETE 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 429 Responses Uses Schema Reference",
"given": "$.paths.*.delete.responses.429",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-429-status-code-error",
"name": "OpenAPI Response Delete 429 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "DELETE Responses MUST Have 429 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-429-status-code-info",
"name": "OpenAPI Response Delete 429 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "DELETE Responses Has 429 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Responses","DELETE","4xx"],
"rules": null
},{
"slug": "openapi-response-delete-500-schema-ref-error",
"name": "OpenAPI Response Delete 500 Schema Ref Error",
"icon": "",
"description": "DELETE 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 500 Responses MUST Use Schema Reference",
"given": "$.paths.*.delete.responses.500",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Responses","DELETE","5xx"],
"rules": null
},{
"slug": "openapi-response-delete-500-schema-ref-info",
"name": "OpenAPI Response Delete 500 Schema Ref Info",
"icon": "",
"description": "DELETE 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "DELETE 500 Responses Uses Schema Reference",
"given": "$.paths.*.delete.responses.500",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Responses","DELETE","5xx"],
"rules": null
},{
"slug": "openapi-response-delete-500-status-code-error",
"name": "OpenAPI Response Delete 500 Status Code Error",
"icon": "",
"description": "DELETE responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "DELETE Responses MUST Have 500 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "error",
"view_sort": "L",
"tags": ["OpenAPI","Responses","DELETE","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-delete-500-status-code-info",
"name": "OpenAPI Response Delete 500 Status Code Info",
"icon": "",
"description": "DELETE responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "DELETE Responses MUST Have 500 Status Codes",
"given": "$.paths.*.delete.responses",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Responses","DELETE","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-error-problem-json-info",
"name": "OpenAPI Response Error Problem JSON",
"icon": "alert-circle",
"description": "Error responses (4XX and 5XX) should use application/problem+json media type as defined in RFC 7807, providing a consistent, machine-readable format for conveying error details to API consumers.",
"message": "Error responses SHOULD use application/problem+json media type (RFC 7807).",
"given": "$.paths[*][*].responses[?(@property.match(/^(4|5)/))].content",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","Errors","Problem JSON"],
"rules": null
},{
"slug": "openapi-response-examples-error",
"name": "OpenAPI Response Examples Error",
"icon": "",
"description": "Have examples to show one or many examples of responses for different types of API requests",
"message": "Response MUST Have Examples",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","Examples"],
"rules": null
},{
"slug": "openapi-response-examples-info",
"name": "OpenAPI Response Examples Info",
"icon": "",
"description": "Have examples to show one or many examples of responses for different types of API requests",
"message": "ResponseHas Examples",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","Examples"],
"rules": null
},{
"slug": "openapi-response-examples-ref-error",
"name": "OpenAPI Response Examples Ref Error",
"icon": "",
"description": "Have example references to show one or many examples of responses for different types of API requests",
"message": "Responses MUST Use Examples Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].examples.*",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Responses","Examples"],
"rules": null
},{
"slug": "openapi-response-examples-ref-error",
"name": "OpenAPI Response Examples Ref Info",
"icon": "",
"description": "Have example references to show one or many examples of responses for different types of API requests",
"message": "Responses Uses Examples Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].examples.*",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Responses","Examples"],
"rules": null
},{
"slug": "openapi-response-get-200-content-error",
"name": "OpenAPI Response Get 200 Content Error",
"icon": "",
"description": "GET 200 success HTTP status codes should have content property that provides the ability to describe the response content",
"message": "GET 200 Response MUST Have Content.",
"given": "$.paths.*.get.responses.200",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Responses","GET","2xx"],
"rules": null
},{
"slug": "openapi-response-get-200-content-info",
"name": "OpenAPI Response Get 200 Content Info",
"icon": "",
"description": "GET 200 success HTTP status codes should have content property that provides the ability to describe the response content",
"message": "GET 200 Response Has Content.",
"given": "$.paths.*.get.responses.200",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Responses","GET","2xx"],
"rules": null
},{
"slug": "openapi-response-get-200-description-error",
"name": "OpenAPI Response Get 200 Description Error",
"icon": "",
"description": "GET 200 success HTTP status codes should have a description, describing what an API consumer can expect as a result",
"message": "GET 200 Response MUST have description.",
"given": "$.paths.*.get.responses.200",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Responses","GET","2xx"],
"rules": null
},{
"slug": "openapi-response-get-200-description-info",
"name": "OpenAPI Response Get 200 Description Info",
"icon": "",
"description": "GET 200 success HTTP status codes should have a description, describing what an API consumer can expect as a result",
"message": "GET 200 Response has description.",
"given": "$.paths.*.get.responses.200",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","GET","2xx"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-error",
"name": "OpenAPI Response Get 200 Media Type Error",
"icon": "",
"description": "GET 200 success HTTP status codes have a application/json media type, standardizing the response payload returned for a successful response",
"message": "GET 200 Response MUST Have Media Type.",
"given": "$.paths.*.get.responses.200.content",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-examples-error",
"name": "OpenAPI Response Get 200 Media Type Examples Error",
"icon": "",
"description": "GET 200 success HTTP status codes have examples to show one or many examples of responses for different types of API requests",
"message": "GET 200 Response MUST Have Examples",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Examples"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-examples-info",
"name": "OpenAPI Response Get 200 Media Type Examples Info",
"icon": "",
"description": "GET 200 success HTTP status codes have examples to show one or many examples of responses for different types of API requests",
"message": "GET 200 ResponseHas Examples",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Examples"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-examples-ref-error",
"name": "OpenAPI Response Get 200 Media Type Examples Ref Error",
"icon": "",
"description": "GET 200 success HTTP status codes have example references to show one or many examples of responses for different types of API requests",
"message": "GET 200 Responses MUST Use Examples Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].examples.*",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Examples"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-examples-ref-info",
"name": "OpenAPI Response Get 200 Media Type Examples Ref Info",
"icon": "",
"description": "GET 200 success HTTP status codes have example references to show one or many examples of responses for different types of API requests",
"message": "GET 200 Responses Uses Examples Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].examples.*",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Examples"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-info",
"name": "OpenAPI Response Get 200 Media Type Info",
"icon": "",
"description": "GET 200 success HTTP status codes have a application/json media type, standardizing the response payload returned for a successful response",
"message": "GET 200 Response Has Media Type.",
"given": "$.paths.*.get.responses.200.content",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-schema-error",
"name": "OpenAPI Response Get 200 Media Type Schema Error",
"icon": "",
"description": "GET 200 success HTTP status codes have a schema to standardize the response payload returned for a successful response",
"message": "GET 200 Response MUST Have Schema",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-schema-info",
"name": "OpenAPI Response Get 200 Media Type Schema Info",
"icon": "",
"description": "GET 200 success HTTP status codes have a schema to standardize the response payload returned for a successful response",
"message": "GET 200 Response Has Schema",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-schema-ref-error",
"name": "OpenAPI Response Get 200 Media Type Schema Ref Error",
"icon": "",
"description": "GET 200 success HTTP status codes have a schema references to standardize the response payload returned for a successful response",
"message": "GET 200 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].schema",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-schema-ref-info",
"name": "OpenAPI Response Get 200 Media Type Schema Ref Info",
"icon": "",
"description": "GET 200 success HTTP status codes have a schema references to standardize the response payload returned for a successful response",
"message": "GET 200 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].schema",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-get-200-status-code-error",
"name": "OpenAPI Response Get 200 Status Code Error",
"icon": "",
"description": "GET responses should have a 200 success HTTP status codes, communicating a successful response to consumers",
"message": "GET Responses MUST Have 200 Status Codes",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Responses","GET","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-200-status-code-info",
"name": "OpenAPI Response Get 200 Status Code Info",
"icon": "",
"description": "GET responses should have a 200 success HTTP status codes, communicating a successful response to consumers",
"message": "GET Responses Has 200 Status Codes",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Responses","GET","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-400-schema-ref-error",
"name": "OpenAPI Response Get 400 Schema Ref Error",
"icon": "",
"description": "GET 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 400 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.400",
"severity": "error",
"view_sort": "I",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-400-schema-ref-info",
"name": "OpenAPI Response Get 400 Schema Ref Info",
"icon": "",
"description": "GET 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 400 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.400",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-400-status-code-error",
"name": "OpenAPI Response Get 400 Status Code Error",
"icon": "",
"description": "GET responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "GET Responses MUST Have 400 Status Codes",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-400-status-code-info",
"name": "OpenAPI Response Get 400 Status Code Info",
"icon": "",
"description": "GET responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "GET Responses Has 400 Status Codes",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-401-schema-ref-error",
"name": "OpenAPI Response Get 401 Schema Ref Error",
"icon": "",
"description": "GET 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 401 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.401",
"severity": "error",
"view_sort": "K",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-401-schema-ref-info",
"name": "OpenAPI Response Get 401 Schema Ref Info",
"icon": "",
"description": "GET 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 401 Responses Has Schema Reference",
"given": "$.paths.*.get.responses.401",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-401-status-code-error",
"name": "OpenAPI Response Get 401 Status Code Error",
"icon": "",
"description": "GET responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "GET Responses Has 401 Status Code",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-401-status-code-info",
"name": "OpenAPI Response Get 401 Status Code Info",
"icon": "",
"description": "GET responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "GET Responses MUST Have 401 Status Code",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-403-schema-ref-error",
"name": "OpenAPI Response Get 403 Schema Ref Error",
"icon": "",
"description": "GET 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 403 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.403",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-403-schema-ref-info",
"name": "OpenAPI Response Get 403 Schema Ref Info",
"icon": "",
"description": "GET 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 403 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.403",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-403-status-code-error",
"name": "OpenAPI Response Get 403 Status Code Error",
"icon": "",
"description": "GET responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "GET Responses Has 403 Status Code",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "L",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-403-status-code-info",
"name": "OpenAPI Response Get 403 Status Code Info",
"icon": "",
"description": "GET responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "GET Responses MUST Have 403 Status Code",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-404-schema-ref-error",
"name": "OpenAPI Response Get 404 Schema Ref Error",
"icon": "",
"description": "GET 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 404 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.404",
"severity": "error",
"view_sort": "O",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-404-schema-ref-info",
"name": "OpenAPI Response Get 404 Schema Ref Info",
"icon": "",
"description": "GET 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 404 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.404",
"severity": "info",
"view_sort": "O",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-404-status-code-error",
"name": "OpenAPI Response Get 404 Status Code Error",
"icon": "",
"description": "GET responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "GET Responses MUST Have 404 Status Code",
"given": "$.paths.*.get[?(@.properties)]",
"severity": "error",
"view_sort": "N",
"tags": ["OpenAPI","Responses","GET","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-404-status-code-info",
"name": "OpenAPI Response Get 404 Status Code Info",
"icon": "",
"description": "GET responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "GET Responses Has 404 Status Code",
"given": "$.paths.*.get[?(@.properties)]",
"severity": "info",
"view_sort": "N",
"tags": ["OpenAPI","Responses","GET","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-429-schema-ref-error",
"name": "OpenAPI Response Get 429 Schema Ref Error",
"icon": "",
"description": "GET 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 429 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.429",
"severity": "error",
"view_sort": "Q",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-429-schema-ref-info",
"name": "OpenAPI Response Get 429 Schema Ref Info",
"icon": "",
"description": "GET 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 429 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.429",
"severity": "info",
"view_sort": "Q",
"tags": ["OpenAPI","Responses","GET","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-429-status-code-error",
"name": "OpenAPI Response Get 429 Status Code Error",
"icon": "",
"description": "GET responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "GET Responses Has 429 Status Code",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "P",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-429-status-code-info",
"name": "OpenAPI Response Get 429 Status Code Info",
"icon": "",
"description": "GET responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "GET Responses MUST Have 429 Status Code",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "P",
"tags": ["OpenAPI","Responses","GET","4xx"],
"rules": null
},{
"slug": "openapi-response-get-500-schema-ref-error",
"name": "OpenAPI Response Get 500 Schema Ref Error",
"icon": "",
"description": "GET 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 500 Responses MUST Use Schema Reference",
"given": "$.paths.*.get.responses.500",
"severity": "error",
"view_sort": "S",
"tags": ["OpenAPI","Responses","GET","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-500-schema-ref-info",
"name": "OpenAPI Response Get 500 Schema Ref Info",
"icon": "",
"description": "GET 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "GET 500 Responses Uses Schema Reference",
"given": "$.paths.*.get.responses.500",
"severity": "info",
"view_sort": "S",
"tags": ["OpenAPI","Responses","GET","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-get-500-status-code-error",
"name": "OpenAPI Response Get 500 Status Code Error",
"icon": "",
"description": "GET responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "GET Responses MUST Have 500 Status Code",
"given": "$.paths.*.get.responses",
"severity": "error",
"view_sort": "R",
"tags": ["OpenAPI","Responses","GET","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-500-status-code-info",
"name": "OpenAPI Response Get 500 Status Code Info",
"icon": "",
"description": "GET responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "GET Responses Has 500 Status Code",
"given": "$.paths.*.get.responses",
"severity": "info",
"view_sort": "R",
"tags": ["OpenAPI","Responses","GET","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-get-200-media-type-examples-error",
"name": "OpenAPI Response Get 200 Media Type Examples Error",
"icon": "",
"description": "GET 200 success HTTP status codes have examples to show one or many examples of responses for different types of API requests",
"message": "GET 200 Response MUST Have Examples",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","GET","2xx","Media Types","Examples"],
"rules": null
},{
"slug": "openapi-response-post-201-content-error",
"name": "OpenAPI Response Post 201 Content Error",
"icon": "",
"description": "POST 201 success HTTP status codes should have content property that provides the ability to describe the response content",
"message": "POST 201 Responses MUST Have Content",
"given": "$.paths.*.post.responses.201",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","POST","2xx"],
"rules": null
},{
"slug": "openapi-response-post-201-content-info",
"name": "OpenAPI Response Post 201 Content Info",
"icon": "",
"description": "POST 201 success HTTP status codes should have content property that provides the ability to describe the response content",
"message": "POST 201 Responses Has Content",
"given": "$.paths.*.post.responses.201",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","POST","2xx"],
"rules": null
},{
"slug": "openapi-response-post-201-description-error",
"name": "OpenAPI Response Post 201 Description Error",
"icon": "",
"description": "POST 201 success HTTP status codes should have a description, describing what an API consumer can expect as a result",
"message": "POST 201 Responses MUST Have Description",
"given": "$.paths.*.post.responses.201",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Responses","POST","2xx"],
"rules": null
},{
"slug": "openapi-response-post-201-description-info",
"name": "OpenAPI Response Post 201 Description Info",
"icon": "",
"description": "POST 201 success HTTP status codes should have a description, describing what an API consumer can expect as a result",
"message": "POST 201 Responses Has Description",
"given": "$.paths.*.post.responses.201",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Responses","POST","2xx"],
"rules": null
},{
"slug": "openapi-response-post-201-examples-ref-error",
"name": "OpenAPI Response Post 201 Examples Ref Error",
"icon": "",
"description": "POST 201 success HTTP status codes have example references to show one or many examples of responses for different types of API requests",
"message": "POST 201 Responses MUST Use Examples Reference",
"given": "$.paths.*.post.responses.201.content.*.examples",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Responses","POST","2xx","Examples"],
"rules": null
},{
"slug": "openapi-response-post-201-examples-ref-info",
"name": "OpenAPI Response Post 201 Examples Ref Info",
"icon": "",
"description": "POST 201 success HTTP status codes have example references to show one or many examples of responses for different types of API requests",
"message": "POST 201 Responses Has Examples Reference",
"given": "$.paths.*.post.responses.201.content.*.examples",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Responses","POST","2xx","Examples"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-error",
"name": "OpenAPI Response Post 201 Media Type Error",
"icon": "",
"description": "POST 201 success HTTP status codes have a application/json media type, standardizing the response payload returned for a successful response",
"message": "POST 201 Responses MUST Have Media Type",
"given": "$.paths.*.post.responses.201.content",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-examples-error",
"name": "OpenAPI Response Post 201 Media Type Examples Error",
"icon": "",
"description": "POST 201 success HTTP status codes have examples to show one or many examples of responses for different types of API requests",
"message": "POST 201 Responses MUST Have Examples",
"given": "$.paths.*.post.responses.201.content.application/json",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-examples-info",
"name": "OpenAPI Response Post 201 Media Type Examples Info",
"icon": "",
"description": "POST 201 success HTTP status codes have examples to show one or many examples of responses for different types of API requests",
"message": "POST 201 Responses Has Examples",
"given": "$.paths.*.post.responses.201.content.application/json",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-info",
"name": "OpenAPI Response Post 201 Media Type Info",
"icon": "",
"description": "POST 201 success HTTP status codes have a application/json media type, standardizing the response payload returned for a successful response",
"message": "POST 201 Responses Has Media Type",
"given": "$.paths.*.post.responses.201.content",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-schema-error",
"name": "OpenAPI Response Post 201 Media Type Schema Error",
"icon": "",
"description": "POST 201 success HTTP status codes have a schema to standardize the response payload returned for a successful response",
"message": "POST 201 Responses MUST Have Schema",
"given": "$.paths.*.post.responses.201.content.application/json",
"severity": "error",
"view_sort": "I",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-post-201-media-type-schema-info",
"name": "OpenAPI Response Post 201 Media Type Schema Info",
"icon": "",
"description": "POST 201 success HTTP status codes have a schema to standardize the response payload returned for a successful response",
"message": "POST 201 Responses Has Schema",
"given": "$.paths.*.post.responses.201.content.application/json",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Responses","POST","2xx","Media Types","Schema"],
"rules": null
},{
"slug": "openapi-response-post-201-schema-ref-error",
"name": "OpenAPI Response Post 201 Schema Ref Error",
"icon": "",
"description": "POST 201 success HTTP status codes have a schema references to standardize the response payload returned for a successful response",
"message": "POST 201 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.201.content.*.schema",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Responses","POST","2xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-201-schema-ref-info",
"name": "OpenAPI Response Post 201 Schema Ref Info",
"icon": "",
"description": "POST 201 success HTTP status codes have a schema references to standardize the response payload returned for a successful response",
"message": "POST 201 Responses Has Schema Reference",
"given": "$.paths.*.post.responses.201.content.*.schema",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","POST","2xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-201-status-code-error",
"name": "OpenAPI Response Post 201 Status Code Error",
"icon": "",
"description": "POST responses should have a 201 success HTTP status codes, communicating a success created response to consumers",
"message": "POST Responses MUST Have 201 Status Codes",
"given": "$.paths[*].post.responses",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Responses","POST","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-post-201-status-code-info",
"name": "OpenAPI Response Post 201 Status Code Info",
"icon": "",
"description": "POST responses should have a 201 success HTTP status codes, communicating a success created response to consumers",
"message": "POST Responses Has 201 Status Codes",
"given": "$.paths[*].post.responses",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Responses","POST","2xx","Default"],
"rules": null
},{
"slug": "openapi-response-post-400-schema-ref-error",
"name": "OpenAPI Response Post 400 Schema Ref Error",
"icon": "",
"description": "POST 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 400 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.400",
"severity": "error",
"view_sort": "K",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-400-schema-ref-info",
"name": "OpenAPI Response Post 400 Schema Ref Info",
"icon": "",
"description": "POST 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 400 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.400",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-400-status-code-error",
"name": "OpenAPI Response Post 400 Status Code Error",
"icon": "",
"description": "POST responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "POST Responses Has 400 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-400-status-code-info",
"name": "OpenAPI Response Post 400 Status Code Info",
"icon": "",
"description": "POST responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "POST Responses MUST Have 400 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-401-schema-ref-error",
"name": "OpenAPI Response Post 401 Schema Ref Error",
"icon": "",
"description": "POST 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 401 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.401",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-401-schema-ref-info",
"name": "OpenAPI Response Post 401 Schema Ref Info",
"icon": "",
"description": "POST 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 401 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.401",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-401-status-code-error",
"name": "OpenAPI Response Post 401 Status Code Error",
"icon": "",
"description": "POST responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "POST Responses Has 401 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "L",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-401-status-code-info",
"name": "OpenAPI Response Post 401 Status Code Info",
"icon": "",
"description": "POST responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "POST Responses MUST Have 401 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-403-schema-ref-error",
"name": "OpenAPI Response Post 403 Schema Ref Error",
"icon": "",
"description": "POST 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 403 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.403",
"severity": "error",
"view_sort": "O",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-403-schema-ref-info",
"name": "OpenAPI Response Post 403 Schema Ref Info",
"icon": "",
"description": "POST 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 403 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.403",
"severity": "info",
"view_sort": "O",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-403-status-code-error",
"name": "OpenAPI Response Post 403 Status Code Error",
"icon": "",
"description": "POST responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "POST Responses Has 403 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "N",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-403-status-code-info",
"name": "OpenAPI Response Post 403 Status Code Info",
"icon": "",
"description": "POST responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "POST Responses MUST Have 403 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "N",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-404-schema-ref-error",
"name": "OpenAPI Response Post 404 Schema Ref Error",
"icon": "",
"description": "POST 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 404 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.404",
"severity": "error",
"view_sort": "Q",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-404-schema-ref-info",
"name": "OpenAPI Response Post 404 Schema Ref Info",
"icon": "",
"description": "POST 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 404 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.404",
"severity": "info",
"view_sort": "Q",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-404-status-code-error",
"name": "OpenAPI Response Post 404 Status Code Error",
"icon": "",
"description": "POST responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "POST Responses Has 404 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "P",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-404-status-code-info",
"name": "OpenAPI Response Post 404 Status Code Info",
"icon": "",
"description": "POST responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "POST Responses MUST Have 404 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "P",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-429-schema-ref-error",
"name": "OpenAPI Response Post 429 Schema Ref Error",
"icon": "",
"description": "POST 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 429 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.429",
"severity": "error",
"view_sort": "S",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-429-schema-ref-info",
"name": "OpenAPI Response Post 429 Schema Ref Info",
"icon": "",
"description": "POST 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 429 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.429",
"severity": "info",
"view_sort": "S",
"tags": ["OpenAPI","Responses","POST","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-429-status-code-error",
"name": "OpenAPI Response Post 429 Status Code Error",
"icon": "",
"description": "POST responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "POST Responses MUST Have 429 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "R",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-429-status-code-info",
"name": "OpenAPI Response Post 429 Status Code Info",
"icon": "",
"description": "POST responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "POST Responses Has 429 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "R",
"tags": ["OpenAPI","Responses","POST","4xx"],
"rules": null
},{
"slug": "openapi-response-post-500-schema-ref-error",
"name": "OpenAPI Response Post 500 Schema Ref Error",
"icon": "",
"description": "POST 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 500 Responses MUST Use Schema Reference",
"given": "$.paths.*.post.responses.500",
"severity": "error",
"view_sort": "U",
"tags": ["OpenAPI","Responses","POST","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-500-schema-ref-info",
"name": "OpenAPI Response Post 500 Schema Ref Info",
"icon": "",
"description": "POST 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "POST 500 Responses Uses Schema Reference",
"given": "$.paths.*.post.responses.500",
"severity": "info",
"view_sort": "U",
"tags": ["OpenAPI","Responses","POST","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-post-500-status-code-error",
"name": "OpenAPI Response Post 500 Status Code Error",
"icon": "",
"description": "POST responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "POST Responses MUST Have 500 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "error",
"view_sort": "T",
"tags": ["OpenAPI","Responses","POST","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-post-500-status-code-info",
"name": "OpenAPI Response Post 500 Status Code Info",
"icon": "",
"description": "POST responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "POST Responses Has 500 Status Codes",
"given": "$.paths.*.post.responses",
"severity": "info",
"view_sort": "T",
"tags": ["OpenAPI","Responses","POST","5xx","Default"],
"rules": null
},{
"slug": "openapi-response-put-204-status-code-error",
"name": "OpenAPI Response Put 204 Status Code Error",
"icon": "",
"description": "PUT responses should have a 204 success HTTP status codes, communicating a success created response to consumers",
"message": "PUT 204 Status Code",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Responses","PUT","2xx"],
"rules": null
},{
"slug": "openapi-response-put-204-status-code-info",
"name": "OpenAPI Response Put 204 Status Code Info",
"icon": "",
"description": "PUT responses should have a 204 success HTTP status codes, communicating a success created response to consumers",
"message": "PUT 204 Status Code",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Responses","PUT","2xx"],
"rules": null
},{
"slug": "openapi-response-put-400-schema-ref-error",
"name": "OpenAPI Response Put 400 Schema Ref Error",
"icon": "",
"description": "PUT 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 400 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.400",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-400-schema-ref-info",
"name": "OpenAPI Response Put 400 Schema Ref Info",
"icon": "",
"description": "PUT 400 bad request HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 400 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.400",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-400-status-code-error",
"name": "OpenAPI Response Put 400 Status Code Error",
"icon": "",
"description": "PUT responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "PUT Responses MUST Have 400 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Responses","PUT","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-put-400-status-code-info",
"name": "OpenAPI Response Put 400 Status Code Info",
"icon": "",
"description": "PUT responses should have a 400 not found HTTP status code, communicating nothing was found to consumers",
"message": "PUT Responses Has 400 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","PUT","4xx","Default"],
"rules": null
},{
"slug": "openapi-response-put-401-schema-ref-error",
"name": "OpenAPI Response Put 401 Schema Ref Error",
"icon": "",
"description": "PUT 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 401 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.401",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-401-schema-ref-info",
"name": "OpenAPI Response Put 401 Schema Ref Info",
"icon": "",
"description": "PUT 401 unauthorized HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 401 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.401",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-401-status-code-error",
"name": "OpenAPI Response Put 401 Status Code Error",
"icon": "",
"description": "PUT responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "PUT Responses MUST 401 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-401-status-code-info",
"name": "OpenAPI Response Put 401 Status Code Info",
"icon": "",
"description": "PUT responses should have a 401 unauthorized HTTP status code, communicating that consumers do not have access",
"message": "PUT Responses Has 401 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-403-schema-ref-error",
"name": "OpenAPI Response Put 403 Schema Ref Error",
"icon": "",
"description": "PUT 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 403 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.403",
"severity": "error",
"view_sort": "G",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-403-schema-ref-info",
"name": "OpenAPI Response Put 403 Schema Ref Info",
"icon": "",
"description": "PUT 403 forbidden HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 403 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.403",
"severity": "info",
"view_sort": "G",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-403-status-code-error",
"name": "OpenAPI Response Put 403 Status Code Error",
"icon": "",
"description": "PUT responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "PUT Responses MUST Have 403 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-403-status-code-info",
"name": "OpenAPI Response Put 403 Status Code Info",
"icon": "",
"description": "PUT responses should have a 403 forbidden HTTP status code, communicating that consumers are not allowed to access",
"message": "PUT Responses Has 403 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-404-schema-ref-error",
"name": "OpenAPI Response Put 404 Schema Ref Error",
"icon": "",
"description": "PUT 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 404 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.404",
"severity": "error",
"view_sort": "I",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-404-schema-ref-info",
"name": "OpenAPI Response Put 404 Schema Ref Info",
"icon": "",
"description": "PUT 404 not found HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 404 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.404",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-404-status-code-error",
"name": "OpenAPI Response Put 404 Status Code Error",
"icon": "",
"description": "PUT responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "PUT Responses MUST Have 404 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-404-status-code-info",
"name": "OpenAPI Response Put 404 Status Code Info",
"icon": "",
"description": "PUT responses should have a 404 not found HTTP status code, communicating that nothing was found to consumers",
"message": "PUT Responses Has 404 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-429-schema-ref-error",
"name": "OpenAPI Response Put 429 Schema Ref Error",
"icon": "",
"description": "PUT 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 429 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.429",
"severity": "error",
"view_sort": "K",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-429-schema-ref-info",
"name": "OpenAPI Response Put 429 Schema Ref Info",
"icon": "",
"description": "PUT 429 too many requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 429 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.429",
"severity": "info",
"view_sort": "K",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-429-status-code-error",
"name": "OpenAPI Response Put 429 Status Code Error",
"icon": "",
"description": "PUT responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "PUT Responses MUST Have 429 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Responses","PUT","4xx"],
"rules": null
},{
"slug": "openapi-response-put-429-status-code-info",
"name": "OpenAPI Response Put 429 Status Code Info",
"icon": "",
"description": "PUT responses should have a 429 too many requests HTTP status code, communicating a consumer has made too may requests",
"message": "PUT Responses Has 429 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "J",
"tags": ["OpenAPI","Responses","PUT","4xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-500-schema-ref-error",
"name": "OpenAPI Response Put 500 Schema Ref Error",
"icon": "",
"description": "PUT 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 500 Responses MUST Use Schema Reference",
"given": "$.paths.*.put.responses.500",
"severity": "error",
"view_sort": "M",
"tags": ["OpenAPI","Responses","PUT","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-500-schema-ref-info",
"name": "OpenAPI Response Put 500 Schema Ref Info",
"icon": "",
"description": "PUT 500 internal server error requests HTTP status codes have a schema references to standardize the response payload returned for the error response",
"message": "PUT 500 Responses Uses Schema Reference",
"given": "$.paths.*.put.responses.500",
"severity": "info",
"view_sort": "M",
"tags": ["OpenAPI","Responses","PUT","5xx","Schema"],
"rules": null
},{
"slug": "openapi-response-put-500-status-code-error",
"name": "OpenAPI Response Put 500 Status Code Error",
"icon": "",
"description": "PUT responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "PUT Responses MUST Have 500 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "error",
"view_sort": "L",
"tags": ["OpenAPI","Responses","PUT","5xx","Schema","Default"],
"rules": null
},{
"slug": "openapi-response-put-500-status-code-info",
"name": "OpenAPI Response Put 500 Status Code Info",
"icon": "",
"description": "PUT responses should have a 500 internal server erorr HTTP status code, communicating the API had a problem to consumers",
"message": "PUT Responses Has 500 Status Codes",
"given": "$.paths.*.put.responses",
"severity": "info",
"view_sort": "L",
"tags": ["OpenAPI","Responses","PUT","5xx","Schema","Default"],
"rules": null
},{
"slug": "openapi-response-ratelimit-headers-error",
"name": "OpenAPI Response RateLimit Headers",
"icon": "gauge",
"description": "API responses must include the standard rate limit header trio (ratelimit-limit, ratelimit-remaining, ratelimit-reset) to inform consumers of their current usage against rate limits.",
"message": "Responses MUST include ratelimit-limit, ratelimit-remaining, and ratelimit-reset headers.",
"given": "$..responses[?(@property.match(/^2/))].headers",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Responses","Rate Limiting","Headers"],
"rules": null
},{
"slug": "openapi-response-schemas-error",
"name": "OpenAPI Response Schemas Error",
"icon": "",
"description": "Have schemas to show one or many schemas of responses for different types of API requests",
"message": "Response MUST Have Schemas",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Responses","Schemas"],
"rules": null
},{
"slug": "openapi-response-schemas-info",
"name": "OpenAPI Response Schemas Info",
"icon": "",
"description": "Have schemas to show one or many schemas of responses for different types of API requests",
"message": "ResponseHas Schemas",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;]",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Responses","Schemas"],
"rules": null
},{
"slug": "openapi-response-schemas-ref-error",
"name": "OpenAPI Response Schemas Ref Error",
"icon": "",
"description": "Have example references to show one or many schemas of responses for different types of API requests",
"message": "Responses MUST Use Schemas Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].schemas.*",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Responses","Schemas"],
"rules": null
},{
"slug": "openapi-response-schemas-ref-error",
"name": "OpenAPI Response Schemas Ref Info",
"icon": "",
"description": "Have example references to show one or many schemas of responses for different types of API requests",
"message": "Responses Uses Schemas Reference",
"given": "$.paths.*.get.responses.200.content[&#39;application/json&#39;].schemas.*",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Responses","Schemas"],
"rules": null
},{
"slug": "openapi-response-success-hal-json-info",
"name": "OpenAPI Response Success HAL JSON",
"icon": "file-text",
"description": "Success responses (2XX excluding 204) should use application/hal+json media type to provide hypermedia links that enable clients to discover related resources and actions, following the HAL specification.",
"message": "Success responses SHOULD use application/hal+json media type.",
"given": "$.paths[*][*].responses[?(@property.match(/^2/) &amp;&amp; @property != &#39;204&#39;)].content",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Responses","HAL","Hypermedia"],
"rules": null
},{
"slug": "openapi-schema-description-error",
"name": "OpenAPI Schema Description Error",
"icon": "",
"description": "Schema should have descriptions that provide a narrative of what a schema object is for, and how it can be used, leaving examples to demonstrate what can actually be expected",
"message": "Schema MUST Have a Description.",
"given": "$.components.schemas.*",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-description-info",
"name": "OpenAPI Schema Description Info",
"icon": "",
"description": "Schema should have descriptions that provide a narrative of what a schema object is for, and how it can be used, leaving examples to demonstrate what can actually be expected",
"message": "Schemas Has a Description.",
"given": "$.components.schemas.*",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-description-length-error",
"name": "OpenAPI Schema Description Length Error",
"icon": "",
"description": "Schema should have a length limit applied, restricting how long schema descriptions can be, helping keep them concise and consistent",
"message": "Schema Description MUST be Less Than 250 Characters",
"given": "$.components.schemas.*",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-names-error",
"name": "OpenAPI Schema Names Pascal Case Error",
"icon": "",
"description": "Schema names, keeping the naming of them consistent across APIs, standardizing how consumers can use in their applications.",
"message": "Schema Names MUST Exist",
"given": "$.components.schemas",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-names-info",
"name": "OpenAPI Schema Names Info",
"icon": "",
"description": "Schema names, keeping the naming of them consistent across APIs, standardizing how consumers can use in their applications.",
"message": "Schema Names Exist",
"given": "$.components.schemas",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-names-length-error",
"name": "OpenAPI Schema Names Length Error",
"icon": "",
"description": "Schema should have a length limit applied keeping the names of schema consistent across APIs",
"message": "Schema Names MUST Be Less Than 25 Characters",
"given": "$.components.schemas",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Metadata","Default","Documentation"],
"rules": null
},{
"slug": "openapi-schema-names-pascal-case-error",
"name": "OpenAPI Schema Names Pascal Case Error",
"icon": "",
"description": "Schema names are pascal case, keeping the naming of them consistent across APIs, standardizing how consumers can use in their applications",
"message": "Schema Names MUST Be PascalCase.",
"given": "$.components.schemas",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Metadata"],
"rules": null
},{
"slug": "openapi-schema-names-pascal-case-info",
"name": "OpenAPI Schema Names Pascal Case Info",
"icon": "",
"description": "Schema names are pascal case, keeping the naming of them consistent across APIs, standardizing how consumers can use in their applications",
"message": "Schema Names Are PascalCase.",
"given": "$.components.schemas",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Metadata"],
"rules": null
},{
"slug": "openapi-schema-names-snake-case-info",
"name": "OpenAPI Schema Names Snake Case",
"icon": "type",
"description": "Schema component keys should use snake_case naming convention for consistency, particularly in APIs that follow Python or Ruby conventions.",
"message": "Schema key SHOULD be snake_case.",
"given": "$.components.schemas.*~",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Naming","Casing"],
"rules": null
},{
"slug": "openapi-schema-properties-allowed-integer-format-error",
"name": "OpenAPI Schema Properties Allowed Integer Format Error",
"icon": "",
"description": "Schema integer properties should have a format property with int32 or int64 applied",
"message": "Type Format MUST Be int32 or int64.",
"given": "$.components.schemas.*.properties[?(@.type==&quot;integer&quot;)]",
"severity": "hint",
"view_sort": "G",
"tags": ["OpenAPI","Schema","Properties","Types"],
"rules": null
},{
"slug": "openapi-schema-properties-allowed-number-format-error",
"name": "OpenAPI Schema Properties Allowed Number Format Error",
"icon": "",
"description": "Schema integer properties should have a format property with int32 or int64 applied",
"message": "Schema Properties MUST Have Format",
"given": "$.components.schemas.*.properties[?(@.type==&quot;number&quot;)]",
"severity": "hint",
"view_sort": "G",
"tags": ["OpenAPI","Schema","Properties","Types"],
"rules": null
},{
"slug": "openapi-schema-properties-array-items-error",
"name": "OpenAPI Schema Properties Array Items Error",
"icon": "",
"description": "Schema properties that are of the type array must have an items property defined",
"message": "Schema Array Properties MUST Have Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "H",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-array-items-info",
"name": "OpenAPI Schema Properties Array Items Info",
"icon": "",
"description": "Schema properties that are of the type array must have an items property defined",
"message": "Schema Array Properties Has Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "H",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-array-maxitems-error",
"name": "OpenAPI Schema Properties Array Maxitems Error",
"icon": "",
"description": "Schema properties that are of the type array should have a max items property defined",
"message": "Schema Array Properties MUST Have Max Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "HB",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-array-maxitems-info",
"name": "OpenAPI Schema Properties Array Maxitems Info",
"icon": "",
"description": "Schema properties that are of the type array should have a max items property defined",
"message": "Schema Array Properties Have Max Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "HB",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-array-minitems-error",
"name": "OpenAPI Schema Properties Array Minitems Error",
"icon": "",
"description": "Schema properties that are of the type array should have a min items property defined",
"message": "Schema Array Properties MUST Have Min Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "HA",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-array-minitems-info",
"name": "OpenAPI Schema Properties Array Minitems Info",
"icon": "",
"description": "Schema properties that are of the type array should have a min items property defined",
"message": "Schema Array Properties Have Min Items",
"given": "$.components.schemas.*.properties[?(@.type==&quot;array&quot;)]",
"severity": "info",
"view_sort": "HA",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-boolean-naming-warn",
"name": "OpenAPI Schema Properties Boolean Naming",
"icon": "toggle-left",
"description": "Boolean properties should not use an "is" prefix in their names. The property type already indicates it is a boolean, and the "is" prefix adds unnecessary verbosity.",
"message": "Boolean properties SHOULD NOT use an "is" prefix.",
"given": "$..[?(@.type==&quot;boolean&quot;)]~",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Properties","Naming","Boolean"],
"rules": null
},{
"slug": "openapi-schema-properties-datetime-naming-warn",
"name": "OpenAPI Schema Properties DateTime Naming",
"icon": "calendar",
"description": "DateTime properties (format date-time) should include a temporal suffix such as At, Date, Time, or On to clearly communicate that the value represents a point in time.",
"message": "DateTime properties SHOULD use a temporal suffix (At, Date, Time, On).",
"given": "$..[?(@.format==&quot;date-time&quot;)]~",
"severity": "warn",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Properties","Naming","DateTime"],
"rules": null
},{
"slug": "openapi-schema-properties-define-number-maximum-error",
"name": "OpenAPI Schema Properties Define Number Maximum Error",
"icon": "",
"description": "Schema properties that are of the type number should have a maximum property defined",
"message": "Schema Number Properties MUST Have Maximum",
"given": "$.components.schemas.*.properties[?(@.type==&quot;number&quot;)]",
"severity": "error",
"view_sort": "FA",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-define-number-minimum-error",
"name": "OpenAPI Schema Properties Define Number Minimum Error",
"icon": "",
"description": "Schema properties that are of the type number should have a minimum property defined",
"message": "Schema Number Properties MUST Have Minimum",
"given": "$.components.schemas.*.properties[?(@.type==&quot;number&quot;)]",
"severity": "error",
"view_sort": "FA",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-descriptions-error",
"name": "OpenAPI Schema Properties Descriptions Error",
"icon": "",
"description": "Schema properties should have descriptions that provide a narrative of the property contains, and how it can be used",
"message": "Schema Properties MUST Have Description",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "C",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-descriptions-info",
"name": "OpenAPI Schema Properties Descriptions Info",
"icon": "",
"description": "Schema properties should have descriptions that provide a narrative of the property contains, and how it can be used",
"message": "Schema Properties Have Description",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-descriptions-length-error",
"name": "OpenAPI Schema Properties Descriptions Length Error",
"icon": "",
"description": "Schema property descriptions should have a length limit applied, applying constraints to writing descriptions, and keeping consistent across APIs",
"message": "Schema Properties Description MUST Have 250 Characters",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "CA",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-enum-casing-error",
"name": "OpenAPI Schema Properties Enum Casing Error",
"icon": "",
"description": "Schema property enumerators are consistent casing, keeping all entries upper snake case, and consistent across all APIs",
"message": "Schema Property Enum MUST Be Upper Snake Case",
"given": "$.components.schemas.*.properties.*.enum.*",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Schema","Properties","Enumerators","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-enum-casing-info",
"name": "OpenAPI Schema Properties Enum Casing Info",
"icon": "",
"description": "Schema property enumerators are consistent casing, keeping all entries upper snake case, and consistent across all APIs",
"message": "Schema Property Enum Are Upper Snake Case",
"given": "$.components.schemas.*.properties.*.enum.*",
"severity": "error",
"view_sort": "J",
"tags": ["OpenAPI","Schema","Properties","Enumerators","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-enum-info",
"name": "OpenAPI Schema Properties Enum Info",
"icon": "",
"description": "Schema property has enumerators, providing consistent values chosen by consumers when making requests",
"message": "Schema Property Have Enum",
"given": "$.components.schemas.*.properties.*",
"severity": "info",
"view_sort": "I",
"tags": ["OpenAPI","Schema","Properties","Enumerators"],
"rules": null
},{
"slug": "openapi-schema-properties-error",
"name": "OpenAPI Schema Properties Error",
"icon": "",
"description": "Schema has properties, providing more detail regarding the structure of each schema being applied as part of a request or a response",
"message": "Schema MUST Have Properties",
"given": "$.components.schemas[?(@.type==&quot;object&quot;)]",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Properties"],
"rules": null
},{
"slug": "openapi-schema-properties-info",
"name": "OpenAPI Schema Properties Info",
"icon": "",
"description": "Schema has properties, providing more detail regarding the structure of each schema being applied as part of a request or a response",
"message": "Schema Have Properties",
"given": "$.components.schemas[?(@.type==&quot;object&quot;)]",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Schema","Properties"],
"rules": null
},{
"slug": "openapi-schema-properties-names-camel-case-error",
"name": "OpenAPI Schema Properties Names Camel Case Error",
"icon": "",
"description": "Schema property names are camel case, providing consistent casing across all the schema properties used by APIs",
"message": "Schema Property Names MUST Be camelCase.",
"given": "$.components.schemas.*.properties",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-names-camel-case-info",
"name": "OpenAPI Schema Properties Names Camel Case Info",
"icon": "",
"description": "Schema property names are camel case, providing consistent casing across all the schema properties used by APIs",
"message": "Schema Property Names Are camelCase.",
"given": "$.components.schemas.*.properties",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-names-length-error",
"name": "OpenAPI Schema Properties Names Length Error",
"icon": "",
"description": "Schema property names have a length restriction applied, keeping names consistent, and avoiding being too long",
"message": "Schema Properties Name Length",
"given": "$.components.schemas.*.properties",
"severity": "error",
"view_sort": "BA",
"tags": ["OpenAPI","Schema","Properties","Metadata","Default"],
"rules": null
},{
"slug": "openapi-schema-properties-string-maxlength-error",
"name": "OpenAPI Schema Properties String Maxlength Error",
"icon": "",
"description": "Schema properties that are of the string type have the max length applied defining the shape of the property",
"message": "Schema String Properties MUST Have Maximum Length",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "F",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-string-maxlength-info",
"name": "OpenAPI Schema Properties String Maxlength Info",
"icon": "",
"description": "Schema properties that are of the string type have the max length applied defining the shape of the property",
"message": "Schema String Properties Has Maximum Length",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-string-minlength-error",
"name": "OpenAPI Schema Properties String Minlength Error",
"icon": "",
"description": "Schema properties that are of the string type have the min length applied defining the shape of the property",
"message": "Schema String Properties MUST Have Minimum Length",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-string-minlength-info",
"name": "OpenAPI Schema Properties String Minlength Info",
"icon": "",
"description": "Schema properties that are of the string type have the min length applied defining the shape of the property",
"message": "Schema String Properties Has Minimum Length",
"given": "$.components.schemas.*.properties[?(@.type == &#39;string&#39;)]",
"severity": "info",
"view_sort": "E",
"tags": ["OpenAPI","Schema","Properties","Types","Default","Security"],
"rules": null
},{
"slug": "openapi-schema-properties-type-defined-error",
"name": "OpenAPI Schema Properties Type Defined",
"icon": "check-square",
"description": "All schema properties must have a type explicitly defined to ensure proper validation, code generation, and documentation. Properties without types are ambiguous and error-prone.",
"message": "Schema properties MUST have a type defined.",
"given": "$..properties.*",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Properties","Types"],
"rules": null
},{
"slug": "openapi-schema-required-error",
"name": "OpenAPI Schema Required Error",
"icon": "",
"description": "Schema should have a required property defined, being explicit about which properties have to be included with the schema when it is used as part of a request or response",
"message": "Schema MUST Have Required Property",
"given": "$.components.schemas[?(@.type==&quot;object&quot;)]",
"severity": "error",
"view_sort": "E",
"tags": ["OpenAPI","Schema","Required"],
"rules": null
},{
"slug": "openapi-schema-required-info",
"name": "OpenAPI Schema Required Info",
"icon": "",
"description": "Schema should have a required property defined, being explicit about which properties have to be included with the schema when it is used as part of a request or response",
"message": "Schema Has Required Property",
"given": "$.components.schemas[?(@.type==&quot;object&quot;)]",
"severity": "info",
"view_sort": "F",
"tags": ["OpenAPI","Schema","Required"],
"rules": null
},{
"slug": "openapi-schema-required-no-default-error",
"name": "OpenAPI Schema Required No Default",
"icon": "alert-circle",
"description": "Required properties should not have default values. If a property is required, the client must provide it explicitly. Having a default on a required property creates confusion about whether the client needs to send it.",
"message": "Required properties MUST NOT have default values.",
"given": "$..[?(@.required)]..properties[?(@.default)]",
"severity": "error",
"view_sort": "B",
"tags": ["OpenAPI","Schema","Required","Defaults"],
"rules": null
},{
"slug": "openapi-schema-type-error",
"name": "OpenAPI Schema Type Error",
"icon": "",
"description": "Schema should have a type defined, being explicit about type of data a schema describes and can be used to validate, helping standardize the type of data being made available",
"message": "Schema MUST Have Type Property",
"given": "$.components.schemas.*",
"severity": "error",
"view_sort": "D",
"tags": ["OpenAPI","Schema","Types","Default"],
"rules": null
},{
"slug": "openapi-schema-type-info",
"name": "OpenAPI Schema Type Info",
"icon": "",
"description": "Schema should have a type defined, being explicit about type of data a schema describes and can be used to validate, helping standardize the type of data being made available",
"message": "Schema Has Type Property",
"given": "$.components.schemas.*",
"severity": "info",
"view_sort": "D",
"tags": ["OpenAPI","Schema","Types","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-error",
"name": "OpenAPI Security Schemes API Keys Error",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations.",
"message": "Components MUST Have a Security Schemes API Keys",
"given": "$.components",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-in-error",
"name": "OpenAPI Security Schemes API Keys In Header Error",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a in of header set.",
"message": "Components MUST Have a Security Schemes API Keys In Header",
"given": "$.components",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-info",
"name": "OpenAPI Security Schemes API Keys In Header Info",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a in of header set.",
"message": "Components Have a Security Schemes",
"given": "$.components",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-info",
"name": "OpenAPI Security Schemes API Keys Info",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations.",
"message": "Components Have a Security Schemes",
"given": "$.components",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-name-error",
"name": "OpenAPI Security Schemes API Keys Name Error",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a name of api_key set.",
"message": "Components MUST Have a Security Schemes API Keys",
"given": "$.components",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-name-info",
"name": "OpenAPI Security Schemes API Keys Name Info",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a name of api_key set.",
"message": "Components Have a Security Schemes",
"given": "$.components",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-type-error",
"name": "OpenAPI Security Schemes API Keys Type Error",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a type of apiKey set.",
"message": "Components MUST Have a Security Schemes API Keys",
"given": "$.components",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-api-key-type-info",
"name": "OpenAPI Security Schemes API Keys Type Info",
"icon": "",
"description": "Having components security schemes which possesses an api-key property that allows to configure how API keys are applied to operations have a type of apiKey set.",
"message": "Components Have a Security Schemes",
"given": "$.components",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-error",
"name": "OpenAPI Security Schemes Error",
"icon": "",
"description": "Having components security schemes ensures that the security definition for an API have been standardized and are able to be applied across APIs",
"message": "Components MUST Have a Security Schemes",
"given": "$.components",
"severity": "error",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-security-schemes-info",
"name": "OpenAPI Security Schemes Info",
"icon": "",
"description": "Having components security schemes ensures that the security definition for an API have been standardized and are able to be applied across APIs",
"message": "Components Have a Security Schemes",
"given": "$.components",
"severity": "info",
"view_sort": "A",
"tags": ["OpenAPI","Security","Default"],
"rules": null
},{
"slug": "openapi-tags-alphabetical-error",
"name": "OpenAPI Tags Alphabetical Error",
"icon": "",
"description": "The tags used to organize operations should be available in an alphabetical format keeping easy to navigate for consumers.",
"message": "Tags MUST Be Alphabetical",
"given": "$.tags[*]",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-description-error",
"name": "OpenAPI Tags Description Error",
"icon": "",
"description": "Tags used as part of an OpenAPI should have descriptions, providing more of a narrative behind what a tag means when it is applied to an API",
"message": "Tags MUST Have a Description",
"given": "$.tags[*]",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-description-info",
"name": "OpenAPI Tags Description Info",
"icon": "",
"description": "Tags used as part of an OpenAPI should have descriptions, providing more of a narrative behind what a tag means when it is applied to an API",
"message": "Tags Have a Description",
"given": "$.tags[*]",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-name-error",
"name": "OpenAPI Tags Name Error",
"icon": "",
"description": "Tags used as part of an OpenAPI should have names, providing a simple key word or phrase that represents the tag being applied to APIs",
"message": "Tags MUST Have a Name",
"given": "$.tags[*]",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-name-info",
"name": "OpenAPI Tags Name Info",
"icon": "",
"description": "Tags used as part of an OpenAPI should have names, providing a simple key word or phrase that represents the tag being applied to APIs",
"message": "Tags Have a Name",
"given": "$.tags[*]",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-object-error",
"name": "OpenAPI Tags Object Error",
"icon": "",
"description": "There needs to be a central tags object applied to the OpenAPI, providing central tags that can be applied across all operations within an OpenAPI",
"message": "OpenAPIs MUST Have a Tag Object",
"given": "$",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-object-info",
"name": "OpenAPI Tags Object Info",
"icon": "",
"description": "There needs to be a central tags object applied to the OpenAPI, providing central tags that can be applied across all operations within an OpenAPI",
"message": "OpenAPIs Have a Tag Object",
"given": "$",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-one-error",
"name": "OpenAPI Tags One Error",
"icon": "",
"description": "There needs to be at least one tag applied to an OpenAPI, providing a key word or phrase that can be applied to API operations",
"message": "MUST Be At Least One Tag",
"given": "$",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-tags-upper-case-error",
"name": "OpenAPI Tags Upper Case Error",
"icon": "",
"description": "The first letter of each word in a tag being applied to APIs needs to be capitalized, keeping the tags being applied across APIs the same look and feel for organizing and publishing to documentation",
"message": "Tag Names MUST Have First Letter in Each Word Capitalized",
"given": "$.tags.*.name",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Tags","Default"],
"rules": null
},{
"slug": "openapi-version-date-format-info",
"name": "OpenAPI Version Date Format",
"icon": "calendar",
"description": "API versions using date-based format should follow the YYYY-MM-DD pattern, optionally followed by a -preview suffix for pre-release versions.",
"message": "API version SHOULD follow YYYY-MM-DD format.",
"given": "$.info.version",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Info","Version","Date"],
"rules": null
},{
"slug": "openapi-version-date-info",
"name": "OpenAPI Version Date Info",
"icon": "",
"description": "Publishing a version for your OpenAPI technical contract helps you communicate change with consumers using date-based versioning published to the info version property",
"message": "Date Versioning",
"given": "$.info.version",
"severity": "info",
"view_sort": "C",
"tags": ["OpenAPI","Versions"],
"rules": null
},{
"slug": "openapi-version-in-path-error",
"name": "OpenAPI Version In Path Error",
"icon": "",
"description": "The majority of public APIs available on the Web today put the major version of the API as part of the path for each API",
"message": "Version in Path",
"given": "$.paths[*]~",
"severity": "error",
"view_sort": "",
"tags": ["OpenAPI","Versions","Paths"],
"rules": null
},{
"slug": "openapi-version-in-path-info",
"name": "OpenAPI Version In Path Info",
"icon": "",
"description": "The majority of public APIs available on the Web today put the major version of the API as part of the path for each API",
"message": "Version in Path",
"given": "$.paths[*]~",
"severity": "info",
"view_sort": "",
"tags": ["OpenAPI","Versions","Paths"],
"rules": null
},{
"slug": "openapi-version-semantic-info",
"name": "OpenAPI Version Semantic Info",
"icon": "",
"description": "Publishing a version for your OpenAPI technical contract helps you communicate change with consumers using Semantic versioning published to the info version property",
"message": "Semantic Versioning",
"given": "$.info.version",
"severity": "info",
"view_sort": "B",
"tags": ["OpenAPI","Versions"],
"rules": null
},{
"slug": "owasp-api1-2023-no-numeric-ids-error",
"name": "OWASP API1 2023 No Numeric IDs",
"icon": "fingerprint",
"description": "Use random IDs that cannot be guessed. UUIDs are preferred but any other random string will do. Using numeric IDs can lead to enumeration attacks where attackers iterate through possible ID values.",
"message": "Use random IDs that cannot be guessed, UUIDs are preferred.",
"given": "$.paths..parameters[*]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Identifiers","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-auth-insecure-schemes-error",
"name": "OWASP API2 2023 Auth Insecure Schemes",
"icon": "shield",
"description": "There are many HTTP authorization schemes but some of them are now considered insecure, such as negotiating authentication using specifications like NTLM or OAuth v1.",
"message": "Authentication scheme is considered outdated or insecure.",
"given": "$.components.securitySchemes[?(@.type==&quot;http&quot;)].scheme",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Authentication","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-jwt-best-practices-error",
"name": "OWASP API2 2023 JWT Best Practices",
"icon": "lock",
"description": "JSON Web Token implementations must explicitly declare support for RFC8725 to address common pitfalls like ignoring algorithms or using insecure algorithms in JWT validation.",
"message": "Security schemes using JWTs must explicitly declare support for RFC8725 in the description.",
"given": "$.components.securitySchemes[?(@.bearerFormat==&quot;jwt&quot; || @.bearerFormat==&quot;JWT&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","JWT","Authentication","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-no-api-keys-in-url-error",
"name": "OWASP API2 2023 No API Keys in URL",
"icon": "key",
"description": "API Keys are passed in headers, cookies or query parameters to access APIs. Those keys can be eavesdropped, especially when they are passed in the URL as logging or history tools will keep track of them and potentially expose them.",
"message": "API Key MUST NOT be passed in URL (path or query parameters).",
"given": "$.components.securitySchemes[?(@.type==&quot;apiKey&quot;)].in",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","API Keys","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-no-credentials-in-url-error",
"name": "OWASP API2 2023 No Credentials in URL",
"icon": "shield",
"description": "URL parameters MUST NOT contain credentials such as API key, password, or secret. This is a security risk as URLs are often logged and cached.",
"message": "Security credentials detected in path parameter.",
"given": "$..parameters[?(@.in.match(/query|path/))].name",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Credentials","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-no-http-basic-error",
"name": "OWASP API2 2023 No HTTP Basic",
"icon": "lock",
"description": "Basic authentication credentials transported over network are more susceptible to interception than other forms of authentication, and as they are not encrypted it means passwords and tokens are more easily leaked.",
"message": "Security scheme uses HTTP Basic. Use a more secure authentication method, like OAuth 2 or OpenID.",
"given": "$.components.securitySchemes[*]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Authentication","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-read-restricted-warn",
"name": "OWASP API2 2023 Read Restricted",
"icon": "lock",
"description": "Read operations (GET, HEAD) should be secured by at least one security scheme to prevent unauthorized access to sensitive data.",
"message": "This read operation is not protected by any security scheme.",
"given": "$.paths[*][get,head]",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Operations","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-short-lived-access-tokens-error",
"name": "OWASP API2 2023 Short Lived Access Tokens",
"icon": "clock",
"description": "Using short-lived access tokens is a good practice. When using OAuth 2, this is done by using refresh tokens. If a malicious actor is able to get hold of an access token then rotation means that token might not work by the time they try to use it.",
"message": "Authentication scheme does not appear to support refresh tokens.",
"given": "$.components.securitySchemes[?(@.type==&quot;oauth2&quot;)].flows[?(@property != &quot;clientCredentials&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","OAuth","Tokens","OpenAPI"],
"rules": null
},{
"slug": "owasp-api2-2023-write-restricted-error",
"name": "OWASP API2 2023 Write Restricted",
"icon": "lock",
"description": "All write operations (POST, PUT, PATCH, DELETE) must be secured by at least one security scheme to prevent unauthorized modifications.",
"message": "This write operation is not protected by any security scheme.",
"given": "$.paths[*][post,put,patch,delete]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Operations","OpenAPI"],
"rules": null
},{
"slug": "owasp-api3-2023-no-additional-properties-warn",
"name": "OWASP API3 2023 No Additional Properties",
"icon": "shield",
"description": "By default JSON Schema allows additional properties, which can potentially lead to mass assignment issues, where unspecified fields are passed to the API without validation. Disable them with additionalProperties set to false or add maxProperties.",
"message": "If the additionalProperties keyword is used it must be set to false.",
"given": "$..[?(@.type==&quot;object&quot; &amp;&amp; @.additionalProperties)]",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-array-limit-error",
"name": "OWASP API4 2023 Array Limit",
"icon": "list",
"description": "Array size should be limited to mitigate resource exhaustion attacks. This can be done using maxItems. You should ensure that the subschema in items is constrained too.",
"message": "Schema of type array must specify maxItems.",
"given": "$..[?(@.type==&quot;array&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","Arrays","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-integer-format-error",
"name": "OWASP API4 2023 Integer Format",
"icon": "hash",
"description": "Integers should be limited to mitigate resource exhaustion attacks. Specifying whether int32 or int64 is expected via format helps enforce proper constraints.",
"message": "Schema of type integer must specify format (int32 or int64).",
"given": "$..[?(@.type==&quot;integer&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","Integers","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-integer-limit-error",
"name": "OWASP API4 2023 Integer Limit",
"icon": "hash",
"description": "Integers should be limited to mitigate resource exhaustion attacks. This can be done using minimum and maximum, which helps avoid negative numbers when positive are expected, or reducing unreasonable iterations.",
"message": "Schema of type integer must specify minimum and maximum.",
"given": "$..[?(@.type==&quot;integer&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","Integers","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-rate-limit-error",
"name": "OWASP API4 2023 Rate Limit",
"icon": "gauge",
"description": "Define proper rate limiting to avoid attackers overloading the API. There are many ways to implement rate-limiting, but most of them involve using HTTP headers. All 2XX and 4XX responses should define rate limiting headers.",
"message": "All 2XX and 4XX responses should define rate limiting headers.",
"given": "$.paths[*]..responses[?(@property.match(/^(2|4)/))]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Rate Limiting","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-rate-limit-responses-429-warn",
"name": "OWASP API4 2023 Rate Limit Responses 429",
"icon": "gauge",
"description": "A HTTP 429 response signals the API client is making too many requests, and will supply information about when to retry so that the client can back off calmly without everything breaking. All operations should define a 429 response.",
"message": "Operation is missing rate limiting response (429).",
"given": "$.paths..responses",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Rate Limiting","Responses","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-rate-limit-retry-after-error",
"name": "OWASP API4 2023 Rate Limit Retry After",
"icon": "clock",
"description": "Define proper rate limiting to avoid attackers overloading the API. Part of that involves setting a Retry-After header so well-meaning consumers are not polling and potentially exacerbating problems.",
"message": "A 429 response should define a Retry-After header.",
"given": "$..responses[429].headers",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Rate Limiting","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-string-limit-error",
"name": "OWASP API4 2023 String Limit",
"icon": "text",
"description": "String size should be limited to mitigate resource exhaustion attacks. This can be done using maxLength, enum, or const.",
"message": "Schema of type string must specify maxLength, enum, or const.",
"given": "$..[?(@.type==&quot;string&quot;)]",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","Strings","OpenAPI"],
"rules": null
},{
"slug": "owasp-api4-2023-string-restricted-warn",
"name": "OWASP API4 2023 String Restricted",
"icon": "text",
"description": "To avoid unexpected values being sent or leaked, strings should have a format, RegEx pattern, enum, or const to restrict the possible values.",
"message": "Schema of type string should specify a format, pattern, enum, or const.",
"given": "$..[?(@.type==&quot;string&quot;)]",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Schema","Strings","OpenAPI"],
"rules": null
},{
"slug": "owasp-api7-2023-concerning-url-parameter-info",
"name": "OWASP API7 2023 Concerning URL Parameter",
"icon": "globe",
"description": "Using external resource URLs based on user input for webhooks, file fetching, custom SSO, URL previews, or redirects can lead to Server Side Request Forgery (SSRF) and other security issues.",
"message": "Make sure to review the way this URL parameter is handled to protect against Server Side Request Forgery.",
"given": "$.paths[*].parameters[*].name",
"severity": "info",
"view_sort": "B",
"tags": ["OWASP","Security","SSRF","Parameters","OpenAPI"],
"rules": null
},{
"slug": "owasp-api8-2023-define-cors-origin-error",
"name": "OWASP API8 2023 Define CORS Origin",
"icon": "globe",
"description": "Setting up CORS headers will control which websites can make browser-based HTTP requests to your API. The Access-Control-Allow-Origin header should be defined on all responses.",
"message": "Header Access-Control-Allow-Origin should be defined on all responses.",
"given": "$.paths[*][*].responses[*].headers",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","CORS","Headers","OpenAPI"],
"rules": null
},{
"slug": "owasp-api8-2023-define-error-responses-401-warn",
"name": "OWASP API8 2023 Define Error Responses 401",
"icon": "alert-triangle",
"description": "OWASP API Security recommends defining schemas for all responses, even errors. The 401 describes what happens when a request is unauthorized, so it is important to define this for documentation and contract testing.",
"message": "Operation is missing a 401 error response.",
"given": "$.paths..responses",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Responses","Authentication","OpenAPI"],
"rules": null
},{
"slug": "owasp-api8-2023-define-error-responses-500-warn",
"name": "OWASP API8 2023 Define Error Responses 500",
"icon": "alert-triangle",
"description": "OWASP API Security recommends defining schemas for all responses, even errors. The 500 describes what happens when a request fails with an internal server error, so it is important to define this for documentation and contract testing.",
"message": "Operation is missing a 500 error response.",
"given": "$.paths..responses",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Responses","Errors","OpenAPI"],
"rules": null
},{
"slug": "owasp-api8-2023-define-error-validation-warn",
"name": "OWASP API8 2023 Define Error Validation",
"icon": "alert-triangle",
"description": "Carefully define schemas for all the API responses, including either 400, 422 or 4XX responses which describe errors caused by invalid requests.",
"message": "Missing error validation response of either 400, 422, or 4XX.",
"given": "$.paths..responses",
"severity": "warn",
"view_sort": "B",
"tags": ["OWASP","Security","Responses","Validation","OpenAPI"],
"rules": null
},{
"slug": "owasp-api8-2023-no-server-http-error",
"name": "OWASP API8 2023 No Server HTTP",
"icon": "lock",
"description": "Server interactions must not use http:// as it is inherently insecure and can lead to PII and other sensitive information being leaked through traffic sniffing or man-in-the-middle attacks. Use https:// or wss:// instead.",
"message": "Server URLs must not use http://. Use https:// or wss:// instead.",
"given": "$.servers..url",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Transport","Servers","OpenAPI"],
"rules": null
},{
"slug": "owasp-api9-2023-inventory-access-error",
"name": "OWASP API9 2023 Inventory Access",
"icon": "server",
"description": "Servers should use the x-internal vendor extension set to true or false to explicitly declare the intended audience for the API, which will be picked up by most documentation tools.",
"message": "Declare intended audience of every server by defining x-internal as true or false.",
"given": "$.servers.*",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Servers","Inventory","OpenAPI"],
"rules": null
},{
"slug": "owasp-api9-2023-inventory-environment-error",
"name": "OWASP API9 2023 Inventory Environment",
"icon": "server",
"description": "Make it clear which servers are expected to run in which environment to avoid unexpected problems, exposing test data to the public, or letting bad actors bypass security measures to reach production-like environments.",
"message": "Declare intended environment in server descriptions using terms like local, staging, or production.",
"given": "$.servers.*.description",
"severity": "error",
"view_sort": "B",
"tags": ["OWASP","Security","Servers","Inventory","OpenAPI"],
"rules": null
}]