OpenAPI agent-readiness lint · Openapi Lint

by OpenAPI agent-readiness lint

POSTBaseSolanaArbitrumPolygonMonadAvalancheeip155:1329OptimismFraxtaleip155:42220stellar:pubnetalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=

$0.002

per call · USD Coin on Base

Score an OpenAPI 3.x or Swagger 2.x spec on agent-readiness - i.e. does an LLM-driven caller have what it needs to call the API correctly without guessing. Returns a 0..100 score, severity counts, and a structured list of violations with stable rule codes. Checks: documented title/servers/paths, per-operation summary/description/operationId/tags, documented 2xx + error responses, param descriptions/schemas/examples, response descriptions, JSON response schemas.

Endpoint

POST https://agent402.tools/api/openapi-lint

4

Calls / 30d

1

Unique payers / 30d

Aug 31

Last called

exact

Payment scheme

Call this service

TypeScript · @x402/fetch
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPay("https://agent402.tools/api/openapi-lint", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "spec": {
      "info": {
        "description": "An example API",
        "title": "Demo",
        "version": "1.0.0"
      },
      "openapi": "3.0.0",
      "paths": {
        "/users": {
          "get": {
            "parameters": [
              {
                "description": "Max results",
                "in": "query",
                "name": "limit",
                "schema": {
                  "example": 10,
                  "type": "integer"
                }
              }
            ],
            "responses": {
              "200": {
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "array"
                    }
                  }
                },
                "description": "ok"
              },
              "400": {
                "description": "bad input"
              }
            },
            "summary": "List users",
            "tags": [
              "users"
            ]
          }
        }
      },
      "servers": [
        {
          "url": "https://api.example.com"
        }
      ]
    }
  }),
});
const data = await res.json();
cURL
curl -X POST \
  "https://agent402.tools/api/openapi-lint" \
  -H "Content-Type: application/json" \
  -d '{"spec":{"info":{"description":"An example API","title":"Demo","version":"1.0.0"},"openapi":"3.0.0","paths":{"/users":{"get":{"parameters":[{"description":"Max results","in":"query","name":"limit","schema":{"example":10,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array"}}},"description":"ok"},"400":{"description":"bad input"}},"summary":"List users","tags":["users"]}}},"servers":[{"url":"https://api.example.com"}]}}' \
  -H "X-PAYMENT: <signed x402 payment>"

Example response

{
  "counts": {
    "error": 0,
    "info": 0,
    "warning": 1
  },
  "ok": true,
  "score": 97,
  "violations": [
    {
      "location": "GET /users",
      "message": "Operation has no operationId - agents can't refer to this call by a stable name.",
      "rule": "operation-missing-operationid",
      "severity": "warning"
    }
  ]
}

Payment details

Pay to0xabf4fabd7c416fb67202e5f9002389fc75e2a9d0
AssetUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
NetworksBase, Solana, Arbitrum, Polygon, Monad, Avalanche, eip155:1329, Optimism, Fraxtal, eip155:42220, stellar:pubnet, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
Schemesexact, upto

Is this your API?

Pin it to the top of Developer Tools and the homepage with a featured placement.

Get featured →

More from OpenAPI agent-readiness lint & similar services