{"openapi":"3.1.0","info":{"title":"Rug Pull Detector","description":"Analyzes EVM, Solana, etc token contracts for rug pull risk indicators using on-chain data. Returns a 0-100 risk score with detailed, actionable flags.","version":"1.0.0"},"paths":{"/analyze/{token_address}":{"get":{"tags":["Analysis"],"summary":"Analyze a token for rug pull risk","description":"Fetches on-chain security data (all chains). Returns a risk score (0-100) with detailed flags explaining each risk factor.","operationId":"analyze_token_analyze__token_address__get","parameters":[{"name":"token_address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address (EVM: 0x... / Solana: base58)","title":"Token Address"},"description":"Token contract address (EVM: 0x... / Solana: base58)"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')","default":"ethereum","title":"Chain"},"description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')"},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/report/{token_address}":{"get":{"tags":["Report"],"summary":"Full risk report including Etherscan supplementary data","operationId":"full_report_report__token_address__get","parameters":[{"name":"token_address","in":"path","required":true,"schema":{"type":"string","description":"Token contract address (EVM: 0x... / Solana: base58)","title":"Token Address"},"description":"Token contract address (EVM: 0x... / Solana: base58)"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')","default":"ethereum","title":"Chain"},"description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')"},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"tags":["Search"],"summary":"Find token contract addresses by name","description":"Searches for tokens matching the given name or symbol and returns all known contract addresses for the specified chain, sorted by market cap rank.","operationId":"find_mints_search_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Token name or symbol to search for (e.g. 'USDT', 'Tether')","title":"Name"},"description":"Token name or symbol to search for (e.g. 'USDT', 'Tether')"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')","default":"ethereum","title":"Chain"},"description":"Chain name or ID (e.g. 'ethereum', '1', 'solana', 'bnb')"},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MintResult"},"title":"Response Find Mints Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chains":{"get":{"tags":["Chains"],"summary":"List supported chains and their accepted aliases","operationId":"list_chains_chains_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ContractInfo":{"properties":{"is_open_source":{"type":"boolean","title":"Is Open Source"},"is_proxy":{"type":"boolean","title":"Is Proxy"},"is_mintable":{"type":"boolean","title":"Is Mintable"},"is_honeypot":{"type":"boolean","title":"Is Honeypot"},"owner_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Address"},"owner_renounced":{"type":"boolean","title":"Owner Renounced"},"can_take_back_ownership":{"type":"boolean","title":"Can Take Back Ownership"},"owner_change_balance":{"type":"boolean","title":"Owner Change Balance"},"transfer_pausable":{"type":"boolean","title":"Transfer Pausable"},"is_blacklisted":{"type":"boolean","title":"Is Blacklisted"},"buy_tax":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buy Tax"},"sell_tax":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sell Tax"}},"type":"object","required":["is_open_source","is_proxy","is_mintable","is_honeypot","owner_renounced","can_take_back_ownership","owner_change_balance","transfer_pausable","is_blacklisted"],"title":"ContractInfo"},"Flag":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"severity":{"$ref":"#/components/schemas/RiskLevel"}},"type":"object","required":["code","message","severity"],"title":"Flag"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HolderInfo":{"properties":{"address":{"type":"string","title":"Address"},"percent":{"type":"number","title":"Percent"},"is_contract":{"type":"boolean","title":"Is Contract"},"is_locked":{"type":"boolean","title":"Is Locked"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}},"type":"object","required":["address","percent","is_contract","is_locked"],"title":"HolderInfo"},"LiquidityInfo":{"properties":{"pair_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pair Address"},"is_locked":{"type":"boolean","title":"Is Locked"},"locked_percent":{"type":"number","title":"Locked Percent"},"lock_expiry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lock Expiry"}},"type":"object","required":["is_locked","locked_percent"],"title":"LiquidityInfo"},"MintResult":{"properties":{"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"},"market_cap_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Cap Rank"},"address":{"type":"string","title":"Address"},"chain_id":{"type":"string","title":"Chain Id"},"chain_name":{"type":"string","title":"Chain Name"}},"type":"object","required":["name","symbol","market_cap_rank","address","chain_id","chain_name"],"title":"MintResult"},"RiskLevel":{"type":"string","enum":["LOW","MEDIUM","HIGH","CRITICAL"],"title":"RiskLevel"},"RiskReport":{"properties":{"token_address":{"type":"string","title":"Token Address"},"chain_id":{"type":"string","title":"Chain Id"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"$ref":"#/components/schemas/RiskLevel"},"flags":{"items":{"$ref":"#/components/schemas/Flag"},"type":"array","title":"Flags"},"metadata":{"$ref":"#/components/schemas/TokenMetadata"},"contract":{"anyOf":[{"$ref":"#/components/schemas/ContractInfo"},{"type":"null"}]},"liquidity":{"anyOf":[{"$ref":"#/components/schemas/LiquidityInfo"},{"type":"null"}]},"top_holders":{"items":{"$ref":"#/components/schemas/HolderInfo"},"type":"array","title":"Top Holders","default":[]},"disclaimer":{"type":"string","title":"Disclaimer","default":"This report is for informational purposes only and does not constitute financial advice. Always do your own research."}},"type":"object","required":["token_address","chain_id","risk_score","risk_level","flags","metadata"],"title":"RiskReport"},"TokenMetadata":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"total_supply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Supply"},"holder_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Holder Count"},"creation_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creation Time"}},"type":"object","title":"TokenMetadata"},"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"}}}}