{
  "openapi": "3.1.0",
  "jsonSchemaDialect": "https://spec.openapis.org/oas/3.1/dialect/base",
  "info": {
    "title": "tools402",
    "version": "1.0.0",
    "description": "159 HTTP micro-APIs for AI agents. No account required to start (pay x402 direct). Optional API key for agents — sign once, one header per call.\n\nMachine-readable contract for autonomous agents. Full catalog: GET /v1/_meta.\nHuman guide: https://tools402.dev/llms.txt\n\nPaid calls: trust the live 402 quote (payTo, maxAmountRequired, asset).\nAPI key scope `pay` does not replace X-Payment / X-Session-Token on paid endpoints.\nWithdrawable balance: net ledger rows where settlement_id IS NULL.\nGET /v1/_health is served by _health_detailed (RPC, SQLite, facilitators)."
  },
  "servers": [
    {
      "url": "https://api.tools402.dev",
      "description": "Live API"
    }
  ],
  "tags": [
    {
      "name": "x402",
      "description": "Pay-per-call buyer flow (402 quote → pay → retry)"
    },
    {
      "name": "seller",
      "description": "Seller onboarding and endpoint publishing"
    },
    {
      "name": "api-keys",
      "description": "Optional Bearer credentials derived from wallet signature"
    },
    {
      "name": "utility",
      "description": "Catalog, health, and operational status"
    }
  ],
  "components": {
    "securitySchemes": {
      "T402Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "t402_live_",
        "description": "Optional API key issued via POST /v1/keys (wallet signature only). Prefix t402_live_. Revoked keys return 401 invalid_api_key."
      },
      "WalletSignature": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Documentary only — wallet auth is NOT Bearer. Sign EIP-712 SellerAction offline (domain below) and send signature + timestamp in the JSON body."
      }
    },
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "hint": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "issues": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "X402AcceptEntry": {
        "type": "object",
        "required": [
          "scheme",
          "network",
          "maxAmountRequired",
          "asset",
          "payTo",
          "resource",
          "description",
          "mimeType",
          "maxTimeoutSeconds",
          "extra"
        ],
        "properties": {
          "scheme": {
            "type": "string",
            "enum": [
              "exact",
              "transfer-with-authorization",
              "spl-transfer"
            ]
          },
          "network": {
            "type": "string",
            "enum": [
              "base",
              "polygon",
              "solana"
            ]
          },
          "maxAmountRequired": {
            "type": "string",
            "description": "USDC atomic units (6 decimals) as decimal string"
          },
          "asset": {
            "type": "string",
            "description": "USDC contract or mint address"
          },
          "payTo": {
            "type": "string",
            "description": "Buyer recipient for this chain"
          },
          "resource": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "maxTimeoutSeconds": {
            "type": "integer"
          },
          "extra": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "X402PaymentRequired": {
        "type": "object",
        "required": [
          "x402Version",
          "accepts",
          "error"
        ],
        "properties": {
          "x402Version": {
            "type": "integer",
            "const": 1
          },
          "accepts": {
            "type": "array",
            "minItems": 6,
            "maxItems": 6,
            "items": {
              "type": "object",
              "required": [
                "scheme",
                "network",
                "maxAmountRequired",
                "asset",
                "payTo",
                "resource",
                "description",
                "mimeType",
                "maxTimeoutSeconds",
                "extra"
              ],
              "properties": {
                "scheme": {
                  "type": "string",
                  "enum": [
                    "exact",
                    "transfer-with-authorization",
                    "spl-transfer"
                  ]
                },
                "network": {
                  "type": "string",
                  "enum": [
                    "base",
                    "polygon",
                    "solana"
                  ]
                },
                "maxAmountRequired": {
                  "type": "string",
                  "description": "USDC atomic units (6 decimals) as decimal string"
                },
                "asset": {
                  "type": "string",
                  "description": "USDC contract or mint address"
                },
                "payTo": {
                  "type": "string",
                  "description": "Buyer recipient for this chain"
                },
                "resource": {
                  "type": "string",
                  "format": "uri"
                },
                "description": {
                  "type": "string"
                },
                "mimeType": {
                  "type": "string"
                },
                "maxTimeoutSeconds": {
                  "type": "integer"
                },
                "extra": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
          },
          "error": {
            "type": "string"
          }
        }
      },
      "ApiKeyScope": {
        "type": "string",
        "enum": [
          "read",
          "balance:read",
          "endpoints:write",
          "pay",
          "payout:request"
        ],
        "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
      },
      "IssueApiKeyRequest": {
        "type": "object",
        "required": [
          "wallet",
          "scopes",
          "signature",
          "timestamp"
        ],
        "description": "Issue an API key. Requires fresh wallet signature (action issue_api_key). Bearer on this route returns 403 signature_required.",
        "properties": {
          "wallet": {
            "type": "string",
            "description": "EVM 0x-hex or Solana base58 root wallet"
          },
          "label": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 64
          },
          "scopes": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "enum": [
                "read",
                "balance:read",
                "endpoints:write",
                "pay",
                "payout:request"
              ],
              "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
            }
          },
          "signature": {
            "type": "string",
            "description": "EIP-712 or Ed25519 signature hex/base58"
          },
          "timestamp": {
            "type": "integer",
            "description": "Unix seconds; window [now−300s, now+60s]"
          }
        }
      },
      "IssueApiKeyResponse": {
        "type": "object",
        "required": [
          "api_key",
          "key_prefix",
          "scopes",
          "warning"
        ],
        "properties": {
          "api_key": {
            "type": "string",
            "example": "t402_live_aB3xK9mN2pQ7rS4tU8vW1yZ5cD6fG0hJ"
          },
          "key_prefix": {
            "type": "string",
            "example": "t402_live_aB3x"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read",
                "balance:read",
                "endpoints:write",
                "pay",
                "payout:request"
              ],
              "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
            }
          },
          "warning": {
            "type": "string",
            "example": "Store this key now. It will not be shown again."
          }
        }
      },
      "ApiKeyListResponse": {
        "type": "object",
        "required": [
          "wallet",
          "keys"
        ],
        "properties": {
          "wallet": {
            "type": "string"
          },
          "keys": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "key_prefix": {
                  "type": "string"
                },
                "label": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "scopes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "created_at": {
                  "type": "integer"
                },
                "last_used_at": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "expires_at": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "revoked_at": {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              }
            }
          }
        }
      },
      "AccountResponse": {
        "type": "object",
        "required": [
          "wallet",
          "earned_atomic",
          "spent_atomic",
          "withdrawable_atomic",
          "payout_chain",
          "endpoints_count"
        ],
        "properties": {
          "wallet": {
            "type": "string"
          },
          "earned_atomic": {
            "type": "string",
            "description": "Total net seller earnings (amount × (1 − take_rate))"
          },
          "spent_atomic": {
            "type": "string",
            "description": "Total USDC spent as buyer (ledger payer rows)"
          },
          "withdrawable_atomic": {
            "type": "string",
            "description": "Net seller earnings where settlement_id IS NULL (unsettled, retirable)"
          },
          "payout_chain": {
            "type": "string",
            "enum": [
              "base",
              "polygon",
              "arbitrum",
              "optimism",
              "avalanche",
              "solana"
            ]
          },
          "endpoints_count": {
            "type": "integer"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read",
                "balance:read",
                "endpoints:write",
                "pay",
                "payout:request"
              ],
              "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
            },
            "description": "Present when authenticated via Bearer API key"
          }
        },
        "example": {
          "wallet": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
          "earned_atomic": "1234500",
          "spent_atomic": "98000",
          "withdrawable_atomic": "560000",
          "payout_chain": "base",
          "endpoints_count": 7,
          "scopes": [
            "read",
            "balance:read",
            "endpoints:write"
          ]
        }
      },
      "SellerRegisterRequest": {
        "type": "object",
        "required": [
          "primary_wallet",
          "wallets",
          "signatures",
          "slug",
          "ts"
        ],
        "description": "Register a seller slug and payout chain (Model A). Free — no x402. Each chain wallet signs register action.",
        "properties": {
          "primary_wallet": {
            "type": "string"
          },
          "wallets": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "signatures": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "slug": {
            "type": "string",
            "pattern": "^[a-z0-9-]{3,32}$",
            "description": "Globally unique public slug"
          },
          "ts": {
            "type": "integer"
          },
          "payout_chain": {
            "type": "string",
            "enum": [
              "base",
              "polygon",
              "arbitrum",
              "optimism",
              "avalanche",
              "solana"
            ]
          }
        }
      },
      "AddEndpointRequest": {
        "type": "object",
        "required": [
          "path_suffix",
          "upstream_url",
          "atomic_price",
          "unit",
          "desc",
          "mode",
          "signature",
          "timestamp"
        ],
        "description": "Publish a seller endpoint after upstream probe. Wallet signature or Bearer endpoints:write.",
        "properties": {
          "path_suffix": {
            "type": "string",
            "pattern": "^[a-z0-9-]{3,64}$"
          },
          "upstream_url": {
            "type": "string",
            "format": "uri"
          },
          "atomic_price": {
            "type": "integer",
            "minimum": 1
          },
          "unit": {
            "type": "string",
            "maxLength": 32
          },
          "desc": {
            "type": "string",
            "maxLength": 200
          },
          "mode": {
            "type": "string",
            "enum": [
              "paywall",
              "proxy"
            ]
          },
          "sample_body": {},
          "alert_email": {
            "type": "string",
            "format": "email"
          },
          "signature": {
            "type": "string"
          },
          "timestamp": {
            "type": "integer"
          }
        }
      },
      "SellerEip712Domain": {
        "type": "object",
        "description": "EIP-712 domain for SellerAction signatures",
        "example": {
          "name": "tools402",
          "version": "1",
          "chainId": 8453
        }
      },
      "SellerActionTypes": {
        "type": "object",
        "description": "EIP-712 types for SellerAction",
        "example": {
          "SellerAction": [
            {
              "name": "wallet",
              "type": "address"
            },
            {
              "name": "action",
              "type": "string"
            },
            {
              "name": "payloadHash",
              "type": "bytes32"
            },
            {
              "name": "timestamp",
              "type": "uint256"
            }
          ]
        }
      }
    }
  },
  "paths": {
    "/v1/pdf-md": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-md",
        "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-md",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-md",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/pdf-text": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-text",
        "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-text",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-text",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/pdf-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-json",
        "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 15000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-json",
                      "description": "Extract structured per-page text blocks from PDF; returns { pages }. Priced per page. Uses pdf-parse + heuristics.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/invoice-extract": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/invoice-extract",
        "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 25000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/invoice-extract",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "25000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "25000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "25000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "25000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "25000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "25000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/invoice-extract",
                      "description": "Extract invoice fields (vendor, date, amount, VAT, items) from PDF or image. Uses tesseract + regex/LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/business-card": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/business-card",
        "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 15000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/business-card",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/business-card",
                      "description": "OCR business card image to vCard fields (name, email, phone, company). Uses tesseract + parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/table-extract": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/table-extract",
        "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 20000, unit image, chains base, polygon, solana. Human doc: https://tools402.dev/docs/table-extract",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/table-extract",
                      "description": "Detect and extract table from image to CSV rows/columns. Priced per image. Uses tesseract + table-detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/docx-md": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/docx-md",
        "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/docx-md",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/docx-md",
                      "description": "Convert DOCX upload to Markdown; returns { markdown }. Uses mammoth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/xlsx-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/xlsx-json",
        "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS). Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 8000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/xlsx-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/xlsx-json",
                      "description": "Parse XLSX workbook to JSON sheets with row arrays. Uses xlsx (SheetJS).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/handwriting-ocr": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/handwriting-ocr",
        "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 30000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/handwriting-ocr",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "30000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 30000,
                        "estimatedPages": 1,
                        "totalEstimate": 30000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "30000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "30000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 30000,
                        "estimatedPages": 1,
                        "totalEstimate": 30000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "30000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "30000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 30000,
                        "estimatedPages": 1,
                        "totalEstimate": 30000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "30000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/handwriting-ocr",
                      "description": "OCR handwritten text from image; returns { text, confidence }. Uses tesseract handwriting LSTM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/pdf-merge": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-merge",
        "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-merge",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-merge",
                      "description": "Merge multiple PDFs into one file. Dynamic: base $0.003 (≤10 pages summed) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/pdf-split": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-split",
        "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-split",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-split",
                      "description": "Split PDF into separate page files. Dynamic: base $0.003 (≤10 pages) + $0.0003/page extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/pdf-compress": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pdf-compress",
        "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pdf-compress",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pdf-compress",
                      "description": "Compress PDF file size via Ghostscript. Dynamic: base $0.005 (≤10 pages) + $0.0005/page extra.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/html-pdf": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/html-pdf",
        "description": "Render HTML body to PDF. Uses playwright print. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/html-pdf",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-pdf",
                      "description": "Render HTML body to PDF. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "A4",
                      "Letter",
                      "Legal",
                      "A3",
                      "A5"
                    ]
                  },
                  "landscape": {
                    "type": "boolean"
                  },
                  "printBackground": {
                    "type": "boolean"
                  },
                  "scale": {
                    "type": "number",
                    "minimum": 0.1,
                    "maximum": 2
                  },
                  "viewportWidth": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "viewportHeight": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "html"
                ],
                "additionalProperties": false
              },
              "example": {
                "html": "string"
              }
            }
          }
        }
      }
    },
    "/v1/md-pdf": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/md-pdf",
        "description": "Render Markdown to PDF. Uses markdown-it + playwright. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/md-pdf",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/md-pdf",
                      "description": "Render Markdown to PDF. Uses markdown-it + playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "markdown": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000000
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "A4",
                      "Letter",
                      "Legal",
                      "A3",
                      "A5"
                    ]
                  },
                  "landscape": {
                    "type": "boolean"
                  },
                  "viewportWidth": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "viewportHeight": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "markdown"
                ],
                "additionalProperties": false
              },
              "example": {
                "markdown": "string"
              }
            }
          }
        }
      }
    },
    "/v1/pptx-md": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/pptx-md",
        "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 12000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/pptx-md",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "12000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "12000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "12000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "12000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "12000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "12000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/pptx-md",
                      "description": "Extract PPTX slides to structured text/slide list. Uses pptxgenjs reverse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/whisper": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/whisper",
        "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit min, chains base, polygon, solana. Human doc: https://tools402.dev/docs/whisper",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whisper",
                      "description": "Transcribe audio to text with segments; priced per minute. Uses whisper.cpp small.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "lang": {
                    "default": "auto",
                    "type": "string",
                    "pattern": "^[a-z]{2}$|^auto$"
                  }
                },
                "required": [
                  "url",
                  "lang"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0,
                "lang": "auto"
              }
            }
          }
        }
      }
    },
    "/v1/audio-summary": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio-summary",
        "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 8000, unit min, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio-summary",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-summary",
                      "description": "Transcribe audio then produce summary and key points; priced per minute. Uses whisper + Claude Haiku.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/audio-language": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio-language",
        "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio-language",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-language",
                      "description": "Detect spoken language from audio sample; returns { language, confidence }. Uses whisper detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0
              }
            }
          }
        }
      }
    },
    "/v1/diarization": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/diarization",
        "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 6000, unit min, chains base, polygon, solana. Human doc: https://tools402.dev/docs/diarization",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/diarization",
                      "description": "Speaker diarization with timed segments; priced per minute. Uses pyannote-audio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "num_speakers": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0,
                "num_speakers": 0
              }
            }
          }
        }
      }
    },
    "/v1/video-transcript": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video-transcript",
        "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 4000, unit min, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video-transcript",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-transcript",
                      "description": "Extract audio from video and transcribe; priced per minute. Uses ffmpeg + whisper.cpp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "lang": {
                    "default": "auto",
                    "type": "string",
                    "pattern": "^[a-z]{2}$|^auto$"
                  }
                },
                "required": [
                  "url",
                  "lang"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0,
                "lang": "auto"
              }
            }
          }
        }
      }
    },
    "/v1/video-thumbnail": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video-thumbnail",
        "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit 60s-base, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video-thumbnail",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-thumbnail",
                      "description": "Extract PNG thumbnail frame from video at given second. Dynamic: base $0.0015 (≤30s) + $0.0005/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "second": {
                    "default": 0,
                    "type": "number",
                    "minimum": 0
                  }
                },
                "required": [
                  "url",
                  "second"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0,
                "second": 0
              }
            }
          }
        }
      }
    },
    "/v1/tts": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/tts",
        "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 800, unit 500c, chains base, polygon, solana. Human doc: https://tools402.dev/docs/tts",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/tts",
                      "description": "Text-to-speech to MP3 from { text, voice, lang }; priced per 500 characters. Uses piper-tts.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "voice": {
                    "type": "string"
                  },
                  "lang": {
                    "type": "string",
                    "enum": [
                      "fr",
                      "en"
                    ]
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "voice": "string",
                "lang": "fr"
              }
            }
          }
        }
      }
    },
    "/v1/audio-convert": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio-convert",
        "description": "Convert audio file to requested output format. Uses ffmpeg. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio-convert",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-convert",
                      "description": "Convert audio file to requested output format. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/video-audio-extract": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video-audio-extract",
        "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit 60s-base, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video-audio-extract",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-audio-extract",
                      "description": "Extract audio track from video as MP3. Dynamic: base $0.002 (≤60s) + $0.001/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0
              }
            }
          }
        }
      }
    },
    "/v1/video-gif": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video-gif",
        "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit 60s-base, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video-gif",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video-gif",
                      "description": "Convert video clip to animated GIF. Dynamic: base $0.003 (≤30s) + $0.0015/min extra. Uses ffmpeg.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "start": {
                    "default": 0,
                    "type": "number",
                    "minimum": 0
                  },
                  "duration": {
                    "default": 3,
                    "type": "number",
                    "minimum": 0.1,
                    "maximum": 30
                  },
                  "fps": {
                    "default": 12,
                    "type": "number",
                    "minimum": 1,
                    "maximum": 30
                  },
                  "width": {
                    "default": 480,
                    "type": "number",
                    "minimum": 32,
                    "maximum": 1280
                  }
                },
                "required": [
                  "url",
                  "start",
                  "duration",
                  "fps",
                  "width"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "start": 0,
                "duration": 3,
                "fps": 12,
                "width": 480
              }
            }
          }
        }
      }
    },
    "/v1/audio-normalize": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio-normalize",
        "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio-normalize",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio-normalize",
                      "description": "Loudness-normalize audio (EBU R128 loudnorm). Uses ffmpeg loudnorm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0
              }
            }
          }
        }
      }
    },
    "/v1/srt-vtt": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/srt-vtt",
        "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/srt-vtt",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/srt-vtt",
                      "description": "Convert SRT subtitles to WebVTT format. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "srt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "srt"
                ],
                "additionalProperties": false
              },
              "example": {
                "srt": "string"
              }
            }
          }
        }
      }
    },
    "/v1/ocr": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ocr",
        "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 4000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/ocr",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ocr",
                      "description": "OCR image text with confidence and language (fra+eng+spa); priced per page. Uses tesseract.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-caption": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-caption",
        "description": "Generate natural-language caption for image. Uses BLIP-2 or external API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-caption",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-caption",
                      "description": "Generate natural-language caption for image. Uses BLIP-2 or external API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-tags": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-tags",
        "description": "Classify image content tags with scores. Uses yolov8 + classifier. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 6000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-tags",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-tags",
                      "description": "Classify image content tags with scores. Uses yolov8 + classifier.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-colors": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-colors",
        "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-colors",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-colors",
                      "description": "Extract dominant color palette (hex) from image. Uses sharp + quantize.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-exif": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-exif",
        "description": "Read EXIF metadata from image file. Uses exifr. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-exif",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-exif",
                      "description": "Read EXIF metadata from image file. Uses exifr.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/nsfw-score": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/nsfw-score",
        "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js). Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/nsfw-score",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nsfw-score",
                      "description": "Score image for NSFW content; returns { nsfw_score, safe }. Uses nsfwjs (TensorFlow.js).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/object-detect": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/object-detect",
        "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 6000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/object-detect",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "6000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "6000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 6000,
                        "estimatedPages": 1,
                        "totalEstimate": 6000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "6000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/object-detect",
                      "description": "Detect objects with labels, bounding boxes, and scores. Uses yolov8 ONNX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/face-count": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/face-count",
        "description": "Count faces in image (no identity). Uses mediapipe face detect. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/face-count",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2500,
                        "estimatedPages": 1,
                        "totalEstimate": 2500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2500,
                        "estimatedPages": 1,
                        "totalEstimate": 2500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2500,
                        "estimatedPages": 1,
                        "totalEstimate": 2500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/face-count",
                      "description": "Count faces in image (no identity). Uses mediapipe face detect.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-resize": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-resize",
        "description": "Resize image to requested width/height. Uses sharp. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-resize",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-resize",
                      "description": "Resize image to requested width/height. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-compress": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-compress",
        "description": "Compress image with configurable quality. Uses sharp. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-compress",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-compress",
                      "description": "Compress image with configurable quality. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-convert": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-convert",
        "description": "Convert image to requested output format. Uses sharp. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-convert",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-convert",
                      "description": "Convert image to requested output format. Uses sharp.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/qr-decode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/qr-decode",
        "description": "Decode QR code from image to payload string. Uses jsQR. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/qr-decode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/qr-decode",
                      "description": "Decode QR code from image to payload string. Uses jsQR.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/qr-encode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/qr-encode",
        "description": "Encode data string as QR code PNG image. Uses qrcode. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/qr-encode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/qr-encode",
                      "description": "Encode data string as QR code PNG image. Uses qrcode.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4296
                  },
                  "size": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 2000
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string",
                "size": 0
              }
            }
          }
        }
      }
    },
    "/v1/barcode-decode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/barcode-decode",
        "description": "Decode 1D/2D barcode from image. Uses zxing-wasm. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/barcode-decode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/barcode-decode",
                      "description": "Decode 1D/2D barcode from image. Uses zxing-wasm.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/barcode-encode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/barcode-encode",
        "description": "Generate barcode image from data and format. Uses bwip-js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/barcode-encode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/barcode-encode",
                      "description": "Generate barcode image from data and format. Uses bwip-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "format": {
                    "type": "string"
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string",
                "format": "string"
              }
            }
          }
        }
      }
    },
    "/v1/image-pdf": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-pdf",
        "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit MP, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-pdf",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-pdf",
                      "description": "Embed image into single-page PDF. Dynamic: base $0.002 (≤4 MP) + $0.0005/MP extra. Uses pdf-lib.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/image-base64": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image-base64",
        "description": "Encode uploaded image as base64 string. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image-base64",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image-base64",
                      "description": "Encode uploaded image as base64 string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/background-remove": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/background-remove",
        "description": "Remove image background to transparent PNG. Uses rembg (u2net). Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/background-remove",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/background-remove",
                      "description": "Remove image background to transparent PNG. Uses rembg (u2net).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/url-text": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-text",
        "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-text",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-text",
                      "description": "Fetch URL and extract main article text (Readability, no JS). Uses mozilla/readability.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-meta": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-meta",
        "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-meta",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-meta",
                      "description": "Fetch Open Graph and page metadata (title, description, og_image). Uses unfurl.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-links": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-links",
        "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-links",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-links",
                      "description": "List hyperlinks extracted from fetched URL HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-redirects": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-redirects",
        "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-redirects",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-redirects",
                      "description": "Follow redirect chain for URL; returns ordered hop list. Uses fetch chain follow.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-alive": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-alive",
        "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-alive",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-alive",
                      "description": "Check URL reachability with HEAD request; returns alive, status, latency. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/screenshot": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/screenshot",
        "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 4000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/screenshot",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/screenshot",
                      "description": "Capture full-page PNG screenshot of URL at given viewport. Uses playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "fullPage": {
                    "type": "boolean"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "png",
                      "jpeg"
                    ]
                  },
                  "quality": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  },
                  "viewportWidth": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "viewportHeight": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-pdf": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-pdf",
        "description": "Render URL to PDF via headless browser print. Uses playwright print. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 4000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-pdf",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "4000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "4000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 4000,
                        "estimatedPages": 1,
                        "totalEstimate": 4000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "4000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-pdf",
                      "description": "Render URL to PDF via headless browser print. Uses playwright print.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "A4",
                      "Letter",
                      "Legal",
                      "A3",
                      "A5"
                    ]
                  },
                  "landscape": {
                    "type": "boolean"
                  },
                  "printBackground": {
                    "type": "boolean"
                  },
                  "viewportWidth": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "viewportHeight": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/sitemap-parse": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/sitemap-parse",
        "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/sitemap-parse",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/sitemap-parse",
                      "description": "Parse sitemap.xml URL list from sitemap document. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/robots-parse": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/robots-parse",
        "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/robots-parse",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/robots-parse",
                      "description": "Parse robots.txt rules and sitemap references. Uses pure JS parsing.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/rss-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/rss-json",
        "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/rss-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/rss-json",
                      "description": "Parse RSS/Atom feed URL to JSON items list. Uses rss-parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/html-text": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/html-text",
        "description": "Extract plain text from HTML body. Uses turndown / cheerio. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/html-text",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-text",
                      "description": "Extract plain text from HTML body. Uses turndown / cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 52428800
                  },
                  "format": {
                    "default": "text",
                    "type": "string",
                    "enum": [
                      "text",
                      "markdown"
                    ]
                  }
                },
                "required": [
                  "html",
                  "format"
                ],
                "additionalProperties": false
              },
              "example": {
                "html": "string",
                "format": "text"
              }
            }
          }
        }
      }
    },
    "/v1/html-links": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/html-links",
        "description": "Extract hyperlinks from provided HTML. Uses cheerio. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/html-links",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-links",
                      "description": "Extract hyperlinks from provided HTML. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 52428800
                  },
                  "base_url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "html"
                ],
                "additionalProperties": false
              },
              "example": {
                "html": "string",
                "base_url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-favicon": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-favicon",
        "description": "Download site favicon as PNG from URL. Uses favicon-fetcher. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-favicon",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-favicon",
                      "description": "Download site favicon as PNG from URL. Uses favicon-fetcher.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-headers": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-headers",
        "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-headers",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-headers",
                      "description": "Return HTTP response headers from URL HEAD request. Uses fetch HEAD.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/url-title": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-title",
        "description": "Extract HTML page title from URL. Uses cheerio. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-title",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-title",
                      "description": "Extract HTML page title from URL. Uses cheerio.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/email-deliverability": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/email-deliverability",
        "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/email-deliverability",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/email-deliverability",
                      "description": "Validate email syntax, MX, disposable/role flags. Uses mailcheck + DNS MX.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "email"
                ],
                "additionalProperties": false
              },
              "example": {
                "email": "string"
              }
            }
          }
        }
      }
    },
    "/v1/phone-validate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/phone-validate",
        "description": "Validate and format phone number internationally. Uses libphonenumber-js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/phone-validate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/phone-validate",
                      "description": "Validate and format phone number internationally. Uses libphonenumber-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 20
                  },
                  "country": {
                    "type": "string"
                  }
                },
                "required": [
                  "phone"
                ],
                "additionalProperties": false
              },
              "example": {
                "phone": "string",
                "country": "string"
              }
            }
          }
        }
      }
    },
    "/v1/phone-carrier": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/phone-carrier",
        "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/phone-carrier",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/phone-carrier",
                      "description": "Lookup carrier, country, and line type for phone number. Uses libphonenumber + lookup table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 20
                  },
                  "country": {
                    "type": "string"
                  }
                },
                "required": [
                  "phone"
                ],
                "additionalProperties": false
              },
              "example": {
                "phone": "string",
                "country": "string"
              }
            }
          }
        }
      }
    },
    "/v1/iban-bic": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/iban-bic",
        "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/iban-bic",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/iban-bic",
                      "description": "Resolve BIC, bank name, and country from IBAN. Uses iban-bic table.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "iban": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "iban"
                ],
                "additionalProperties": false
              },
              "example": {
                "iban": "string"
              }
            }
          }
        }
      }
    },
    "/v1/iban-validate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/iban-validate",
        "description": "Validate IBAN checksum and country code. Uses iban.js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/iban-validate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/iban-validate",
                      "description": "Validate IBAN checksum and country code. Uses iban.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "iban": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 34
                  }
                },
                "required": [
                  "iban"
                ],
                "additionalProperties": false
              },
              "example": {
                "iban": "string"
              }
            }
          }
        }
      }
    },
    "/v1/siren-fetch": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/siren-fetch",
        "description": "Fetch French company record by SIREN from INSEE Sirene API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 8000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/siren-fetch",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/siren-fetch",
                      "description": "Fetch French company record by SIREN from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "siren": {
                    "type": "string",
                    "pattern": "^\\d{9}$"
                  }
                },
                "required": [
                  "siren"
                ],
                "additionalProperties": false
              },
              "example": {
                "siren": "string"
              }
            }
          }
        }
      }
    },
    "/v1/siret-fetch": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/siret-fetch",
        "description": "Fetch French establishment record by SIRET from INSEE Sirene API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 8000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/siret-fetch",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/siret-fetch",
                      "description": "Fetch French establishment record by SIRET from INSEE Sirene API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "siret": {
                    "type": "string",
                    "pattern": "^\\d{14}$"
                  }
                },
                "required": [
                  "siret"
                ],
                "additionalProperties": false
              },
              "example": {
                "siret": "string"
              }
            }
          }
        }
      }
    },
    "/v1/vat-validate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/vat-validate",
        "description": "Validate EU VAT number via VIES; returns name and address when available. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/vat-validate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/vat-validate",
                      "description": "Validate EU VAT number via VIES; returns name and address when available.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "vat": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 20
                  },
                  "country": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2
                  },
                  "number": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 18
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "vat": "string",
                "country": "string",
                "number": "string"
              }
            }
          }
        }
      }
    },
    "/v1/ip-geo": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ip-geo",
        "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 800, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/ip-geo",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ip-geo",
                      "description": "Geolocate IP to country, city, latitude, longitude. Uses maxmind GeoLite2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "ip": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "ip"
                ],
                "additionalProperties": false
              },
              "example": {
                "ip": "string"
              }
            }
          }
        }
      }
    },
    "/v1/ip-asn": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ip-asn",
        "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 800, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/ip-asn",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "800",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "800",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 800,
                        "estimatedPages": 1,
                        "totalEstimate": 800
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "800",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ip-asn",
                      "description": "Lookup ASN and organization for IP address. Uses maxmind ASN DB.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "ip": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "ip"
                ],
                "additionalProperties": false
              },
              "example": {
                "ip": "string"
              }
            }
          }
        }
      }
    },
    "/v1/whois": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/whois",
        "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/whois",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whois",
                      "description": "Query domain WHOIS (registrar, dates, nameservers). Uses whois-json.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 253,
                    "pattern": "^(?=.{1,253}$)(?!.*\\.\\.)(?!-)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$"
                  }
                },
                "required": [
                  "domain"
                ],
                "additionalProperties": false
              },
              "example": {
                "domain": "string"
              }
            }
          }
        }
      }
    },
    "/v1/dns-records": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/dns-records",
        "description": "Resolve DNS records for domain and record type. Uses node:dns. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/dns-records",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/dns-records",
                      "description": "Resolve DNS records for domain and record type. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "A",
                      "AAAA",
                      "CNAME",
                      "MX",
                      "TXT",
                      "NS",
                      "SOA",
                      "SRV",
                      "CAA",
                      "PTR"
                    ]
                  }
                },
                "required": [
                  "domain"
                ],
                "additionalProperties": false
              },
              "example": {
                "domain": "string",
                "type": "A"
              }
            }
          }
        }
      }
    },
    "/v1/ssl-info": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ssl-info",
        "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/ssl-info",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1500,
                        "estimatedPages": 1,
                        "totalEstimate": 1500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ssl-info",
                      "description": "Inspect TLS certificate for domain (issuer, validity, SANs). Uses tls socket peek.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "pattern": "^(?=.{1,253}$)(?!.*\\.\\.)(?!-)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$"
                  },
                  "port": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 65535
                  }
                },
                "required": [
                  "domain"
                ],
                "additionalProperties": false
              },
              "example": {
                "domain": "string",
                "port": 0
              }
            }
          }
        }
      }
    },
    "/v1/mx-records": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/mx-records",
        "description": "List MX mail exchanger records for domain. Uses node:dns. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/mx-records",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/mx-records",
                      "description": "List MX mail exchanger records for domain. Uses node:dns.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 253,
                    "pattern": "^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
                  }
                },
                "required": [
                  "domain"
                ],
                "additionalProperties": false
              },
              "example": {
                "domain": "string"
              }
            }
          }
        }
      }
    },
    "/v1/password-hash": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/password-hash",
        "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/password-hash",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/password-hash",
                      "description": "Hash password with bcrypt, argon2, or scrypt per algo parameter. Uses bcrypt + argon2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "algo": {
                    "type": "string"
                  }
                },
                "required": [
                  "password"
                ],
                "additionalProperties": false
              },
              "example": {
                "password": "string",
                "algo": "string"
              }
            }
          }
        }
      }
    },
    "/v1/password-strength": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/password-strength",
        "description": "Score password strength with feedback. Uses zxcvbn. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/password-strength",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/password-strength",
                      "description": "Score password strength with feedback. Uses zxcvbn.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string",
                    "maxLength": 1024
                  }
                },
                "required": [
                  "password"
                ],
                "additionalProperties": false
              },
              "example": {
                "password": "string"
              }
            }
          }
        }
      }
    },
    "/v1/url-safe": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-safe",
        "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-safe",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-safe",
                      "description": "Check URL against Google Safe Browsing threat lists. Uses Google Safe Browsing API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/regex-test": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/regex-test",
        "description": "Test regex against input; returns matches and capture groups. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/regex-test",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/regex-test",
                      "description": "Test regex against input; returns matches and capture groups. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "regex": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "input": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000000
                  },
                  "flags": {
                    "type": "string",
                    "pattern": "^[gimsuy]*$"
                  }
                },
                "required": [
                  "regex",
                  "input"
                ],
                "additionalProperties": false
              },
              "example": {
                "regex": "string",
                "input": "string",
                "flags": "string"
              }
            }
          }
        }
      }
    },
    "/v1/json-schema-validate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/json-schema-validate",
        "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/json-schema-validate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-schema-validate",
                      "description": "Validate JSON data against JSON Schema; returns errors if invalid. Uses ajv.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "data": {}
                },
                "required": [
                  "schema",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "schema": {},
                "data": null
              }
            }
          }
        }
      }
    },
    "/v1/jsonpath-extract": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/jsonpath-extract",
        "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/jsonpath-extract",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/jsonpath-extract",
                      "description": "Extract values from JSON document using JSONPath expression. Uses jsonpath.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "json": {},
                  "path": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "json",
                  "path"
                ],
                "additionalProperties": false
              },
              "example": {
                "json": null,
                "path": "string"
              }
            }
          }
        }
      }
    },
    "/v1/md-html": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/md-html",
        "description": "Convert Markdown string to HTML. Uses markdown-it. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/md-html",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/md-html",
                      "description": "Convert Markdown string to HTML. Uses markdown-it.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "markdown": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "markdown"
                ],
                "additionalProperties": false
              },
              "example": {
                "markdown": "string"
              }
            }
          }
        }
      }
    },
    "/v1/html-md": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/html-md",
        "description": "Convert HTML to Markdown. Uses turndown. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/html-md",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/html-md",
                      "description": "Convert HTML to Markdown. Uses turndown.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "html"
                ],
                "additionalProperties": false
              },
              "example": {
                "html": "string"
              }
            }
          }
        }
      }
    },
    "/v1/json-yaml": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/json-yaml",
        "description": "Convert JSON object to YAML string. Uses js-yaml. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/json-yaml",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-yaml",
                      "description": "Convert JSON object to YAML string. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "json": {}
                },
                "required": [
                  "json"
                ],
                "additionalProperties": false
              },
              "example": {
                "json": null
              }
            }
          }
        }
      }
    },
    "/v1/yaml-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/yaml-json",
        "description": "Parse YAML string to JSON. Uses js-yaml. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/yaml-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/yaml-json",
                      "description": "Parse YAML string to JSON. Uses js-yaml.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "yaml"
                ],
                "additionalProperties": false
              },
              "example": {
                "yaml": "string"
              }
            }
          }
        }
      }
    },
    "/v1/json-xml": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/json-xml",
        "description": "Convert JSON to XML string. Uses xml-js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/json-xml",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-xml",
                      "description": "Convert JSON to XML string. Uses xml-js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "json": {}
                },
                "required": [
                  "json"
                ],
                "additionalProperties": false
              },
              "example": {
                "json": null
              }
            }
          }
        }
      }
    },
    "/v1/xml-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/xml-json",
        "description": "Parse XML string to JSON. Uses xml2js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 200, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/xml-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "200",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "200",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 200,
                        "estimatedPages": 1,
                        "totalEstimate": 200
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "200",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/xml-json",
                      "description": "Parse XML string to JSON. Uses xml2js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "xml": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "xml"
                ],
                "additionalProperties": false
              },
              "example": {
                "xml": "string"
              }
            }
          }
        }
      }
    },
    "/v1/csv-json": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/csv-json",
        "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/csv-json",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/csv-json",
                      "description": "Parse CSV text to JSON rows with optional delimiter. Uses csv-parse.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "csv": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  },
                  "delimiter": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1
                  }
                },
                "required": [
                  "csv"
                ],
                "additionalProperties": false
              },
              "example": {
                "csv": "string",
                "delimiter": "string"
              }
            }
          }
        }
      }
    },
    "/v1/json-csv": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/json-csv",
        "description": "Serialize JSON rows to CSV string. Uses csv-stringify. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/json-csv",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/json-csv",
                      "description": "Serialize JSON rows to CSV string. Uses csv-stringify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "json": {
                    "minItems": 1,
                    "maxItems": 100000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {}
                    }
                  }
                },
                "required": [
                  "json"
                ],
                "additionalProperties": false
              },
              "example": {
                "json": [
                  {}
                ]
              }
            }
          }
        }
      }
    },
    "/v1/base64-encode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/base64-encode",
        "description": "Encode text or binary data to base64. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/base64-encode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/base64-encode",
                      "description": "Encode text or binary data to base64. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string"
              }
            }
          }
        }
      }
    },
    "/v1/base64-decode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/base64-decode",
        "description": "Decode base64 string to raw data. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/base64-decode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/base64-decode",
                      "description": "Decode base64 string to raw data. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "base64": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "base64"
                ],
                "additionalProperties": false
              },
              "example": {
                "base64": "string"
              }
            }
          }
        }
      }
    },
    "/v1/url-encode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-encode",
        "description": "Percent-encode text for URL query components. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-encode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-encode",
                      "description": "Percent-encode text for URL query components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string"
              }
            }
          }
        }
      }
    },
    "/v1/url-decode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/url-decode",
        "description": "Percent-decode URL-encoded text. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/url-decode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/url-decode",
                      "description": "Percent-decode URL-encoded text. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "encoded": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "encoded"
                ],
                "additionalProperties": false
              },
              "example": {
                "encoded": "string"
              }
            }
          }
        }
      }
    },
    "/v1/hex-bytes": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/hex-bytes",
        "description": "Convert hex string to base64-encoded bytes. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/hex-bytes",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/hex-bytes",
                      "description": "Convert hex string to base64-encoded bytes. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "hex": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "hex"
                ],
                "additionalProperties": false
              },
              "example": {
                "hex": "string"
              }
            }
          }
        }
      }
    },
    "/v1/bytes-hex": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/bytes-hex",
        "description": "Convert base64-encoded bytes to hex string. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/bytes-hex",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/bytes-hex",
                      "description": "Convert base64-encoded bytes to hex string. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "bytes_b64": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "bytes_b64"
                ],
                "additionalProperties": false
              },
              "example": {
                "bytes_b64": "string"
              }
            }
          }
        }
      }
    },
    "/v1/timestamp-format": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/timestamp-format",
        "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/timestamp-format",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/timestamp-format",
                      "description": "Format Unix timestamp with locale, format string, and timezone. Uses date-fns-tz.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "ts": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "format": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "tz": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "ts"
                ],
                "additionalProperties": false
              },
              "example": {
                "ts": 0,
                "format": "string",
                "tz": "string"
              }
            }
          }
        }
      }
    },
    "/v1/color-hex-rgb": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/color-hex-rgb",
        "description": "Convert hex color to RGB components. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/color-hex-rgb",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/color-hex-rgb",
                      "description": "Convert hex color to RGB components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "hex": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 9
                  }
                },
                "required": [
                  "hex"
                ],
                "additionalProperties": false
              },
              "example": {
                "hex": "string"
              }
            }
          }
        }
      }
    },
    "/v1/color-rgb-hsl": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/color-rgb-hsl",
        "description": "Convert RGB color to HSL components. Native implementation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/color-rgb-hsl",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/color-rgb-hsl",
                      "description": "Convert RGB color to HSL components. Native implementation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "r": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 255
                  },
                  "g": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 255
                  },
                  "b": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 255
                  }
                },
                "required": [
                  "r",
                  "g",
                  "b"
                ],
                "additionalProperties": false
              },
              "example": {
                "r": 0,
                "g": 0,
                "b": 0
              }
            }
          }
        }
      }
    },
    "/v1/lorem-ipsum": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/lorem-ipsum",
        "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/lorem-ipsum",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/lorem-ipsum",
                      "description": "Generate placeholder lorem ipsum text by paragraphs or words. Uses lorem-ipsum.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "paragraphs": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 50
                  },
                  "words": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "paragraphs": 0,
                "words": 0
              }
            }
          }
        }
      }
    },
    "/v1/uuid-generate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/uuid-generate",
        "description": "Generate random UUID (v4). Uses crypto.randomUUID. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/uuid-generate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/uuid-generate",
                      "description": "Generate random UUID (v4). Uses crypto.randomUUID.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "version": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "version": 0
              }
            }
          }
        }
      }
    },
    "/v1/slug-generate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/slug-generate",
        "description": "Generate URL-safe slug from text. Uses slugify. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/slug-generate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/slug-generate",
                      "description": "Generate URL-safe slug from text. Uses slugify.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000000
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string"
              }
            }
          }
        }
      }
    },
    "/v1/search/web": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/search/web",
        "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/search/web",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/search/web",
                      "description": "Search the web and return ranked results with snippets (max_results, basic/advanced depth). Powered by the Tavily API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "minLength": 1
                  },
                  "max_results": {
                    "default": 5,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10
                  },
                  "search_depth": {
                    "default": "basic",
                    "type": "string",
                    "enum": [
                      "basic",
                      "advanced"
                    ]
                  },
                  "include_domains": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "exclude_domains": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "query",
                  "max_results",
                  "search_depth"
                ],
                "additionalProperties": false
              },
              "example": {
                "query": "string",
                "max_results": 5,
                "search_depth": "basic"
              }
            }
          }
        }
      }
    },
    "/v1/code/run/python": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/code/run/python",
        "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/code/run/python",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/python",
                      "description": "Run Python 3 code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 65536
                  },
                  "stdin": {
                    "type": "string",
                    "maxLength": 8192
                  },
                  "args": {
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 256
                    }
                  }
                },
                "required": [
                  "code"
                ],
                "additionalProperties": false
              },
              "example": {
                "code": "string",
                "stdin": "string",
                "args": [
                  "string"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/code/run/node": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/code/run/node",
        "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/code/run/node",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/node",
                      "description": "Run Node.js code in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 65536
                  },
                  "stdin": {
                    "type": "string",
                    "maxLength": 8192
                  },
                  "args": {
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 256
                    }
                  }
                },
                "required": [
                  "code"
                ],
                "additionalProperties": false
              },
              "example": {
                "code": "string",
                "stdin": "string",
                "args": [
                  "string"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/extract/web": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/extract/web",
        "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 20000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/extract/web",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/extract/web",
                      "description": "Fetch a JS-rendered page and extract its HTML or text, optionally scoped to a CSS selector. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "selector": {
                    "type": "string"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "html",
                      "text"
                    ]
                  },
                  "wait_ms": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 5000
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/voice/transcribe-premium": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/voice/transcribe-premium",
        "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit 60s-base, chains base, polygon, solana. Human doc: https://tools402.dev/docs/voice/transcribe-premium",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/voice/transcribe-premium",
                      "description": "Transcribe audio from a URL to text using a premium model. Dynamic: base $0.005 (≤60s) + $0.0025/min extra. Powered by Deepgram nova-2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "duration_hint_sec": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "duration_hint_sec": 0
              }
            }
          }
        }
      }
    },
    "/v1/finance/stock-quote": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/finance/stock-quote",
        "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/finance/stock-quote",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/finance/stock-quote",
                      "description": "Get the latest quote for a stock symbol (price, change, volume), cached 30s. Powered by Alpha Vantage.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "symbol": {}
                },
                "required": [
                  "symbol"
                ],
                "additionalProperties": false
              },
              "example": {
                "symbol": null
              }
            }
          }
        }
      }
    },
    "/v1/translate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/translate",
        "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/translate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/translate",
                      "description": "Translate text into a target language, with optional source language. Powered by the DeepL Free API.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1
                  },
                  "target_lang": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 10
                  },
                  "source_lang": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 10
                  }
                },
                "required": [
                  "text",
                  "target_lang"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "target_lang": "string",
                "source_lang": "string"
              }
            }
          }
        }
      }
    },
    "/v1/memory/store": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/memory/store",
        "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/memory/store",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/store",
                      "description": "Store a key-value entry with optional semantic embedding and TTL (default 30 days). Backed by SQLite with ONNX embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 65536
                  },
                  "embed": {
                    "default": false,
                    "type": "boolean"
                  },
                  "ttl_days": {
                    "default": 30,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 365
                  }
                },
                "required": [
                  "key",
                  "value",
                  "embed",
                  "ttl_days"
                ],
                "additionalProperties": false
              },
              "example": {
                "key": "string",
                "value": "string",
                "embed": false,
                "ttl_days": 30
              }
            }
          }
        }
      }
    },
    "/v1/memory/query": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/memory/query",
        "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/memory/query",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/query",
                      "description": "Retrieve stored entries by exact key or by semantic similarity (top-k). Backed by SQLite with all-MiniLM-L6-v2 embeddings.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "query": {
                    "type": "string",
                    "minLength": 1
                  },
                  "top_k": {
                    "default": 5,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  }
                },
                "required": [
                  "top_k"
                ],
                "additionalProperties": false
              },
              "example": {
                "key": "string",
                "query": "string",
                "top_k": 5
              }
            }
          }
        }
      }
    },
    "/v1/docs/lookup": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/docs/lookup",
        "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/docs/lookup",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/docs/lookup",
                      "description": "Fetch a package's README/documentation by name and ecosystem (npm, pypi, github), with optional section. Cached 1h via GitHub raw.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "package": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "ecosystem": {
                    "default": "npm",
                    "type": "string",
                    "enum": [
                      "npm",
                      "pypi",
                      "github"
                    ]
                  },
                  "section": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "required": [
                  "package",
                  "ecosystem"
                ],
                "additionalProperties": false
              },
              "example": {
                "package": "string",
                "ecosystem": "npm",
                "section": "string"
              }
            }
          }
        }
      }
    },
    "/v1/nlp/sentiment": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/nlp/sentiment",
        "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/nlp/sentiment",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nlp/sentiment",
                      "description": "Classify the sentiment of English text (positive/negative with score). Runs DistilBERT ONNX locally on CPU via transformers.js.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512
                  },
                  "lang": {
                    "type": "string",
                    "const": "en"
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "lang": "en"
              }
            }
          }
        }
      }
    },
    "/v1/nlp/entities": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/nlp/entities",
        "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/nlp/entities",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/nlp/entities",
                      "description": "Detect named entities (people, organizations, places, dates) in English text. Powered by spaCy via a Python runner.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512
                  },
                  "lang": {
                    "type": "string",
                    "const": "en"
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "lang": "en"
              }
            }
          }
        }
      }
    },
    "/v1/embed/query": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/embed/query",
        "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/embed/query",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/embed/query",
                      "description": "Generate a 384-dimension embedding vector for input text, optionally normalized. Powered by all-MiniLM-L6-v2.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2048
                  },
                  "normalize": {
                    "default": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "text",
                  "normalize"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "normalize": true
              }
            }
          }
        }
      }
    },
    "/v1/browser/session": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/browser/session",
        "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 25000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/browser/session",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "25000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "25000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "25000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "25000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "25000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 25000,
                        "estimatedPages": 1,
                        "totalEstimate": 25000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "25000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/browser/session",
                      "description": "Run a multi-step browser flow (click, fill, wait, scroll, evaluate; max 5 steps) in a persistent session. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "steps": {
                    "maxItems": 5,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "click"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "type",
                            "selector"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "fill"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 10000
                            }
                          },
                          "required": [
                            "type",
                            "selector",
                            "value"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "wait"
                            },
                            "ms": {
                              "type": "integer",
                              "minimum": 50,
                              "maximum": 5000
                            }
                          },
                          "required": [
                            "type",
                            "ms"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "waitFor"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "timeoutMs": {
                              "type": "integer",
                              "minimum": 50,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "type",
                            "selector"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "scroll"
                            },
                            "y": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "type",
                            "y"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "const": "evaluate"
                            },
                            "script": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "type",
                            "script"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "viewport": {
                    "type": "object",
                    "properties": {
                      "width": {
                        "type": "integer",
                        "minimum": 320,
                        "maximum": 1920
                      },
                      "height": {
                        "type": "integer",
                        "minimum": 200,
                        "maximum": 1080
                      }
                    },
                    "required": [
                      "width",
                      "height"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "steps": [
                  {
                    "type": "click",
                    "selector": "string"
                  }
                ],
                "viewport": {
                  "width": 0,
                  "height": 0
                }
              }
            }
          }
        }
      }
    },
    "/v1/agent/identity": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/identity",
        "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/identity",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/identity",
                      "description": "Build or verify an AP2 Intent Mandate as EIP-712 typed data for agent identity (spend cap, expiry, wallet). Powered by viem.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "build",
                      "verify"
                    ]
                  },
                  "intent_description": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "max_spend_atomic": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "expires_at": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "agent_wallet": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "typed_data": {
                    "type": "object",
                    "properties": {
                      "domain": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      },
                      "types": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      },
                      "primaryType": {
                        "type": "string"
                      },
                      "message": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      }
                    },
                    "required": [
                      "domain",
                      "types",
                      "primaryType",
                      "message"
                    ],
                    "additionalProperties": false
                  },
                  "signature": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{130}$"
                  }
                },
                "required": [
                  "action"
                ],
                "additionalProperties": false
              },
              "example": {
                "action": "build"
              }
            }
          }
        }
      }
    },
    "/v1/scrape/js": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/scrape/js",
        "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/scrape/js",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/scrape/js",
                      "description": "Scrape a JS-rendered page; returns rendered HTML, extracted text, and optional per-selector fields. Powered by Playwright stealth.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "wait_for": {
                    "type": "string"
                  },
                  "timeout_ms": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 15000
                  },
                  "selectors": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com"
              }
            }
          }
        }
      }
    },
    "/v1/code/deps-graph": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/code/deps-graph",
        "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/code/deps-graph",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/deps-graph",
                      "description": "Parse a manifest (package.json, requirements.txt, pyproject.toml, or Cargo.toml) into a structured dependency graph. Local parser.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string",
                    "enum": [
                      "package_json",
                      "requirements_txt",
                      "pyproject_toml",
                      "cargo_toml"
                    ]
                  },
                  "content": {
                    "type": "string",
                    "maxLength": 204800
                  }
                },
                "required": [
                  "format",
                  "content"
                ],
                "additionalProperties": false
              },
              "example": {
                "format": "package_json",
                "content": "string"
              }
            }
          }
        }
      }
    },
    "/v1/maps/geocode": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/maps/geocode",
        "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap). Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/maps/geocode",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/maps/geocode",
                      "description": "Convert an address or place name into latitude/longitude coordinates, with optional country filter. Powered by Nominatim (OpenStreetMap).",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "q": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country_code": {},
                  "limit": {
                    "default": 1,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10
                  }
                },
                "required": [
                  "q",
                  "limit"
                ],
                "additionalProperties": false
              },
              "example": {
                "q": "string",
                "country_code": null,
                "limit": 1
              }
            }
          }
        }
      }
    },
    "/v1/maps/route": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/maps/route",
        "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/maps/route",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/maps/route",
                      "description": "Compute a route between two coordinates with distance, duration, and geometry (driving, cycling, or walking). Powered by OSRM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "from": {
                    "type": "object",
                    "properties": {
                      "lat": {
                        "type": "number"
                      },
                      "lon": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "lat",
                      "lon"
                    ],
                    "additionalProperties": false
                  },
                  "to": {
                    "type": "object",
                    "properties": {
                      "lat": {
                        "type": "number"
                      },
                      "lon": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "lat",
                      "lon"
                    ],
                    "additionalProperties": false
                  },
                  "profile": {
                    "default": "driving",
                    "type": "string",
                    "enum": [
                      "driving",
                      "cycling",
                      "walking"
                    ]
                  },
                  "overview": {
                    "default": "simplified",
                    "type": "string",
                    "enum": [
                      "full",
                      "simplified",
                      "false"
                    ]
                  }
                },
                "required": [
                  "from",
                  "to",
                  "profile",
                  "overview"
                ],
                "additionalProperties": false
              },
              "example": {
                "from": {
                  "lat": 0,
                  "lon": 0
                },
                "to": {
                  "lat": 0,
                  "lon": 0
                },
                "profile": "driving",
                "overview": "simplified"
              }
            }
          }
        }
      }
    },
    "/v1/text/redact-pii": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/text/redact-pii",
        "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/text/redact-pii",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/text/redact-pii",
                      "description": "Detect and mask PII (email, phone, IBAN, IP, credit card, SSN, URL) in text, with optional offsets. Local regex and NER.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50000
                  },
                  "entities": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "email",
                        "phone",
                        "iban",
                        "ip",
                        "credit_card",
                        "ssn_fr",
                        "ssn_us",
                        "url"
                      ]
                    }
                  },
                  "mask": {
                    "default": "[REDACTED]",
                    "type": "string",
                    "maxLength": 50
                  },
                  "return_offsets": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "text",
                  "mask",
                  "return_offsets"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "mask": "[REDACTED]",
                "return_offsets": false
              }
            }
          }
        }
      }
    },
    "/v1/eu/sanctions-check": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/eu/sanctions-check",
        "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/eu/sanctions-check",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/eu/sanctions-check",
                      "description": "Screen a name or wallet against the EU consolidated sanctions list (CFSP), with optional fuzzy matching and threshold.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "query_type": {
                    "default": "auto",
                    "type": "string",
                    "enum": [
                      "name",
                      "wallet",
                      "auto"
                    ]
                  },
                  "fuzzy": {
                    "default": true,
                    "type": "boolean"
                  },
                  "threshold": {
                    "default": 0.85,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "query",
                  "query_type",
                  "fuzzy",
                  "threshold"
                ],
                "additionalProperties": false
              },
              "example": {
                "query": "string",
                "query_type": "auto",
                "fuzzy": true,
                "threshold": 0.85
              }
            }
          }
        }
      }
    },
    "/v1/audio/bpm": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio/bpm",
        "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio/bpm",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/bpm",
                      "description": "Estimate the tempo (beats per minute) of an audio file. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/audio/key-detect": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio/key-detect",
        "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio/key-detect",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/key-detect",
                      "description": "Estimate the musical key of an audio file using the Krumhansl-Schmuckler method. Powered by librosa.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/finance/company-info": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/finance/company-info",
        "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/finance/company-info",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/finance/company-info",
                      "description": "Get a company overview by symbol (sector, market cap, financial ratios). Powered by Alpha Vantage OVERVIEW.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "symbol": {}
                },
                "required": [
                  "symbol"
                ],
                "additionalProperties": false
              },
              "example": {
                "symbol": null
              }
            }
          }
        }
      }
    },
    "/v1/image/generate/sdxl": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image/generate/sdxl",
        "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 250000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image/generate/sdxl",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "250000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 250000,
                        "estimatedPages": 1,
                        "totalEstimate": 250000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "250000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "250000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 250000,
                        "estimatedPages": 1,
                        "totalEstimate": 250000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "250000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "250000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 250000,
                        "estimatedPages": 1,
                        "totalEstimate": 250000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "250000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/sdxl",
                      "description": "Generate an image from a text prompt with configurable size, steps, and guidance. Powered by SDXL on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "negative_prompt": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "width": {
                    "default": 1024,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 512
                      },
                      {
                        "type": "number",
                        "const": 768
                      },
                      {
                        "type": "number",
                        "const": 1024
                      }
                    ]
                  },
                  "height": {
                    "default": 1024,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 512
                      },
                      {
                        "type": "number",
                        "const": 768
                      },
                      {
                        "type": "number",
                        "const": 1024
                      }
                    ]
                  },
                  "steps": {
                    "default": 30,
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50
                  },
                  "guidance_scale": {
                    "default": 7.5,
                    "type": "number",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "seed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 4294967295
                  },
                  "format": {
                    "default": "png",
                    "type": "string",
                    "enum": [
                      "png",
                      "jpeg"
                    ]
                  },
                  "return": {
                    "default": "url",
                    "type": "string",
                    "enum": [
                      "url",
                      "base64"
                    ]
                  }
                },
                "required": [
                  "prompt",
                  "width",
                  "height",
                  "steps",
                  "guidance_scale",
                  "format",
                  "return"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "width": 1024,
                "height": 1024,
                "steps": 30,
                "guidance_scale": 7.5,
                "format": "png",
                "return": "url"
              }
            }
          }
        }
      }
    },
    "/v1/text/summarize": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/text/summarize",
        "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/text/summarize",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/text/summarize",
                      "description": "Produce an extractive summary of text (configurable sentence count, en/fr/auto). Uses LexRank locally on CPU, no LLM.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50000
                  },
                  "max_sentences": {
                    "default": 5,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "language": {
                    "default": "auto",
                    "type": "string",
                    "enum": [
                      "en",
                      "fr",
                      "auto"
                    ]
                  }
                },
                "required": [
                  "text",
                  "max_sentences",
                  "language"
                ],
                "additionalProperties": false
              },
              "example": {
                "text": "string",
                "max_sentences": 5,
                "language": "auto"
              }
            }
          }
        }
      }
    },
    "/v1/memory/search": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/memory/search",
        "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/memory/search",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/memory/search",
                      "description": "Run a full-text search across stored memory entries within a namespace (configurable limit). Powered by SQLite FTS5.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "namespace": {
                    "default": "default",
                    "type": "string",
                    "maxLength": 100
                  },
                  "limit": {
                    "default": 10,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 50
                  }
                },
                "required": [
                  "query",
                  "namespace",
                  "limit"
                ],
                "additionalProperties": false
              },
              "example": {
                "query": "string",
                "namespace": "default",
                "limit": 10
              }
            }
          }
        }
      }
    },
    "/v1/code/run/bash": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/code/run/bash",
        "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/code/run/bash",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/code/run/bash",
                      "description": "Run a Bash script in an isolated sandbox with optional stdin and args; returns stdout, stderr, and exit code. Powered by self-hosted Piston.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 65536
                  },
                  "stdin": {
                    "type": "string",
                    "maxLength": 8192
                  },
                  "args": {
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 256
                    }
                  }
                },
                "required": [
                  "code"
                ],
                "additionalProperties": false
              },
              "example": {
                "code": "string",
                "stdin": "string",
                "args": [
                  "string"
                ]
              }
            }
          }
        }
      }
    },
    "/v1/image/generate/flux": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image/generate/flux",
        "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image/generate/flux",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/flux",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and quality. Powered by FLUX 1.1 Pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "aspect_ratio": {
                    "default": "1:1",
                    "type": "string",
                    "enum": [
                      "1:1",
                      "16:9",
                      "9:16",
                      "3:2",
                      "2:3",
                      "4:5",
                      "5:4"
                    ]
                  },
                  "output_format": {
                    "default": "webp",
                    "type": "string",
                    "enum": [
                      "webp",
                      "jpg",
                      "png"
                    ]
                  },
                  "output_quality": {
                    "default": 80,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  },
                  "seed": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "prompt",
                  "aspect_ratio",
                  "output_format",
                  "output_quality"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "aspect_ratio": "1:1",
                "output_format": "webp",
                "output_quality": 80
              }
            }
          }
        }
      }
    },
    "/v1/image/generate/imagen-4": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image/generate/imagen-4",
        "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image/generate/imagen-4",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/generate/imagen-4",
                      "description": "Generate an image from a text prompt with configurable aspect ratio, format, and safety level. Powered by Google Imagen 4 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "aspect_ratio": {
                    "default": "1:1",
                    "type": "string",
                    "enum": [
                      "1:1",
                      "3:4",
                      "4:3",
                      "9:16",
                      "16:9"
                    ]
                  },
                  "output_format": {
                    "default": "jpg",
                    "type": "string",
                    "enum": [
                      "jpg",
                      "png"
                    ]
                  },
                  "safety_filter_level": {
                    "default": "block_only_high",
                    "type": "string",
                    "enum": [
                      "block_only_high",
                      "block_medium_and_above",
                      "block_low_and_above"
                    ]
                  }
                },
                "required": [
                  "prompt",
                  "aspect_ratio",
                  "output_format",
                  "safety_filter_level"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "aspect_ratio": "1:1",
                "output_format": "jpg",
                "safety_filter_level": "block_only_high"
              }
            }
          }
        }
      }
    },
    "/v1/image/edit/nano-banana": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image/edit/nano-banana",
        "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image/edit/nano-banana",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100000,
                        "estimatedPages": 1,
                        "totalEstimate": 100000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/edit/nano-banana",
                      "description": "Edit an image from a text prompt, returning JPG or PNG. Powered by Google nano-banana (Gemini 2.5 image editor) on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "minLength": 1
                  },
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "output_format": {
                    "default": "jpg",
                    "type": "string",
                    "enum": [
                      "jpg",
                      "png"
                    ]
                  }
                },
                "required": [
                  "image",
                  "prompt",
                  "output_format"
                ],
                "additionalProperties": false
              },
              "example": {
                "image": "string",
                "prompt": "string",
                "output_format": "jpg"
              }
            }
          }
        }
      }
    },
    "/v1/image/edit/flux-kontext": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/image/edit/flux-kontext",
        "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 150000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/image/edit/flux-kontext",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/image/edit/flux-kontext",
                      "description": "Edit an input image from a text prompt with configurable aspect ratio and output format. Powered by FLUX Kontext Max on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "input_image": {
                    "type": "string",
                    "minLength": 1
                  },
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "aspect_ratio": {
                    "default": "match_input_image",
                    "type": "string",
                    "enum": [
                      "match_input_image",
                      "1:1",
                      "16:9",
                      "9:16",
                      "3:2",
                      "2:3"
                    ]
                  },
                  "output_format": {
                    "default": "jpg",
                    "type": "string",
                    "enum": [
                      "jpg",
                      "png"
                    ]
                  },
                  "safety_tolerance": {
                    "default": 2,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 6
                  },
                  "prompt_upsampling": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "input_image",
                  "prompt",
                  "aspect_ratio",
                  "output_format",
                  "safety_tolerance",
                  "prompt_upsampling"
                ],
                "additionalProperties": false
              },
              "example": {
                "input_image": "string",
                "prompt": "string",
                "aspect_ratio": "match_input_image",
                "output_format": "jpg",
                "safety_tolerance": 2,
                "prompt_upsampling": false
              }
            }
          }
        }
      }
    },
    "/v1/video/generate/veo-3-fast": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video/generate/veo-3-fast",
        "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video/generate/veo-3-fast",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video/generate/veo-3-fast",
                      "description": "Generate a short video from a text prompt (optional reference image, 16:9 or 9:16). Powered by Google Veo 3 Fast on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "image": {
                    "type": "string"
                  },
                  "aspect_ratio": {
                    "default": "16:9",
                    "type": "string",
                    "enum": [
                      "16:9",
                      "9:16"
                    ]
                  },
                  "seed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 4294967295
                  },
                  "enhance_prompt": {
                    "default": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "prompt",
                  "aspect_ratio",
                  "enhance_prompt"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "aspect_ratio": "16:9",
                "enhance_prompt": true
              }
            }
          }
        }
      }
    },
    "/v1/video/lipsync": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/video/lipsync",
        "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 300000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/video/lipsync",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/video/lipsync",
                      "description": "Synchronize a video's lip movements to a provided audio track, with selectable sync mode. Powered by Sync Labs lipsync-2-pro on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "video": {
                    "type": "string",
                    "minLength": 1
                  },
                  "audio": {
                    "type": "string",
                    "minLength": 1
                  },
                  "sync_mode": {
                    "default": "balanced",
                    "type": "string",
                    "enum": [
                      "balanced",
                      "cut_off",
                      "loop",
                      "bounce",
                      "silence"
                    ]
                  }
                },
                "required": [
                  "video",
                  "audio",
                  "sync_mode"
                ],
                "additionalProperties": false
              },
              "example": {
                "video": "string",
                "audio": "string",
                "sync_mode": "balanced"
              }
            }
          }
        }
      }
    },
    "/v1/audio/voice-clone": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio/voice-clone",
        "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 150000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio/voice-clone",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/voice-clone",
                      "description": "Synthesize speech in a cloned voice from a reference sample and target text (selectable language). Powered by Minimax voice-cloning on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "voice_sample": {
                    "type": "string",
                    "minLength": 1
                  },
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "language": {
                    "default": "auto",
                    "type": "string"
                  }
                },
                "required": [
                  "voice_sample",
                  "text",
                  "language"
                ],
                "additionalProperties": false
              },
              "example": {
                "voice_sample": "string",
                "text": "string",
                "language": "auto"
              }
            }
          }
        }
      }
    },
    "/v1/embed/clip": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/embed/clip",
        "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/embed/clip",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/embed/clip",
                      "description": "Generate a CLIP embedding vector for an image. Powered by clip-vit-large-patch14 on Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "image"
                ],
                "additionalProperties": false
              },
              "example": {
                "image": "string"
              }
            }
          }
        }
      }
    },
    "/v1/llm/gpt-4o-mini": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/llm/gpt-4o-mini",
        "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/llm/gpt-4o-mini",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/gpt-4o-mini",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by OpenAI GPT-4o mini via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 30000
                  },
                  "system_prompt": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "max_tokens": {
                    "default": 1024,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4096
                  },
                  "temperature": {
                    "default": 0.7,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "top_p": {
                    "default": 1,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "prompt",
                  "max_tokens",
                  "temperature",
                  "top_p"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "max_tokens": 1024,
                "temperature": 0.7,
                "top_p": 1
              }
            }
          }
        }
      }
    },
    "/v1/llm/claude-3.7-sonnet": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/llm/claude-3.7-sonnet",
        "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 20000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/llm/claude-3.7-sonnet",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "20000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 20000,
                        "estimatedPages": 1,
                        "totalEstimate": 20000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "20000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/claude-3.7-sonnet",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by Anthropic Claude 3.7 Sonnet via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 30000
                  },
                  "system_prompt": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "max_tokens": {
                    "default": 1024,
                    "type": "integer",
                    "minimum": 1024,
                    "maximum": 8192
                  },
                  "temperature": {
                    "default": 0.7,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "top_p": {
                    "default": 1,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "prompt",
                  "max_tokens",
                  "temperature",
                  "top_p"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "max_tokens": 1024,
                "temperature": 0.7,
                "top_p": 1
              }
            }
          }
        }
      }
    },
    "/v1/llm/deepseek-v3": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/llm/deepseek-v3",
        "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 3000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/llm/deepseek-v3",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "3000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "3000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 3000,
                        "estimatedPages": 1,
                        "totalEstimate": 3000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "3000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-v3",
                      "description": "Generate a chat completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek V3 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 30000
                  },
                  "system_prompt": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "max_tokens": {
                    "default": 1024,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4096
                  },
                  "temperature": {
                    "default": 0.7,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "top_p": {
                    "default": 1,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "prompt",
                  "max_tokens",
                  "temperature",
                  "top_p"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "max_tokens": 1024,
                "temperature": 0.7,
                "top_p": 1
              }
            }
          }
        }
      }
    },
    "/v1/llm/deepseek-r1": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/llm/deepseek-r1",
        "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 8000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/llm/deepseek-r1",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "8000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "8000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 8000,
                        "estimatedPages": 1,
                        "totalEstimate": 8000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "8000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/llm/deepseek-r1",
                      "description": "Generate a reasoning-model completion from a prompt (optional system prompt, max_tokens, temperature). Powered by DeepSeek R1 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 30000
                  },
                  "system_prompt": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "max_tokens": {
                    "default": 1024,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4096
                  },
                  "temperature": {
                    "default": 0.7,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "top_p": {
                    "default": 1,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "prompt",
                  "max_tokens",
                  "temperature",
                  "top_p"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "max_tokens": 1024,
                "temperature": 0.7,
                "top_p": 1
              }
            }
          }
        }
      }
    },
    "/v1/whisper-premium": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/whisper-premium",
        "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 12000, unit minute, chains base, polygon, solana. Human doc: https://tools402.dev/docs/whisper-premium",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "12000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "12000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "12000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "12000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "12000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 12000,
                        "estimatedPages": 1,
                        "totalEstimate": 12000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "12000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/whisper-premium",
                      "description": "Transcribe audio to text with a premium model; priced per minute. Powered by OpenAI gpt-4o-transcribe via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/ocr-premium": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ocr-premium",
        "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 15000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/ocr-premium",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ocr-premium",
                      "description": "Extract text from an image with layout and handwriting support using a vision model. Powered by GLM-4V-9B via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Raw binary request body (Content-Type: application/octet-stream)"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/background-remove-pro": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/background-remove-pro",
        "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 15000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/background-remove-pro",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/background-remove-pro",
                      "description": "Remove an image's background to a transparent PNG with refined hair and edge handling. Powered by Bria via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "image"
                ],
                "additionalProperties": false
              },
              "example": {
                "image": "string"
              }
            }
          }
        }
      }
    },
    "/v1/face/restore": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/face/restore",
        "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 15000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/face/restore",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "15000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "15000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 15000,
                        "estimatedPages": 1,
                        "totalEstimate": 15000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "15000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/face/restore",
                      "description": "Restore and upscale faces in a photo with configurable upscale and fidelity. Powered by CodeFormer via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "minLength": 1
                  },
                  "upscale": {
                    "default": 2,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 8
                  },
                  "fidelity": {
                    "default": 0.7,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "image",
                  "upscale",
                  "fidelity"
                ],
                "additionalProperties": false
              },
              "example": {
                "image": "string",
                "upscale": 2,
                "fidelity": 0.7
              }
            }
          }
        }
      }
    },
    "/v1/audio/music-generate": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/audio/music-generate",
        "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 300000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/audio/music-generate",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/audio/music-generate",
                      "description": "Generate music from a text prompt (optional negative prompt and seed). Powered by Google Lyria 2 via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "negative_prompt": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "seed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 4294967295
                  }
                },
                "required": [
                  "prompt"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "negative_prompt": "string",
                "seed": 0
              }
            }
          }
        }
      }
    },
    "/v1/3d/from-image": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/3d/from-image",
        "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 150000, unit request, chains base, polygon, solana. Human doc: https://tools402.dev/docs/3d/from-image",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "150000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "150000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 150000,
                        "estimatedPages": 1,
                        "totalEstimate": 150000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "150000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/3d/from-image",
                      "description": "Generate a textured 3D asset from a single image (configurable texture size and mesh simplification). Powered by Trellis via Replicate.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "minLength": 1
                  },
                  "texture_size": {
                    "default": 1024,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 512
                      },
                      {
                        "type": "number",
                        "const": 1024
                      },
                      {
                        "type": "number",
                        "const": 2048
                      }
                    ]
                  },
                  "mesh_simplify": {
                    "default": 0.5,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "image",
                  "texture_size",
                  "mesh_simplify"
                ],
                "additionalProperties": false
              },
              "example": {
                "image": "string",
                "texture_size": 1024,
                "mesh_simplify": 0.5
              }
            }
          }
        }
      }
    },
    "/v1/agent/memory/upsert": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/memory/upsert",
        "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500, unit item, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/memory/upsert",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500,
                        "estimatedPages": 1,
                        "totalEstimate": 500
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/upsert",
                      "description": "Store or update an item in agent memory with its text, namespace, and metadata for later semantic retrieval. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32768
                  },
                  "namespace": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[\\w:.-]+$"
                  },
                  "metadata": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "id",
                  "text"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "string",
                "text": "string"
              }
            }
          }
        }
      }
    },
    "/v1/agent/memory/query": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/memory/query",
        "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000, unit query, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/memory/query",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/query",
                      "description": "Retrieve the top-k most similar items from agent memory for a query, with optional namespace and metadata filter. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4096
                  },
                  "namespace": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[\\w:.-]+$"
                  },
                  "top_k": {
                    "default": 5,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "filter": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "query",
                  "top_k"
                ],
                "additionalProperties": false
              },
              "example": {
                "query": "string",
                "top_k": 5
              }
            }
          }
        }
      }
    },
    "/v1/agent/memory/delete": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/memory/delete",
        "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 100, unit item, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/memory/delete",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "100",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "100",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 100,
                        "estimatedPages": 1,
                        "totalEstimate": 100
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "100",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/memory/delete",
                      "description": "Delete one or more items from agent memory by id, with optional namespace. Backed by Pinecone serverless.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "ids": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    }
                  },
                  "namespace": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64,
                    "pattern": "^[\\w:.-]+$"
                  },
                  "bytes_hint": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "ids"
                ],
                "additionalProperties": false
              },
              "example": {
                "ids": [
                  "string"
                ],
                "namespace": "string",
                "bytes_hint": 0
              }
            }
          }
        }
      }
    },
    "/v1/agent/sandbox": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/sandbox",
        "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit 60s-execution, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/sandbox",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/sandbox",
                      "description": "Run Python, Node, or Bash code in an isolated sandbox with optional files, env, and network; returns output. Dynamic pricing: ceil(timeout_ms × 10000 / 60000), ×2 if allow_network=true. Powered by Modal.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "language": {
                    "type": "string",
                    "enum": [
                      "python",
                      "node",
                      "bash"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 65536
                  },
                  "timeout_ms": {
                    "default": 30000,
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 60000
                  },
                  "files": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "env": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "allow_network": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "language",
                  "code",
                  "timeout_ms",
                  "allow_network"
                ],
                "additionalProperties": false
              },
              "example": {
                "language": "python",
                "code": "string",
                "timeout_ms": 30000,
                "allow_network": false
              }
            }
          }
        }
      }
    },
    "/v1/agent/browse": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/browse",
        "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 2000, unit page, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/browse",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "2000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "2000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 2000,
                        "estimatedPages": 1,
                        "totalEstimate": 2000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "2000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/browse",
                      "description": "Load a web page in an isolated worker and return a screenshot, DOM, or both, with optional interactions and viewport. Powered by Playwright.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "wait_for": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10000
                      }
                    ]
                  },
                  "viewport": {
                    "type": "object",
                    "properties": {
                      "w": {
                        "type": "integer",
                        "minimum": 320,
                        "maximum": 1920
                      },
                      "h": {
                        "type": "integer",
                        "minimum": 200,
                        "maximum": 1080
                      }
                    },
                    "additionalProperties": false
                  },
                  "return": {
                    "type": "string",
                    "enum": [
                      "screenshot",
                      "dom",
                      "both"
                    ]
                  },
                  "interactions": {
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "click"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "action",
                            "selector"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "fill"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 10000
                            }
                          },
                          "required": [
                            "action",
                            "selector",
                            "value"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "wait"
                            },
                            "ms": {
                              "type": "integer",
                              "minimum": 50,
                              "maximum": 5000
                            }
                          },
                          "required": [
                            "action",
                            "ms"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "waitFor"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "timeout_ms": {
                              "type": "integer",
                              "minimum": 50,
                              "maximum": 10000
                            }
                          },
                          "required": [
                            "action",
                            "selector"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "select"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 1000
                            }
                          },
                          "required": [
                            "action",
                            "selector",
                            "value"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "hover"
                            },
                            "selector": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "action",
                            "selector"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "const": "press"
                            },
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 50
                            }
                          },
                          "required": [
                            "action",
                            "key"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "headers": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "url",
                  "return"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com",
                "return": "screenshot"
              }
            }
          }
        }
      }
    },
    "/v1/agent/critique": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/critique",
        "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit call, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/critique",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/critique",
                      "description": "Critique a target response against a prompt with multiple LLMs in parallel and return a synthesized assessment. Claude, GPT, and Gemini.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8192
                  },
                  "target_response": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16384
                  },
                  "critic_models": {
                    "minItems": 1,
                    "maxItems": 5,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "synthesis_model": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "prompt",
                  "target_response"
                ],
                "additionalProperties": false
              },
              "example": {
                "prompt": "string",
                "target_response": "string"
              }
            }
          }
        }
      }
    },
    "/v1/agent/judge": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/agent/judge",
        "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 80000, unit judgment, chains base, polygon, solana. Human doc: https://tools402.dev/docs/agent/judge",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "80000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 80000,
                        "estimatedPages": 1,
                        "totalEstimate": 80000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "80000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "80000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 80000,
                        "estimatedPages": 1,
                        "totalEstimate": 80000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "80000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "80000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 80000,
                        "estimatedPages": 1,
                        "totalEstimate": 80000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "80000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/agent/judge",
                      "description": "Answer a question by polling up to 5 LLMs in parallel and returning a consensus (majority, weighted, or unanimous), with optional explanation.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "question": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4096
                  },
                  "models": {
                    "minItems": 1,
                    "maxItems": 5,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    }
                  },
                  "voting_mode": {
                    "default": "majority",
                    "type": "string",
                    "enum": [
                      "majority",
                      "weighted",
                      "unanimous"
                    ]
                  },
                  "explain": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "question",
                  "voting_mode",
                  "explain"
                ],
                "additionalProperties": false
              },
              "example": {
                "question": "string",
                "voting_mode": "majority",
                "explain": false
              }
            }
          }
        }
      }
    },
    "/v1/_bundles/research-agent/purchase": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/_bundles/research-agent/purchase",
        "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 500000, unit bundle, chains base, polygon, solana. Human doc: https://tools402.dev/docs/_bundles/research-agent/purchase",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "500000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500000,
                        "estimatedPages": 1,
                        "totalEstimate": 500000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "500000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "500000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500000,
                        "estimatedPages": 1,
                        "totalEstimate": 500000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "500000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "500000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 500000,
                        "estimatedPages": 1,
                        "totalEstimate": 500000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "500000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/research-agent/purchase",
                      "description": "Prepaid research-agent bundle ($0.50) — 200× url-text + 100× sitemap-parse + 40× nlp/sentiment.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "wallet": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "wallet": "0x0000000000000000000000000000000000000000"
              }
            }
          }
        }
      }
    },
    "/v1/_bundles/document-agent/purchase": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/_bundles/document-agent/purchase",
        "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 300000, unit bundle, chains base, polygon, solana. Human doc: https://tools402.dev/docs/_bundles/document-agent/purchase",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "300000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "300000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 300000,
                        "estimatedPages": 1,
                        "totalEstimate": 300000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "300000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/document-agent/purchase",
                      "description": "Prepaid document-agent bundle ($0.30) — 50× ocr + 20× md-pdf + 15× memory/store.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "wallet": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "wallet": "0x0000000000000000000000000000000000000000"
              }
            }
          }
        }
      }
    },
    "/v1/_bundles/voice-agent/purchase": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/_bundles/voice-agent/purchase",
        "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 1000000, unit bundle, chains base, polygon, solana. Human doc: https://tools402.dev/docs/_bundles/voice-agent/purchase",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "1000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "1000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "1000000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "1000000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "1000000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 1000000,
                        "estimatedPages": 1,
                        "totalEstimate": 1000000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "1000000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_bundles/voice-agent/purchase",
                      "description": "Prepaid voice-agent bundle ($1.00) — 100× whisper + 3× audio/voice-clone + 1× video/lipsync.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "wallet": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "wallet": "0x0000000000000000000000000000000000000000"
              }
            }
          }
        }
      }
    },
    "/v1/_audit": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/_audit",
        "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 5000, unit tx, chains base, polygon, solana. Human doc: https://tools402.dev/docs/_audit",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "5000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "5000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 5000,
                        "estimatedPages": 1,
                        "totalEstimate": 5000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "5000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/_audit",
                      "description": "Settlement audit trail — Ed25519-signed PDF (tx_hash, facilitator, endpoint, amount, signature). POST /v1/_audit/:txHash.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Empty JSON body"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/ironprompt-final/compile": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/ironprompt-final/compile",
        "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 50000, unit call, chains base. Human doc: https://tools402.dev/docs/ironprompt-final/compile",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "50000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "50000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 50000,
                        "estimatedPages": 1,
                        "totalEstimate": 50000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "50000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/ironprompt-final/compile",
                      "description": "IronPrompt — anti-hallucination prompt compiler for Claude. Plain-language task in, structured multi-phase prompt out.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false,
                "description": "Empty JSON body — paywall mode returns JWT after x402 payment"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/tate-programs/x402-readiness": {
      "post": {
        "tags": [
          "x402"
        ],
        "summary": "Pay-per-call — /v1/tate-programs/x402-readiness",
        "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path. Unpaid POST returns a live x402 402 quote (six accepts[] rails). Catalog: atomic 10000, unit call, chains base. Human doc: https://tools402.dev/docs/tate-programs/x402-readiness",
        "parameters": [
          {
            "name": "X-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Base64url x402 payment proof after satisfying accepts[] quote"
          },
          {
            "name": "X-Session-Token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pre-signed EIP-3009 session token (transfer-with-authorization rail)"
          }
        ],
        "responses": {
          "200": {
            "description": "Paid response body (endpoint-specific JSON or binary)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Endpoint-specific JSON or binary response body after successful x402 payment"
                }
              }
            }
          },
          "402": {
            "description": "Payment required — read accepts[] (6 entries), pay on chosen chain/scheme, retry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "accepts",
                    "error"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "const": 1
                    },
                    "accepts": {
                      "type": "array",
                      "minItems": 6,
                      "maxItems": 6,
                      "items": {
                        "type": "object",
                        "required": [
                          "scheme",
                          "network",
                          "maxAmountRequired",
                          "asset",
                          "payTo",
                          "resource",
                          "description",
                          "mimeType",
                          "maxTimeoutSeconds",
                          "extra"
                        ],
                        "properties": {
                          "scheme": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "transfer-with-authorization",
                              "spl-transfer"
                            ]
                          },
                          "network": {
                            "type": "string",
                            "enum": [
                              "base",
                              "polygon",
                              "solana"
                            ]
                          },
                          "maxAmountRequired": {
                            "type": "string",
                            "description": "USDC atomic units (6 decimals) as decimal string"
                          },
                          "asset": {
                            "type": "string",
                            "description": "USDC contract or mint address"
                          },
                          "payTo": {
                            "type": "string",
                            "description": "Buyer recipient for this chain"
                          },
                          "resource": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          },
                          "mimeType": {
                            "type": "string"
                          },
                          "maxTimeoutSeconds": {
                            "type": "integer"
                          },
                          "extra": {
                            "type": "object",
                            "additionalProperties": true
                          }
                        }
                      },
                      "description": "Six payment rails: base(exact+transfer-with-authorization), polygon(exact+transfer-with-authorization), solana(exact+spl-transfer)."
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "x402Version": 1,
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "base",
                      "maxAmountRequired": "10000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "transfer-with-authorization",
                      "network": "polygon",
                      "maxAmountRequired": "10000",
                      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 30,
                      "extra": {
                        "sessionHeader": "X-Session-Token",
                        "generateToken": "https://tools402.dev/docs/integrations#session-token",
                        "gasPolicy": "tools402-pays"
                      }
                    },
                    {
                      "scheme": "exact",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "perPagePrice": 10000,
                        "estimatedPages": 1,
                        "totalEstimate": 10000
                      }
                    },
                    {
                      "scheme": "spl-transfer",
                      "network": "solana",
                      "maxAmountRequired": "10000",
                      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                      "payTo": "Gt9EC4XYqD9pUmTFAfBy9b3gbGG8eiv3ZNLMLCuyU8w8",
                      "resource": "https://api.tools402.dev/v1/tate-programs/x402-readiness",
                      "description": "Safe no-payment x402 and agent-commerce readiness snapshot with proof links and paid review path.",
                      "mimeType": "application/json",
                      "maxTimeoutSeconds": 60,
                      "extra": {
                        "facilitatorBroadcast": "true",
                        "feePayer": "facilitator",
                        "gasPolicy": "facilitator-pays"
                      }
                    }
                  ],
                  "error": "payment_required"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": {},
                "description": "Opaque JSON body proxied to seller upstream"
              },
              "example": {}
            }
          }
        }
      }
    },
    "/v1/_seller/register": {
      "post": {
        "tags": [
          "seller"
        ],
        "summary": "Register seller slug and payout chain",
        "description": "Free seller onboarding. Binds slug + payout_chain to wallet via EIP-712 register signatures per chain. Cannot be done with a Bearer API key alone.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "primary_wallet",
                  "wallets",
                  "signatures",
                  "slug",
                  "ts"
                ],
                "description": "Register a seller slug and payout chain (Model A). Free — no x402. Each chain wallet signs register action.",
                "properties": {
                  "primary_wallet": {
                    "type": "string"
                  },
                  "wallets": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "signatures": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "slug": {
                    "type": "string",
                    "pattern": "^[a-z0-9-]{3,32}$",
                    "description": "Globally unique public slug"
                  },
                  "ts": {
                    "type": "integer"
                  },
                  "payout_chain": {
                    "type": "string",
                    "enum": [
                      "base",
                      "polygon",
                      "arbitrum",
                      "optimism",
                      "avalanche",
                      "solana"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Seller registered"
          },
          "400": {
            "description": "Invalid slug, wallet, or payout chain",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "invalid_signature",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/_seller/{wallet}/endpoints": {
      "post": {
        "tags": [
          "seller"
        ],
        "summary": "Publish seller endpoint (probe-gated)",
        "description": "Add upstream endpoint after probe pass. Auth: wallet signature (add_endpoint) or Bearer with endpoints:write scope for the same wallet.",
        "security": [
          {
            "T402Bearer": []
          }
        ],
        "parameters": [
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Seller wallet (must match signer or API key wallet)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "path_suffix",
                  "upstream_url",
                  "atomic_price",
                  "unit",
                  "desc",
                  "mode",
                  "signature",
                  "timestamp"
                ],
                "description": "Publish a seller endpoint after upstream probe. Wallet signature or Bearer endpoints:write.",
                "properties": {
                  "path_suffix": {
                    "type": "string",
                    "pattern": "^[a-z0-9-]{3,64}$"
                  },
                  "upstream_url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "atomic_price": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "unit": {
                    "type": "string",
                    "maxLength": 32
                  },
                  "desc": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "paywall",
                      "proxy"
                    ]
                  },
                  "sample_body": {},
                  "alert_email": {
                    "type": "string",
                    "format": "email"
                  },
                  "signature": {
                    "type": "string"
                  },
                  "timestamp": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Endpoint published at /v1/{slug}/{path_suffix}"
          },
          "403": {
            "description": "insufficient_scope or probe failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/keys": {
      "post": {
        "tags": [
          "api-keys"
        ],
        "summary": "Issue API key (wallet signature only)",
        "description": "Mint t402_live_ credential. Requires fresh EIP-712 issue_api_key signature. Returns secret once. Bearer Authorization on this route is rejected with 403 signature_required — cannot escalate via existing key.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "wallet",
                  "scopes",
                  "signature",
                  "timestamp"
                ],
                "description": "Issue an API key. Requires fresh wallet signature (action issue_api_key). Bearer on this route returns 403 signature_required.",
                "properties": {
                  "wallet": {
                    "type": "string",
                    "description": "EVM 0x-hex or Solana base58 root wallet"
                  },
                  "label": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 64
                  },
                  "scopes": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string",
                      "enum": [
                        "read",
                        "balance:read",
                        "endpoints:write",
                        "pay",
                        "payout:request"
                      ],
                      "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
                    }
                  },
                  "signature": {
                    "type": "string",
                    "description": "EIP-712 or Ed25519 signature hex/base58"
                  },
                  "timestamp": {
                    "type": "integer",
                    "description": "Unix seconds; window [now−300s, now+60s]"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Key issued — store api_key now",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "api_key",
                    "key_prefix",
                    "scopes",
                    "warning"
                  ],
                  "properties": {
                    "api_key": {
                      "type": "string",
                      "example": "t402_live_aB3xK9mN2pQ7rS4tU8vW1yZ5cD6fG0hJ"
                    },
                    "key_prefix": {
                      "type": "string",
                      "example": "t402_live_aB3x"
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "read",
                          "balance:read",
                          "endpoints:write",
                          "pay",
                          "payout:request"
                        ],
                        "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
                      }
                    },
                    "warning": {
                      "type": "string",
                      "example": "Store this key now. It will not be shown again."
                    }
                  }
                },
                "example": {
                  "api_key": "t402_live_aB3xK9mN2pQ7rS4tU8vW1yZ5cD6fG0hJ",
                  "key_prefix": "t402_live_aB3x",
                  "scopes": [
                    "read",
                    "pay"
                  ],
                  "warning": "Store this key now. It will not be shown again."
                }
              }
            }
          },
          "400": {
            "description": "invalid_json | invalid_input | invalid_scopes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_json": {
                    "value": {
                      "error": "invalid_json"
                    }
                  },
                  "invalid_input": {
                    "value": {
                      "error": "invalid_input",
                      "issues": []
                    }
                  },
                  "invalid_scopes": {
                    "value": {
                      "error": "invalid_scopes"
                    }
                  },
                  "invalid_scopes_duplicate_scopes": {
                    "value": {
                      "error": "invalid_scopes",
                      "message": "duplicate scopes"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "invalid_signature",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "invalid_signature"
                }
              }
            }
          },
          "403": {
            "description": "signature_required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "signature_required"
                }
              }
            }
          },
          "413": {
            "description": "body_too_large",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "body_too_large"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "api-keys"
        ],
        "summary": "List API key prefixes",
        "description": "List key_prefix entries for the wallet. Scope read via Bearer, or wallet signature query params (wallet, sig, ts).",
        "security": [
          {
            "T402Bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Key metadata without secrets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "wallet",
                    "keys"
                  ],
                  "properties": {
                    "wallet": {
                      "type": "string"
                    },
                    "keys": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "key_prefix": {
                            "type": "string"
                          },
                          "label": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "scopes": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "created_at": {
                            "type": "integer"
                          },
                          "last_used_at": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "expires_at": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "revoked_at": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid_wallet",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "invalid_wallet"
                }
              }
            }
          },
          "401": {
            "description": "invalid_api_key | unauthorized | invalid_timestamp | invalid_signature",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_api_key": {
                    "value": {
                      "error": "invalid_api_key"
                    }
                  },
                  "unauthorized": {
                    "value": {
                      "error": "unauthorized"
                    }
                  },
                  "invalid_timestamp": {
                    "value": {
                      "error": "invalid_timestamp"
                    }
                  },
                  "invalid_signature": {
                    "value": {
                      "error": "invalid_signature"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "insufficient_scope",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "insufficient_scope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/keys/{id}": {
      "delete": {
        "tags": [
          "api-keys"
        ],
        "summary": "Revoke own API key",
        "description": "Revoke key by id. Bearer with full scopes on self, or wallet signature.",
        "security": [
          {
            "T402Bearer": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Key revoked"
          },
          "400": {
            "description": "invalid_id | invalid_wallet",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_id": {
                    "value": {
                      "error": "invalid_id"
                    }
                  },
                  "invalid_wallet": {
                    "value": {
                      "error": "invalid_wallet"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "invalid_api_key | unauthorized | invalid_timestamp | invalid_signature",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_api_key": {
                    "value": {
                      "error": "invalid_api_key"
                    }
                  },
                  "unauthorized": {
                    "value": {
                      "error": "unauthorized"
                    }
                  },
                  "invalid_timestamp": {
                    "value": {
                      "error": "invalid_timestamp"
                    }
                  },
                  "invalid_signature": {
                    "value": {
                      "error": "invalid_signature"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "insufficient_scope",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "insufficient_scope"
                }
              }
            }
          },
          "404": {
            "description": "key_not_found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "key_not_found"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/keys/{keyId}/configure": {
      "post": {
        "tags": [
          "api-keys"
        ],
        "summary": "Configure own API key (SIWE)",
        "description": "Partial update of name, daily_cap_usdc_micro, and/or chain_preference on an owned key. At least one field required. Auth via SIWE personal_sign (action: configure_api_key). No Bearer required.",
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "wallet",
                  "signature",
                  "message",
                  "nonceId"
                ],
                "properties": {
                  "wallet": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "signature": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "nonceId": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "dailyCapUsdcMicro": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "chainPreference": {
                    "type": "string",
                    "enum": [
                      "base",
                      "ethereum",
                      "any"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Key settings updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "updatedAt": {
                      "type": "integer"
                    },
                    "key": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "daily_cap_usdc_micro": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "chain_preference": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid_id | invalid_input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_id": {
                    "value": {
                      "error": "invalid_id"
                    }
                  },
                  "invalid_input": {
                    "value": {
                      "error": "invalid_input",
                      "issues": []
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "invalid_signature | action_mismatch | keyid_mismatch | params_mismatch",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_signature": {
                    "value": {
                      "error": "invalid_signature"
                    }
                  },
                  "action_mismatch": {
                    "value": {
                      "error": "action_mismatch"
                    }
                  },
                  "keyid_mismatch": {
                    "value": {
                      "error": "keyid_mismatch"
                    }
                  },
                  "params_mismatch": {
                    "value": {
                      "error": "params_mismatch"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "forbidden"
                }
              }
            }
          },
          "404": {
            "description": "key_not_found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "key_not_found"
                }
              }
            }
          },
          "409": {
            "description": "key_revoked",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "key_revoked"
                }
              }
            }
          },
          "410": {
            "description": "nonce_consumed | nonce_expired",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "nonce_consumed": {
                    "value": {
                      "error": "nonce_consumed"
                    }
                  },
                  "nonce_expired": {
                    "value": {
                      "error": "nonce_expired"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "body_too_large",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "body_too_large"
                }
              }
            }
          }
        }
      }
    },
    "/v1/account": {
      "get": {
        "tags": [
          "api-keys"
        ],
        "summary": "Unified account balance",
        "description": "Read earned, spent, and withdrawable balances. withdrawable_atomic = net of ledger rows where settlement_id IS NULL. Scope balance:read via Bearer or wallet stats signature.",
        "security": [
          {
            "T402Bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Account balances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "wallet",
                    "earned_atomic",
                    "spent_atomic",
                    "withdrawable_atomic",
                    "payout_chain",
                    "endpoints_count"
                  ],
                  "properties": {
                    "wallet": {
                      "type": "string"
                    },
                    "earned_atomic": {
                      "type": "string",
                      "description": "Total net seller earnings (amount × (1 − take_rate))"
                    },
                    "spent_atomic": {
                      "type": "string",
                      "description": "Total USDC spent as buyer (ledger payer rows)"
                    },
                    "withdrawable_atomic": {
                      "type": "string",
                      "description": "Net seller earnings where settlement_id IS NULL (unsettled, retirable)"
                    },
                    "payout_chain": {
                      "type": "string",
                      "enum": [
                        "base",
                        "polygon",
                        "arbitrum",
                        "optimism",
                        "avalanche",
                        "solana"
                      ]
                    },
                    "endpoints_count": {
                      "type": "integer"
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "read",
                          "balance:read",
                          "endpoints:write",
                          "pay",
                          "payout:request"
                        ],
                        "description": "read: List endpoints, stats, and API key prefixes for the wallet. · balance:read: Read unified account balance via GET /v1/account. · endpoints:write: Publish, update, or soft-delete seller endpoints. · pay: Buyer identity scope — x402 X-Payment / X-Session-Token proof still required per paid call. · payout:request: Trigger payout toward the registered payout address only (never a caller-supplied destination)."
                      },
                      "description": "Present when authenticated via Bearer API key"
                    }
                  },
                  "example": {
                    "wallet": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
                    "earned_atomic": "1234500",
                    "spent_atomic": "98000",
                    "withdrawable_atomic": "560000",
                    "payout_chain": "base",
                    "endpoints_count": 7,
                    "scopes": [
                      "read",
                      "balance:read",
                      "endpoints:write"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid_wallet",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "invalid_wallet"
                }
              }
            }
          },
          "401": {
            "description": "invalid_api_key | unauthorized | invalid_timestamp | invalid_signature",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "examples": {
                  "invalid_api_key": {
                    "value": {
                      "error": "invalid_api_key"
                    }
                  },
                  "unauthorized": {
                    "value": {
                      "error": "unauthorized"
                    }
                  },
                  "invalid_timestamp": {
                    "value": {
                      "error": "invalid_timestamp"
                    }
                  },
                  "invalid_signature": {
                    "value": {
                      "error": "invalid_signature"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "insufficient_scope",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "insufficient_scope"
                }
              }
            }
          },
          "500": {
            "description": "internal_error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "error": "internal_error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/_meta": {
      "get": {
        "tags": [
          "utility"
        ],
        "summary": "Live endpoint catalog",
        "description": "Discover all 159 endpoints, atomic pricing, accepted_chains, and categories. Free (no x402).",
        "responses": {
          "200": {
            "description": "Catalog snapshot",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "version": "1.0.0",
                  "total": 159,
                  "by_category": {
                    "documents": 16,
                    "audio": 20,
                    "images": 27,
                    "web": 39,
                    "validation": 25,
                    "conversions": 20,
                    "agent-native": 10,
                    "community": 2
                  },
                  "endpoints": [
                    {
                      "path": "/v1/pdf-md",
                      "seller": "tools402",
                      "atomic": 10000,
                      "priceAtomic": 10000,
                      "priceUsdc": "0.010000",
                      "unit": "page",
                      "desc": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "description": "Convert PDF to Markdown; returns { markdown, pages }. Priced per page. Uses pdf2md.",
                      "category": "documents",
                      "lib": "pdf2md",
                      "compute": "yellow",
                      "recent_tx": [],
                      "accepted_chains": [
                        "base",
                        "polygon",
                        "solana"
                      ]
                    },
                    {
                      "path": "/v1/pdf-text",
                      "seller": "tools402",
                      "atomic": 5000,
                      "priceAtomic": 5000,
                      "priceUsdc": "0.005000",
                      "unit": "page",
                      "desc": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "description": "Extract plain text from PDF; returns { text, pages }. Priced per page. Uses pdf-parse.",
                      "category": "documents",
                      "lib": "pdf-parse",
                      "compute": "yellow",
                      "recent_tx": [],
                      "accepted_chains": [
                        "base",
                        "polygon",
                        "solana"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/_health": {
      "get": {
        "tags": [
          "utility"
        ],
        "summary": "Detailed health (RPC, SQLite, facilitators)",
        "description": "Deep liveness from _health_detailed.ts: RPC probe, SQLite, worker counts, per-chain facilitator status, cross-chain block. Returns 503 when degraded.",
        "responses": {
          "200": {
            "description": "Operational",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Degraded subsystem",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/_status": {
      "get": {
        "tags": [
          "utility"
        ],
        "summary": "Operational status and uptime",
        "description": "Probes, uptime percentiles, cross-chain settlement summary. Cache-Control no-store.",
        "responses": {
          "200": {
            "description": "Status snapshot",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tools402": {
    "positioning": "No account required to start (pay x402 direct). Optional API key for agents — sign once, one header per call.",
    "demoEndpoint": "/v1/pdf-md",
    "eip712Domain": {
      "name": "tools402",
      "version": "1",
      "chainId": 8453
    },
    "acceptsCount": 6
  }
}
