openapi: 3.2.0 info: title: crvUSD Yield Optimizer Pools API description: 'Multi-chain crvUSD yield optimizer with A2A protocol support. Sources: scrvUSD, LlamaLend, Convex, StakeDAO. Chains: Ethereum, Arbitrum, Base, Optimism, Fraxtal. Supports Google A2A (Agent-to-Agent) protocol for agent interoperability.' version: 1.1.0 servers: - url: /yo tags: - name: Pools paths: /api/pools: get: summary: List Pools description: 'List all yield pools with optional filters. Examples: - /api/pools?chain=ethereum&source=llamalend&min_apy=5 - /api/pools?risk=low&sort_by=tvl&order=desc - /api/pools?min_tvl=100000&limit=10' operationId: list_pools_api_pools_get parameters: - name: chain in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by chain (ethereum, arbitrum, optimism, fraxtal) title: Chain description: Filter by chain (ethereum, arbitrum, optimism, fraxtal) - name: source in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by source (scrvusd, llamalend, boosted_lp, crvusd_mint) title: Source description: Filter by source (scrvusd, llamalend, boosted_lp, crvusd_mint) - name: min_apy in: query required: false schema: type: number description: Minimum APY threshold default: 0 title: Min Apy description: Minimum APY threshold - name: min_tvl in: query required: false schema: type: number description: Minimum TVL in USD default: 0 title: Min Tvl description: Minimum TVL in USD - name: risk in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by risk level (low, medium, high) title: Risk description: Filter by risk level (low, medium, high) - name: sort_by in: query required: false schema: type: string description: Sort field (apy, tvl, risk, name) default: apy title: Sort By description: Sort field (apy, tvl, risk, name) - name: order in: query required: false schema: type: string description: Sort order (asc, desc) default: desc title: Order description: Sort order (asc, desc) - name: limit in: query required: false schema: type: integer maximum: 500 minimum: 1 description: Max results default: 100 title: Limit description: Max results - name: offset in: query required: false schema: type: integer minimum: 0 description: Pagination offset default: 0 title: Offset description: Pagination offset - name: X-API-Key in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Api-Key responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PoolsListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Pools components: schemas: PoolsListResponse: properties: pools: items: $ref: '#/components/schemas/PoolResponse' type: array title: Pools total: type: integer title: Total filters_applied: additionalProperties: true type: object title: Filters Applied default: {} type: object required: - pools - total title: PoolsListResponse PoolResponse: properties: pool_id: type: string title: Pool Id name: type: string title: Name address: type: string title: Address apy: type: number title: Apy tvl: type: number title: Tvl source: type: string title: Source chain: type: string title: Chain default: ethereum risk: type: string title: Risk default: medium base_apy: type: number title: Base Apy default: 0.0 reward_apy: type: number title: Reward Apy default: 0.0 gas_cost_usd: type: number title: Gas Cost Usd default: 15.0 extra: additionalProperties: true type: object title: Extra default: {} type: object required: - pool_id - name - address - apy - tvl - source title: PoolResponse 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 HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError