{"openapi":"3.1.0","info":{"title":"ScanArc Trading API","version":"1.4.0","description":"Non-custodial Arc token resolution, market discovery, risk checks, executable quotes, preflight simulation, unsigned transaction building, and reliable receipt tracking for humans and AI agents."},"servers":[{"url":"https://www.scanarc.fun/api/v1"}],"paths":{"/capabilities":{"get":{"operationId":"getScanArcCapabilities","summary":"Read API and agent capabilities","responses":{"200":{"description":"Capability manifest"}}}},"/tools":{"get":{"operationId":"getScanArcToolSchemas","summary":"Get OpenAI, Grok, and MCP-compatible tool schemas","parameters":[{"name":"format","in":"query","schema":{"type":"string","enum":["all","openai","grok","mcp"]}}],"responses":{"200":{"description":"Agent tool definitions"}}}},"/search":{"get":{"operationId":"resolveArcToken","summary":"Resolve a token name, ticker, cashtag, or contract","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":30}}],"responses":{"200":{"description":"Ranked Arc token candidates"}}}},"/markets":{"get":{"operationId":"listArcMarkets","summary":"List indexed Arc markets","description":"Use tradable=true and includeStale=false when selecting a market for execution.","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["volume","liquidity","marketCap","gainers","trades","newest"]}},{"name":"tradable","in":"query","schema":{"type":"boolean"}},{"name":"includeStale","in":"query","schema":{"type":"boolean"}},{"name":"minLiquidity","in":"query","schema":{"type":"number","minimum":0}}],"responses":{"200":{"description":"Market page"}}}},"/tokens/{address}":{"get":{"operationId":"getArcToken","summary":"Read verified token metadata","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Token metadata"},"404":{"description":"Token not found"}}}},"/risk/{address}":{"get":{"operationId":"checkArcMarketRisk","summary":"Check route, liquidity, activity, and freshness","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"responses":{"200":{"description":"Machine-readable market assessment"},"404":{"description":"Token not indexed"}}}},"/quote":{"post":{"operationId":"quoteArcTrade","summary":"Get an executable onchain quote","description":"Returns an expiring quote only; it never signs or submits a transaction.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Human-readable amount"},"amountMode":{"type":"string","enum":["usd","token"],"default":"usd"},"slippageBps":{"type":"integer","minimum":10,"maximum":5000,"default":300},"account":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"}},"required":["token","side","amount"],"additionalProperties":false}}}},"responses":{"200":{"description":"Executable quote"},"404":{"description":"Route not found"},"429":{"description":"Rate limited"}}}},"/build":{"post":{"operationId":"prepareUnsignedArcTrade","summary":"Build and simulate unsigned approval and swap calls","description":"Requires explicit user approval before calls are signed or submitted in a wallet.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"amountMode":{"type":"string","enum":["usd","token"],"default":"usd"},"slippageBps":{"type":"integer","minimum":10,"maximum":5000,"default":300},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"approvalMode":{"type":"string","enum":["exact","reusable"],"default":"exact"}},"required":["token","side","amount","recipient"],"additionalProperties":false}}}},"responses":{"200":{"description":"Ordered unsigned calls and simulation"}}}},"/simulate":{"post":{"operationId":"simulateUnsignedArcTrade","summary":"Build and simulate unsigned calls","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"amountMode":{"type":"string","enum":["usd","token"],"default":"usd"},"slippageBps":{"type":"integer","minimum":10,"maximum":5000,"default":300},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"approvalMode":{"type":"string","enum":["exact","reusable"],"default":"exact"}},"required":["token","side","amount","recipient"],"additionalProperties":false}}}},"responses":{"200":{"description":"Simulation result"}}}},"/transactions/{hash}":{"get":{"operationId":"trackArcTransaction","summary":"Track a submitted Arc transaction without risking a duplicate","description":"Pending or unavailable status is not a failure. Keep polling the original hash and never resubmit solely because status lookup failed.","parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"}}],"responses":{"200":{"description":"Pending or final transaction state"},"202":{"description":"Transaction not visible yet; retry status"},"503":{"description":"RPC temporarily unavailable; retry status only"}}}},"/health":{"get":{"operationId":"getScanArcHealth","summary":"Check ScanArc dependencies","responses":{"200":{"description":"Health status"}}}}},"externalDocs":{"description":"ScanArc bot integration guide","url":"https://www.scanarc.fun/developers"}}