{"openapi":"3.1.0","info":{"title":"x402lab","description":"Agent-payable crypto-safety data — memecoin rug/scam-risk scans and wallet portfolio snapshots. Paid per call in USDC on Base via the x402 protocol. No API key, no signup: your agent pays the 402 challenge and gets the data.","contact":{"name":"HTSApp","url":"https://htsapp.tech/x402/"},"version":"0.2.0"},"paths":{"/health":{"get":{"tags":["meta"],"summary":"Liveness & pricing/config","description":"Free liveness + pricing/config echo.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/token/{chain}/batch":{"get":{"tags":["paid"],"summary":"Batch token risk reports (paid, per-item)","description":"Scan up to 20 tokens in one call. Price = 0.005 USDC × number of addresses (comma-separated in ?addresses=). Returns one report per token.","operationId":"token_batch_v1_token__chain__batch_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"addresses","in":"query","required":true,"schema":{"type":"string","title":"Addresses"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/token/{chain}/{address}":{"get":{"tags":["paid"],"summary":"Token rug/scam-risk report (paid)","description":"Score a token against 30+ rug-pull signals — honeypot, mutable tax, mint/freeze authority, unlocked LP, holder concentration and more. Sources: DexScreener + GoPlus (EVM) / RugCheck (Solana). Paid: 0.005 USDC on Base via x402 — returns 402 with payment requirements until paid.","operationId":"token_report_v1_token__chain___address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{},"example":{"chain":"base","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","verdict":"ok","summary":"LOW RISK — no major risk flags found.","risk_level":"low","risk_score":15,"flags":["proxy_contract"],"sources":["dexscreener","goplus"],"liquidity_usd":33238238.31}}}},"402":{"description":"Payment required — x402 challenge with `accepts`."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/{chain}/{address}":{"get":{"tags":["paid"],"summary":"Wallet portfolio snapshot (paid)","description":"Read-only portfolio for any public address: holdings + USD value. EVM via Blockscout, Solana via public RPC + DexScreener pricing. Paid: 0.005 USDC on Base via x402.","operationId":"wallet_report_v1_wallet__chain___address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{},"example":{"chain":"base","address":"0xADDRESS","summary":"Portfolio ~$1,234.56 across 7 holdings; largest is USDC.","total_value_usd":1234.56,"holdings_count":7,"holdings":[{"symbol":"USDC","value_usd":900.0}]}}}},"402":{"description":"Payment required — x402 challenge with `accepts`."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/{chain}/{address}/approvals":{"get":{"tags":["paid"],"summary":"Wallet token-approval exposure (paid)","description":"Revoke-risk: which contracts a wallet has approved to spend its tokens, flagging unlimited approvals and approvals on malicious tokens. EVM only. Source: GoPlus. Paid: 0.005 USDC on Base via x402.","operationId":"wallet_approvals_v1_wallet__chain___address__approvals_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/launches/{chain}":{"get":{"tags":["paid"],"summary":"New-pool launch feed (paid)","description":"The 20 newest liquidity pools on a chain (age, liquidity, volume, price change) — the launch/snipe feed. Source: GeckoTerminal. 0.005 USDC.","operationId":"launch_feed_v1_launches__chain__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/pool/{chain}/{pair}":{"get":{"tags":["paid"],"summary":"Pool / liquidity analytics (paid)","description":"Liquidity, 24h volume, price, FDV, market cap, txns and age for a pool, with thin-market flags. Source: GeckoTerminal. 0.005 USDC.","operationId":"pool_analytics_v1_pool__chain___pair__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"pair","in":"path","required":true,"schema":{"type":"string","title":"Pair"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"paid","description":"x402-gated — returns 402 until payment (0.005 USDC on Base)."},{"name":"meta","description":"Free."}]}