API Documentation
Developers can use AggreLend’s public APIs to retrieve live market info and protocol details for dashboards, bots, and research.
Base URL: https://aggrelend.com
Primary Endpoint: /api/get-apy-list
Versioning: v1
(implicit) — breaking changes will be announced with at least 30 days’ notice.
Overview
- Purpose: expose current effective APY by token across integrated lending venues, with the top venue first.
- Update cadence: approximately every ~60 seconds (subject to RPC/network conditions).
- Normalization: reward tokens (e.g., JITO/JTO/etc.) are converted to the deposit token using Jupiter price quotes before being folded into the effective APY.
- No auth: public, read-only, CORS enabled for browser use.
ℹ️
AggreLend displays a single effective APY per venue that already includes normalized rewards (see APY Normalization).
Endpoint: Get APY List
GET https://aggrelend.com/api/get-apy-list
Returns all supported tokens with their available markets, current APYs, and the highest-scoring market at index [0]
of each token’s markets
array.
Query Parameters (optional)
Name | Type | Default | Description |
---|---|---|---|
token | string | string[] | — | Filter by one or more token symbols or mints (e.g., token=USDC , token=USDC&token=SOL ). |
includeMeta | boolean | true | Include descriptive names, venue families, and health flags. |
chain | string | solana-mainnet | Future-proofing for additional clusters. |
format | string | json | Reserved for future formats (e.g., csv ). |
Response: Top-Level Schema
type GetApyListResponse = {
updatedAt: string; // ISO timestamp for the dataset
chain: "solana-mainnet";
tokens: TokenEntry[];
}
type TokenEntry = {
symbol: string; // "USDC", "SOL", "WBTC", etc.
mint: string; // SPL mint address
decimals: number;
markets: MarketEntry[]; // sorted by effective APY descending; [0] is the current top route
}
type MarketEntry = {
id: string; // venue identifier (e.g., "kamino-main", "marginfi", "drift-deposits")
name: string; // human-readable (e.g., "Kamino Main", "MarginFi")
family?: string; // venue family (e.g., "Kamino", "Drift", "Save(Solend)")
apy: {
base: number; // base supply APY (decimal, e.g., 0.0512 for 5.12%)
rewards: number; // normalized rewards APY contribution (decimal)
effective: number; // base + rewards after normalization and dampening
};
liquidity?: {
available: string; // stringified numeric in token units
utilization: number; // 0..1
caps?: { deposit?: string; borrow?: string };
};
health?: {
stability: "high" | "medium" | "low";
lowLiquidity?: boolean;
paused?: boolean;
};
lastUpdated: string; // ISO timestamp at market refresh
}