{"openapi":"3.1.0","info":{"title":"ScanPay","version":"1.1.0","contact":{"name":"ScanPay ops","email":"scanpay-ops@fldubai.com"},"description":"Deterministic pre-execution security scanning for AI-agent-generated Python and JavaScript/TypeScript code. 45 rules, no code execution, no model inference.","x-guidance":"INTEGRATION: before an agent executes or deploys generated Python/JS/TS code, POST it to /api/v1/scan ($0.05) or /api/v1/quick ($0.01) and act on the findings. x402 v2 paid: call unpaid to get a 402 with Base (eip155:8453) and Solana accepts, then retry with the PAYMENT-SIGNATURE header (PAYMENT-RESPONSE returns the settlement receipt). Prepaid pack: POST /api/v1/credits ($5 for 200 scans -> X-API-Key, then POST /api/v1/key/scan). Deep report: /api/v1/deep-scan ($10). Input: JSON {source_code, language}. Output: findings with rule_id, severity, category, line ranges, remediation."},"paths":{"/api/v1/scan":{"post":{"operationId":"scan_basic","summary":"Deterministic security scan ($0.05)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source_code":{"type":"string","maxLength":102400,"description":"UTF-8 source code to scan"},"language":{"type":"string","enum":["python","javascript","typescript","tsx"],"default":"python"}},"required":["source_code"]}}}},"responses":{"200":{"description":"Scan findings","content":{"application/json":{"schema":{"type":"object","properties":{"findings":{"type":"array","items":{"type":"object"}},"findings_count":{"type":"integer"},"max_severity":{"type":["string","null"]},"source_sha256":{"type":"string"}},"required":["findings","findings_count","max_severity","source_sha256"]}}}},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/quick":{"post":{"operationId":"scan_quick","summary":"One-cent quick verdict ($0.01)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source_code":{"type":"string"},"language":{"type":"string","enum":["python","javascript","typescript","tsx"],"default":"python"}},"required":["source_code"]}}}},"responses":{"200":{"description":"Quick verdict","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":"string"},"findings_count":{"type":"integer"},"max_severity":{"type":["string","null"]}},"required":["verdict","findings_count","max_severity"]}}}},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/page-extract":{"get":{"operationId":"page_extract_get","summary":"Clean webpage text ($0.002)","tags":["extract"],"parameters":[{"name":"url","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Clean text"},"402":{"description":"Payment Required"}}}},"/api/v1/change-detect":{"get":{"operationId":"change_detect_get","summary":"Page change detection ($0.005)","tags":["monitoring"],"parameters":[{"name":"url","in":"query","schema":{"type":"string"}},{"name":"state_key","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Change report"},"402":{"description":"Payment Required"}}}},"/api/v1/crypto-price":{"get":{"operationId":"crypto_price_get","summary":"Crypto spot price ($0.001)","tags":["crypto"],"parameters":[{"name":"symbols","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Prices"},"402":{"description":"Payment Required"}}},"post":{"operationId":"crypto_price","summary":"Crypto spot price ($0.001)","tags":["crypto"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"symbols":{"type":"array","items":{"type":"string"}}}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Prices"},"402":{"description":"Payment Required"}}}},"/api/v1/gas-estimate":{"get":{"operationId":"gas_estimate_get","summary":"Gas price estimate ($0.001)","tags":["crypto"],"parameters":[{"name":"network","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Gas estimates"},"402":{"description":"Payment Required"}}}},"/api/v1/fx-rate":{"get":{"operationId":"fx_rate_get","summary":"FX rate ($0.002)","tags":["finance"],"parameters":[{"name":"base","in":"query","schema":{"type":"string"}},{"name":"quote","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"FX rate"},"402":{"description":"Payment Required"}}}},"/api/v1/token-balance":{"post":{"operationId":"token_balance","summary":"ERC-20 token balance via eth_call ($0.002)","tags":["crypto","blockchain-data"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"token":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address","token"]}}}},"responses":{"200":{"description":"Token balance"},"402":{"description":"Payment Required"}}}},"/api/v1/block-height":{"get":{"operationId":"block_height_get","summary":"Get the latest Base or Ethereum block number (block height), block hash and timestamp ($0.001)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"block_height","summary":"Get the latest Base or Ethereum block number (block height), block hash and timestamp ($0.001)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"network":{"type":"string","enum":["base","ethereum"]}},"required":["network"]}}}}}},"/api/v1/tx":{"get":{"operationId":"tx_get","summary":"Get a transaction by hash on Base or Ethereum: from, to, value, nonce, gas ($0.005)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"hash","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"tx","summary":"Get a transaction by hash on Base or Ethereum: from, to, value, nonce, gas ($0.005)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["hash"]}}}}}},"/api/v1/tx-receipt":{"get":{"operationId":"tx_receipt_get","summary":"Get a transaction receipt by hash: success, gas used, logs count, contract address ($0.005)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"hash","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"tx_receipt","summary":"Get a transaction receipt by hash: success, gas used, logs count, contract address ($0.005)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["hash"]}}}}}},"/api/v1/nonce":{"get":{"operationId":"nonce_get","summary":"Get the next transaction nonce for a wallet address on Base or Ethereum ($0.002)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"nonce","summary":"Get the next transaction nonce for a wallet address on Base or Ethereum ($0.002)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address"]}}}}}},"/api/v1/contract-info":{"get":{"operationId":"contract_info_get","summary":"Inspect a contract: bytecode size, proxy implementation, ERC-20 name, symbol and decimals ($0.003)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"contract_info","summary":"Inspect a contract: bytecode size, proxy implementation, ERC-20 name, symbol and decimals ($0.003)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address"]}}}}}},"/api/v1/token-supply":{"get":{"operationId":"token_supply_get","summary":"Get ERC-20 or ERC-721 token total supply and decimals for a token contract ($0.002)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"token_supply","summary":"Get ERC-20 or ERC-721 token total supply and decimals for a token contract ($0.002)","tags":["blockchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address"]}}}}}},"/api/v1/token-preflight":{"get":{"operationId":"token_preflight_get","summary":"Token safety check / token risk preflight for a Base token: honeypot-style flags, proxy, owner, mint and blacklist selectors, Uniswap liquidity, risk score ($0.005)","tags":["blockchain","token","risk"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string","enum":["base","ethereum"]}}]},"post":{"operationId":"token_preflight","summary":"Token safety check / token risk preflight for a Base token: honeypot-style flags, proxy, owner, mint and blacklist selectors, Uniswap liquidity, risk score ($0.005)","tags":["blockchain","token","risk"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address"]}}}}}},"/api/v1/ens":{"get":{"operationId":"ens_get","summary":"Resolve an ENS name to an address, or reverse-resolve a wallet address to its primary ENS name ($0.005)","tags":["ethereum","ens"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"name","in":"query","schema":{"type":"string"}},{"name":"address","in":"query","schema":{"type":"string"}}]},"post":{"operationId":"ens","summary":"Resolve an ENS name to an address, or reverse-resolve a wallet address to its primary ENS name ($0.005)","tags":["ethereum","ens"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"}}}}}}}},"/api/v1/wallet-balance":{"get":{"operationId":"wallet_balance_get","summary":"Get a wallet balance: native ETH or Base balance plus up to 20 ERC-20 token balances ($0.003)","tags":["blockchain","wallet"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"tokens","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string"}}]},"post":{"operationId":"wallet_balance","summary":"Get a wallet balance: native ETH or Base balance plus up to 20 ERC-20 token balances ($0.003)","tags":["blockchain","wallet"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"tokens":{"type":"array","items":{"type":"string"}},"network":{"type":"string"}}}}}}}},"/api/v1/tx-logs":{"get":{"operationId":"tx_logs_get","summary":"Get event logs for a contract via eth_getLogs: block range, topic0 filter, transaction hashes ($0.005)","tags":["blockchain","logs"],"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"topic0","in":"query","schema":{"type":"string"}},{"name":"blocks","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"network","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Logs"},"402":{"description":"Payment Required"}}},"post":{"operationId":"tx_logs","summary":"Get event logs for a contract via eth_getLogs: block range, topic0 filter, transaction hashes ($0.005)","tags":["blockchain","logs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Logs"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"topic0":{"type":"string"},"blocks":{"type":"integer"},"limit":{"type":"integer"},"network":{"type":"string"}}}}}}}},"/api/v1/nft-metadata":{"get":{"operationId":"nft_metadata_get","summary":"Get NFT metadata for an ERC-721 or ERC-1155 token id: tokenURI, collection name and symbol ($0.008)","tags":["blockchain","nft"],"parameters":[{"name":"address","in":"query","schema":{"type":"string"}},{"name":"token_id","in":"query","schema":{"type":"integer"}},{"name":"network","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"NFT metadata"},"402":{"description":"Payment Required"}}},"post":{"operationId":"nft_metadata","summary":"Get NFT metadata for an ERC-721 or ERC-1155 token id: tokenURI, collection name and symbol ($0.008)","tags":["blockchain","nft"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.008000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"NFT metadata"},"402":{"description":"Payment Required"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"token_id":{"type":"integer"},"network":{"type":"string"}}}}}}}},"/api/v1/page-extract-batch":{"get":{"operationId":"page_extract_batch_get","summary":"Batch clean page text, up to 10 URLs ($0.005)","tags":["extract"],"parameters":[{"name":"urls","in":"query","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch results"},"402":{"description":"Payment Required"}}},"post":{"operationId":"page_extract_batch","summary":"Batch clean page text, up to 10 URLs ($0.005)","tags":["extract"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"}}}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch results"},"402":{"description":"Payment Required"}}}},"/api/v1/urlwatch-batch":{"get":{"operationId":"urlwatch_batch_get","summary":"Batch URL change detection, up to 10 URLs ($0.01)","tags":["monitoring","batch"],"parameters":[{"name":"urls","in":"query","required":true,"schema":{"type":"string"},"description":"Comma-separated list of URLs"},{"name":"state_key","in":"query","required":false,"schema":{"type":"string"},"description":"Optional state key prefix"}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch change report"},"402":{"description":"Payment Required"}}},"post":{"operationId":"urlwatch_batch","summary":"Batch URL change detection, up to 10 URLs ($0.01)","tags":["monitoring","batch"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"Up to 10 URLs"},"state_key":{"type":"string","description":"Optional state key prefix"}},"required":["urls"]}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch change report"},"402":{"description":"Payment Required"}}}},"/api/v1/token-balance-batch":{"get":{"operationId":"token_balance_batch_get","summary":"Batch ERC-20 token balance, up to 10 items ($0.005)","tags":["crypto","blockchain-data","batch"],"parameters":[{"name":"items","in":"query","required":false,"schema":{"type":"string"},"description":"JSON-encoded items array"},{"name":"address","in":"query","required":false,"schema":{"type":"string"},"description":"Single wallet address"},{"name":"token","in":"query","required":false,"schema":{"type":"string"},"description":"Single token address"},{"name":"network","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum"]},"description":"Network"}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch token balances"},"402":{"description":"Payment Required"}}},"post":{"operationId":"token_balance_batch","summary":"Batch ERC-20 token balance, up to 10 items ($0.005)","tags":["crypto","blockchain-data","batch"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"token":{"type":"string"},"network":{"type":"string","enum":["base","ethereum"]}},"required":["address","token"]}}},"required":["items"]}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Batch token balances"},"402":{"description":"Payment Required"}}}},"/api/v1/readclean":{"post":{"operationId":"readclean","summary":"Clean readable markdown/text from a URL ($0.002)","tags":["extract","readability"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"format":{"type":"string","enum":["markdown","text"]}},"required":["url"]}}}},"responses":{"200":{"description":"Clean content"},"402":{"description":"Payment Required"}}}},"/api/v1/urlwatch":{"post":{"operationId":"urlwatch","summary":"Detect whether a URL's content changed ($0.005)","tags":["monitoring"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"previous_hash":{"type":"string"},"state_key":{"type":"string"}},"required":["url"]}}}},"responses":{"200":{"description":"Change report"},"402":{"description":"Payment Required"}}}},"/api/v1/x402-check":{"get":{"operationId":"x402_check_get","summary":"x402 endpoint compliance audit ($0.01)","tags":["x402","compliance"],"parameters":[{"name":"target","in":"query","required":true,"schema":{"type":"string","format":"uri"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Compliance checklist and score"},"402":{"description":"Payment Required (x402 v2)"}}},"post":{"operationId":"x402_check","summary":"x402 endpoint compliance audit ($0.01)","tags":["x402","compliance"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","format":"uri"}},"required":["target"]}}}},"responses":{"200":{"description":"Compliance checklist and score"},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/agent-deep":{"post":{"operationId":"agent_deep_scan","summary":"Agent deep report ($0.10, input <=20 KB)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source_code":{"type":"string","maxLength":20480},"language":{"type":"string","enum":["python","javascript","typescript","tsx"],"default":"python"}},"required":["source_code"]}}}},"responses":{"200":{"description":"Deep report with risk score"},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/credits-micro":{"post":{"operationId":"buy_credits_micro","summary":"Micro credit pack ($0.10 for 5 scans)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.100000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"API key with 5 prepaid scans"},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/credits":{"post":{"operationId":"buy_credits","summary":"Prepaid scan pack ($5 for 200 scans)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"API key with prepaid scans","content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"type":"string"},"scans":{"type":"integer"},"price_usd":{"type":"number"}},"required":["api_key","scans"]}}}},"402":{"description":"Payment Required (x402 v2)"}}}},"/api/v1/deep-scan":{"post":{"operationId":"scan_deep","summary":"Deep security report ($10)","tags":["security"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"10.000000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source_code":{"type":"string","maxLength":102400},"language":{"type":"string","enum":["python","javascript","typescript","tsx"],"default":"python"}},"required":["source_code"]}}}},"responses":{"200":{"description":"Deep report","content":{"application/json":{"schema":{"type":"object","properties":{"findings":{"type":"array","items":{"type":"object"}},"findings_count":{"type":"integer"},"severity_counts":{"type":"object"},"risk_score":{"type":"number"},"risk_band":{"type":"string"}},"required":["findings","findings_count","risk_score"]}}}},"402":{"description":"Payment Required (x402 v2)"}}}},"/healthz":{"get":{"operationId":"health","summary":"Health check","security":[],"responses":{"200":{"description":"ok"}}}}},"components":{"securitySchemes":{}},"servers":[{"url":"https://scanpay-edge.alextaghiashvili.workers.dev"}]}