{"slug":"agent402-tools-api-openapi-lint-e8a31f","title":"Score an OpenAPI 3.x or Swagger 2.x spec on agent-readiness","host":"agent402.tools","method":"POST","resource":"https://agent402.tools/api/openapi-lint","category":"code","description":"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","price_listed":0.002,"price_asked":0.002,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":1058,"reported_calls_30d":5,"reported_payers_30d":1,"networks":["algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=","eip155:10","eip155:1329","eip155:137","eip155:143","eip155:42161","eip155:42220","eip155:43114","eip155:4663","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","stellar:pubnet"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"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"}]}},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"properties":{"spec":{"description":"OpenAPI/Swagger document (object or JSON string)"}},"required":["spec"]},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"counts":{"properties":{"error":{"type":"integer"},"info":{"type":"integer"},"warning":{"type":"integer"}},"type":"object"},"ok":{"type":"boolean"},"score":{"type":"integer"},"violations":{"items":{"properties":{"location":{"type":"string"},"message":{"type":"string"},"rule":{"type":"string"},"severity":{"type":"string"}},"type":"object"},"type":"array"}},"required":["ok","score","counts","violations"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.002,"price_match":true,"latency_ms":1058,"error":null}],"description_full":"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.","last_updated":"2026-09-21T11:12:29.972Z","schemes":["exact","upto"]}