agentic‑readiness docs
/
Build one › Run a scan ›

DocsCapabilitiesOpenAPI description

OpenAPI description

A machine-readable contract for the site's API.

adoption Web baselinetrend ► flatchecked once per sitechecks 5verified 2026-08-12
Set up OpenAPI description on your site How to serve a machine-readable contract for your API, and where agents look for it.
Free Publish an OpenAPI description

Why an agent cares

It is the difference between an agent guessing at an API and calling it correctly first time. Most of what we flag is optional per the spec and load-bearing for an agent, such as a missing operationId or an absent server URL.

Adoption

Web baseline. Standard equipment on the web. Its absence is the exception rather than its presence. For this one in particular, the format is settled, but whether a site publishes its contract at all varies.

Direction of travel: ► flat, as at .

The de facto standard for describing REST APIs. The variable is not adoption but whether the contract is served publicly.

What we check

Absence is never a finding. Every check below runs only once openApiPresent is true, so a site that has not adopted this is not assessed on it and appears in no report. 5 of these 7 can fail it. In a Lumar crawl these land on one row per site, in the crawl-level table where itemType is openapi.
CheckSeverityRaisesOn whose authority
openApiInvalidDocumenthighusabilityLumar readiness profile
openApiInvalidVersionmediumusabilityLumar readiness profile
openApiMissingOperationIdmediumusabilityLumar readiness profile
openApiDuplicateOperationIdmediumconformance, usabilityspecification (OpenAPI 3.2.0)
openApiUntypedSchemamediumusabilityLumar readiness profile
openApiUnresolvedReferenceinformationalnothingspecification (OpenAPI 3.2.0)
openApiPartiallyAssessedcoverage notenothingour own coverage

Examples

Both of these are fixtures the test suite runs through the real collector, not snippets written for a document: the first is a shape we score as valid, the second is one we flag.

correctjsontest/e2e/test-pages/capabilities/correct.openapi.json
{
  "openapi": "3.1.0",
  "info": { "title": "Example Catalog API", "version": "1.0.0" },
  "paths": {
    "/pets": {
      "get": {
        "operationId": "listPets",
        "responses": {
          "200": {
            "description": "A list of pets",
            "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object" } } } }
          }
        }
      },
      "post": {
        "operationId": "createPet",
        "requestBody": {
          "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pet" } } }
        },
        "responses": {
          "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object" } } } }
        }
      }
    }
  }
}
present but wrongjsontest/e2e/test-pages/capabilities/issues.openapi.json
{
  "openapi": "3.1.0",
  "info": { "title": "Broken Catalog API", "version": "1.0.0" },
  "paths": {
    "/pets": {
      "get": {
        "responses": {
          "200": {
            "description": "A list of pets",
            "content": { "application/json": { "schema": {} } }
          }
        }
      }
    }
  }
}

Specifications

DocumentRevisionKind
OpenAPI Specification3.2 (any 3.x accepted)specification

Last re-read against the published documents: .