{"data":{"service":"canix402","apiVersion":"0.1.0","discoveryVersion":"1.0.0","capabilities":["algorand-defi-opportunities","x402-paid-data","wallet-personalization","agent-discovery","openapi"],"x402ProtocolVersion":2,"endpoints":[{"id":"health","method":"GET","path":"/health","access":"free","summary":"Service health check","tags":["system"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"metadata","method":"GET","path":"/metadata","access":"free","summary":"Service metadata and policy surface","tags":["system","discovery"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"discovery","method":"GET","path":"/discovery","access":"free","summary":"Machine-readable endpoint catalog for agents","tags":["discovery","agents"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"openapi","method":"GET","path":"/openapi.json","access":"free","summary":"OpenAPI contract document","tags":["discovery","openapi"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"faviconIco","method":"GET","path":"/favicon.ico","access":"free","summary":"API favicon for directory indexing","tags":["system","discovery"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"faviconPng","method":"GET","path":"/favicon.png","access":"free","summary":"API favicon image","tags":["system","discovery"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"x402WellKnown","method":"GET","path":"/.well-known/x402","access":"free","summary":"x402 discovery fan-out document","tags":["discovery","agents","x402"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"x402Manifest","method":"GET","path":"/.well-known/x402.json","access":"free","summary":"x402 discovery manifest for agent and directory indexing","tags":["discovery","agents","x402"],"pathParams":[],"queryParams":[],"responseCodes":[200,500]},{"id":"opportunities","method":"GET","path":"/opportunities","access":"paid","summary":"Top 10 aggregated DeFi opportunities ranked by APY","description":"Returns ranked Algorand DeFi yield opportunities across supported protocols including Tinyman, Pact, Folks Finance, CompX, and Dork.fi. Use when an agent needs to compare APY/APR, TVL, asset pairs, opportunity type, protocol, source freshness, and caveats before presenting or ranking yield options. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities"],"pathParams":[],"queryParams":["protocol","limit","offset","includeInactive"],"responseCodes":[200,402,500],"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}}},{"id":"protocolOpportunities","method":"GET","path":"/protocols/:protocol/opportunities","access":"paid","summary":"Top 25 DeFi opportunities for a single protocol ranked by APY","description":"Returns ranked DeFi opportunities for one Algorand protocol: tinyman, pact, folks-finance, compx, or dorkfi. Use when an agent already knows the target protocol and needs normalized APY/APR, TVL, asset pair, opportunity type, timestamps, and caveats for that venue. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","protocol"],"pathParams":["protocol"],"queryParams":["limit","offset","includeInactive"],"responseCodes":[200,402,500],"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}}},{"id":"filteredOpportunities","method":"GET","path":"/opportunities/search","access":"paid","summary":"Caller-filtered opportunities across supported platforms","description":"Returns Algorand DeFi opportunities filtered by platform, opportunity type, APY range, and TVL threshold across supported sources. Use when an agent needs targeted discovery such as high-yield liquidity pools, lending markets, protocol-specific yield, or minimum-liquidity opportunities on Algorand. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","search"],"pathParams":[],"queryParams":["platform","type","minApy","maxApy","minTvlUsd","limit","offset","includeInactive"],"responseCodes":[200,402,500],"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.01"}}},{"id":"personalizedOpportunities","method":"GET","path":"/opportunities/personalized","access":"paid","summary":"Top opportunities tuned to a wallet's held assets","description":"Returns Algorand DeFi opportunities whose underlying assets match a supplied wallet's holdings, including opted-in ASAs with positive balance and native ALGO when held. Use when an agent needs wallet-aware yield ideas based on assets the account already owns, with normalized APY/APR, TVL, asset ids, source freshness, and caveats. This endpoint provides normalized market data only; it does not build or submit transactions.","tags":["defi","opportunities","personalized","wallet"],"pathParams":[],"queryParams":["address","limit","offset","includeInactive"],"responseCodes":[200,402,500],"x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand","asset":"31566704","payTo":"3Y2V6ODUVUGM4TXOEXY65YLMKMVLG4PB3GSOXDCJDE4X5YQA5JA3P2FHAQ","maxAmountRequired":"0.05"}}}],"errorCatalog":[{"code":"MISSING_PAYMENT_SIGNATURE","httpStatus":402,"description":"The paid endpoint was called without PAYMENT-SIGNATURE."},{"code":"MALFORMED_PAYMENT_SIGNATURE","httpStatus":402,"description":"PAYMENT-SIGNATURE payload is malformed."},{"code":"EXPIRED_PAYMENT_PROOF","httpStatus":402,"description":"PAYMENT-SIGNATURE proof has expired."},{"code":"VALIDATION_ERROR","httpStatus":400,"description":"Request validation failed."},{"code":"INTERNAL_ERROR","httpStatus":500,"description":"Internal server error."}]}}