{ "opencollection": "1.0.0", "info": { "name": "Yo Protocol Agent API", "version": "1.0" }, "items": [ { "info": { "name": "Agent", "type": "folder" }, "items": [ { "info": { "name": "Data model — node types, edge types, grade letters. Call this first.", "type": "http" }, "http": { "method": "GET", "url": "https://api.yo.xyz/api/v1/agent/schema" }, "docs": "Data model — node types, edge types, grade letters. Call this first." }, { "info": { "name": "Search pools/assets/protocols/chains. Lean teaser per hit (no grade). Capped at 10 results.", "type": "http" }, "http": { "method": "GET", "url": "https://api.yo.xyz/api/v1/agent/search", "params": [ { "name": "q", "value": "", "type": "query", "description": "Asset address or protocol/asset name. No wildcards." }, { "name": "label", "value": "", "type": "query", "description": "Restrict to Pool, Asset, Protocol, or Chain" }, { "name": "limit", "value": "", "type": "query", "description": "1-10, default 10" }, { "name": "tvl", "value": "", "type": "query", "description": "Comparator, e.g. \">1000000\"" }, { "name": "grade", "value": "", "type": "query", "description": "Comparator over A-F, e.g. \"<=B\"" } ] }, "docs": "Always settles, even on a zero-result query, since the scan itself is the billable work." }, { "info": { "name": "Full properties + grade (_riskTier) + riskBreakdown (rationale as Q&A pairs).", "type": "http" }, "http": { "method": "GET", "url": "https://api.yo.xyz/api/v1/agent/node/:nodeId", "params": [ { "name": "nodeId", "value": "", "type": "path" } ] }, "docs": "Full properties + grade (_riskTier) + riskBreakdown (rationale as Q&A pairs)." }, { "info": { "name": "A pool's direct (1-hop) dependencies — edges and neighboring nodes, each stamped with lastUpdatedAt.", "type": "http" }, "http": { "method": "GET", "url": "https://api.yo.xyz/api/v1/agent/dependencies", "params": [ { "name": "nodeId", "value": "", "type": "query" } ] }, "docs": "A pool's direct (1-hop) dependencies — edges and neighboring nodes, each stamped with lastUpdatedAt." } ] } ], "bundled": true }