Historical data is available from October 8, 2025 onwards. Backfilling to earlier dates will be added in a future release.
Overview
Historical data allows you to track how your DeFi positions have changed over time.Portfolio Tracking
See your total portfolio value across all protocols
Performance Analysis
Understand returns over time
Historical Charts
Visualize position growth and changes
What Data is Available
Historical snapshots are available for position attributes only. These attributes enable you to track your portfolio’s value over time in both native tokens and in USD.| Attribute | Description |
|---|---|
amount | Position balance in native token units |
amountUsd | Position balance in USD equivalent |
timestamp | When this snapshot was recorded (RFC 3339) |
Get Historical Snapshots
Fetch position snapshots for any time range:Query Parameters
| Parameter | Required | Description |
|---|---|---|
walletAddress | Yes | Wallet address to fetch position history for |
startTime | Yes | Start of time range (RFC 3339 format, e.g., 2025-10-08T00:00:00Z) |
endTime | Yes | End of time range (RFC 3339 format, e.g., 2025-10-10T23:59:59Z) |
positionIds | No | Optional array of position IDs to filter. If empty, returns all positions |
resolution | No | Time interval for data points. Options: 1m, 5m, 1h, 1d. See Resolution for details |
Response Structure
In the example below, you see an example of the response structure, that shows the Lulo Regular position with two snapshots showing growth from 1.02 to 2.02 USDC. Later in this document, you will learn how to use and interpret this data.View Full Response (11 positions)
View Full Response (11 positions)
The response above shows 2 positions of the response to facilitate readability. The full response for this wallet contains 11 positions across Lulo, Jupiter, and Kamino. The following examples use the complete dataset.
| Field | Description |
|---|---|
id | Unique position identifier |
providerId | Protocol providing the market (e.g., lulo, jupiter, kamino) |
type | Position type (yield, lending, loop, perpetual) |
marketId | Market identifier within the protocol |
history | Array of historical snapshots with timestamp, amount, and amountUsd (limited to 1000 data points per position) |
Resolution
Resolution let’s you control the time interval between data points. This is especially useful if you plan to use the data for charting or analytics.Available Options
| Resolution | Interval | Best For |
|---|---|---|
1m | 1 minute | Real-time monitoring, very short-term analysis |
5m | 5 minutes | Short-term tracking, recent activity |
1h | 1 hour | Daily analysis, medium-term trends |
1d | 1 day | Long-term portfolio tracking, historical analysis |
Usage
To use resolution, you need to specify the time interval you want to use. For example, to get hourly snapshots, you would use the1h resolution.
Note: Each position’s history is limited to 1000 data points. Using appropriate resolution values helps you stay within this limit for longer time ranges.
Understanding Cumulative Values
Historical data tracks cumulative values - the actual balance in each position at each point in time.What This Means
When you look at historical snapshots, theamount and amountUsd values reflect:
- Yield - Accumulated interest earned on deposits
- Deposits - When you add funds to a position
- Withdrawals - When you remove funds from a position
Example: Deposits
Here’s real data from a Lulo position showing a deposit:Practical Examples
Example 1: Calculate Total Portfolio Value
Sum up all position values across protocols:Example 2: Track Specific Position Over Time
Filter for a single position to see its growth:Example 3: Compare Positions Across Protocols
See how different protocol positions have performed:API Playground
Test the API
Play with the API and see the results in real-time.