# MoneyTools OpenAPI Linter

> MoneyTools OpenAPI Linter is a paid API for AI agents from tools.moneytools.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-11-05).

Lints an OpenAPI/Swagger spec (by URL or inline) for agent-readiness issues: operationIds, descriptions, responses, undeclared path params, missing security schemes, servers, and x402 payment info

## Facts

- Endpoint: GET https://tools.moneytools.dev/v1/openapi-lint?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-05
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/moneytools-openapi-linter-8d40c1ef
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PNw7UreQyl2mRdRnNMuEr

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability moneytools-openapi-linter-8d40c1ef
```

Example prompt: Can you lint my OpenAPI spec at https://api.myservice.com/openapi.json and tell me what's missing — operationIds, descriptions, security schemes, server definitions, and anything that would block AI agent readiness?

## When to prefer this

Use this endpoint when you need automated, structured linting of an OpenAPI or Swagger spec specifically for agent-readiness gaps (operationIds, descriptions, x402 payment fields) rather than generic schema validation. It is the right choice when you want actionable, categorized findings in JSON rather than a human-readable report, and when the spec is accessible via a public URL or can be passed inline. Prefer this over general-purpose validators when x402 and AI-agent compatibility checks are a priority.

## Known failure modes

- Invalid or unreachable spec URL returns an error without charging
- Malformed JSON/YAML spec body results in a parse error
- Free tier exhausted (10/day) with no payment method returns HTTP 402 with PAYMENT-REQUIRED
- Missing required 'url' or 'spec' query param returns a validation error
- Spec too large or timeout causes a failure without charge

## How this service works

OpenAPI linter (agent readiness): Lint an OpenAPI/Swagger JSON or YAML: operationIds, descriptions, responses, undeclared path params, missing security schemes, servers, x402 payment info. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure. $0.003 USDC per call via x402 on Base. Run by MoneyTools.

## Output

A JSON object listing lint findings categorized by rule (missing operationIds, missing/thin descriptions, undeclared path parameters, missing security schemes, absent server definitions, x402 payment info gaps), plus payment metadata indicating whether the call was charged, the network, amount in USD, and transaction hash.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "url": {
       "type": "string",
       "examples": [
        "https://api.moneytools.dev/openapi.json"
       ],
       "description": "spec URL"
      },
      "spec": {
       "type": "object",
       "description": "or the spec (JSON object or YAML string)"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "properties": {
      "payment": {
       "type": "object",
       "properties": {
        "charged": {
         "type": "boolean"
        },
        "network": {
         "type": "string"
        },
        "amountUsd": {
         "type": "string"
        },
        "transaction": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      },
      "freeTier": {
       "type": "object"
      },
      "_moneytools": {
       "type": "object",
       "description": "optional plan / partner hints"
      }
     },
     "description": "Tool-specific JSON result (see llms.txt / openapi.json). Always includes payment info.",
     "additionalProperties": true
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/moneytools-openapi-linter-8d40c1ef/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tools.moneytools.dev](https://www.zero.xyz/host/tools.moneytools.dev/llms.txt)
