{
  "openapi": "3.1.0",
  "info": {
    "title": "ToolMint Domain Intel JSON",
    "version": "0.1.0",
    "description": "Domain/link legitimacy intel for AI agents: RDAP registration, DNS (SPF/DMARC), TLS/CT, redirects, newly-registered risk. Pay per call with USDC on Base via x402.",
    "x-guidance": "Use GET /intel?domain=example.com or GET /intel/{domain}. Unpaid calls receive HTTP 402 with x402 payment requirements (USDC on Base). Free: /, /health, /openapi.json, /.well-known/x402. Invalid domains get a free 400 before payment; 404/5xx responses are not settled. SSRF-guarded (https only, public hostnames only, redirects re-validated and capped). Heuristic signals, not a guarantee.",
    "contact": {
      "email": "toolmint.dev@gmail.com",
      "name": "ToolMint"
    }
  },
  "paths": {
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "Liveness",
        "security": [],
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/intel": {
      "get": {
        "operationId": "domain_intel_query",
        "summary": "Domain legitimacy intel by query param",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ],
          "network": "eip155:8453",
          "payTo": "0xfbF7413bcB3a604936775C96FDbe0b0C9c9E37F5",
          "asset": "USDC",
          "assetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "scheme": "exact",
          "amountAtomic": "20000"
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain or URL to inspect"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain intel JSON (only 2xx responses are charged)"
          },
          "400": {
            "description": "Invalid domain (rejected before payment; not charged)"
          },
          "402": {
            "description": "Payment Required"
          },
          "404": {
            "description": "Domain not found: RDAP 404 and NXDOMAIN (not charged)"
          },
          "502": {
            "description": "All upstream sources failed (not charged)"
          }
        }
      }
    },
    "/intel/{domain}": {
      "get": {
        "operationId": "domain_intel_path",
        "summary": "Domain legitimacy intel by path",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ],
          "network": "eip155:8453",
          "payTo": "0xfbF7413bcB3a604936775C96FDbe0b0C9c9E37F5",
          "asset": "USDC",
          "assetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "scheme": "exact",
          "amountAtomic": "20000"
        },
        "parameters": [
          {
            "name": "domain",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain name e.g. example.com"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain intel JSON (only 2xx responses are charged)"
          },
          "400": {
            "description": "Invalid domain (rejected before payment; not charged)"
          },
          "402": {
            "description": "Payment Required"
          },
          "404": {
            "description": "Domain not found: RDAP 404 and NXDOMAIN (not charged)"
          },
          "502": {
            "description": "All upstream sources failed (not charged)"
          }
        }
      }
    },
    "/check": {
      "get": {
        "operationId": "domain_intel_check",
        "summary": "Alias of /intel",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ],
          "network": "eip155:8453",
          "payTo": "0xfbF7413bcB3a604936775C96FDbe0b0C9c9E37F5",
          "asset": "USDC",
          "assetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "scheme": "exact",
          "amountAtomic": "20000"
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Domain intel JSON (only 2xx responses are charged)"
          },
          "400": {
            "description": "Invalid domain (rejected before payment; not charged)"
          },
          "402": {
            "description": "Payment Required"
          },
          "404": {
            "description": "Domain not found: RDAP 404 and NXDOMAIN (not charged)"
          },
          "502": {
            "description": "All upstream sources failed (not charged)"
          }
        }
      }
    }
  }
}