Hyperfolio API

Hyperfolio API is an onchain HyperEVM portfolio tracking API designed to support builder use cases.

Hyperfolio API

Base URL: https://api.hyperfolio.xyz


🔑 Authentication

All endpoints require an API key via the x-api-key header.

  • How to get an API key? Contact: [email protected]

  • Rate limits: We provide different plans (beta, standard, pro, admin). Contact us for details.


Get wallet composition for a given address or HL domain

get
Authorizations
Query parameters
addressstringRequired

Wallet address or HL domain

Example: 0x32309802C8feb2306240893BD79A2E4ba5314e55
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Wallet composition with cache metadata

application/json
get
GET /wallet/composition?address=0x32309802C8feb2306240893BD79A2E4ba5314e55 HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": {
    "tokens": [
      {
        "address": "text",
        "balance": "text",
        "symbol": "text",
        "name": "text",
        "decimals": "text",
        "usdPrice": "text",
        "usdValue": "text",
        "image_url": "text",
        "type": "text"
      }
    ],
    "totalWalletValue": "text",
    "hypePrice": "text"
  },
  "cache": {
    "lastUpdate": "2024-01-15T10:30:00Z",
    "cacheAge": "5 minutes ago",
    "cacheAgeSeconds": 300,
    "source": "cache",
    "isStale": false
  }
}

Get all DeFi positions by protocol for a given address or HL domain

get
Authorizations
Query parameters
addressstringRequired

The wallet address or HL domain to analyze

streambooleanOptional

Set to true to stream results as they become available

cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

All DeFi positions by protocol

application/json
ResponseanyExample: {"protocols":[{"id":"hyperlend","name":"Hyperlend","logo":"/logos/hyperlend.png","url":"https://app.hyperlend.org","totalValueUSD":"1234.56","positions":[{"id":"hl-1","protocolId":"hyperlend","protocolName":"Hyperlend","type":"lending","positionType":"supplied","totalValueUSD":"123.45","healthRatio":1.23,"version":"v1","isIsolated":false,"details":{"token":{"address":"0x...","symbol":"HYPE","name":"HyperEVM","image_url":"/hype.png","decimals":18,"balance":"1000000000000000000","formattedBalance":"1.00","usdValue":"123.45"}}}]}]}
get
GET /positions?address=text HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "protocols": [
    {
      "id": "hyperlend",
      "name": "Hyperlend",
      "logo": "/logos/hyperlend.png",
      "url": "https://app.hyperlend.org",
      "totalValueUSD": "1234.56",
      "positions": [
        {
          "id": "hl-1",
          "protocolId": "hyperlend",
          "protocolName": "Hyperlend",
          "type": "lending",
          "positionType": "supplied",
          "totalValueUSD": "123.45",
          "healthRatio": 1.23,
          "version": "v1",
          "isIsolated": false,
          "details": {
            "token": {
              "address": "0x...",
              "symbol": "HYPE",
              "name": "HyperEVM",
              "image_url": "/hype.png",
              "decimals": 18,
              "balance": "1000000000000000000",
              "formattedBalance": "1.00",
              "usdValue": "123.45"
            }
          }
        }
      ]
    }
  ]
}

Get positions for a specific protocol and address or HL domain

get
Authorizations
Query parameters
walletAddressstringRequired

The wallet address or HL domain to analyze

protocolstring · enumRequired

The protocol to query.

Possible values:
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Get positions for a specific protocol

application/json
Responseone of
anyOptionalExample: {"id":"hyperlend","name":"Hyperlend","logo":"/logos/hyperlend.png","url":"https://app.hyperlend.org","totalValueUSD":"1234.56","positions":[{"id":"hl-1","protocolId":"hyperlend","protocolName":"Hyperlend","type":"lending","positionType":"supplied","totalValueUSD":"123.45","healthRatio":1.23,"version":"v1","isIsolated":false,"details":{"token":{"address":"0x...","symbol":"HYPE","name":"HyperEVM","image_url":"/hype.png","decimals":18,"balance":"1000000000000000000","formattedBalance":"1.00","usdValue":"123.45"}}}]}
or
anyOptionalExample: {"id":"hyperswap_v3","name":"Hyperswap V3","logo":"/hyperswap.jpg","url":"https://app.hyperswap.exchange/#/swap?referral=HyperFolio","totalValueUSD":"456.78","positions":[{"id":"hyperswap_v3-1","protocolId":"hyperswap_v3","protocolName":"Hyperswap V3","type":"liquidity","positionType":"supplied","totalValueUSD":"456.78","version":"v3","details":{"pair":"HYPE/USDC","token0":{"address":"0x...","symbol":"HYPE","name":"HyperEVM","image_url":"/hype.png","decimals":18,"balance":"500000000000000000","formattedBalance":"0.5","usdValue":"61.72"},"token1":{"address":"0x...","symbol":"USDC","name":"USD Coin","image_url":"/usdc.png","decimals":6,"balance":"500000","formattedBalance":"0.5","usdValue":"61.73"},"feeTier":0.05,"uncollectedFees":{"token0":"0.01","token1":"0.02","usdValue":"0.03"}}}]}
or
anyOptionalExample: {"id":"hyperbeat","name":"Hyperbeat","logo":"/hyperbeat.png","url":"https://app.hyperbeat.org/","totalValueUSD":"789.01","positions":[{"id":"hyperbeat-hbhype","protocolId":"hyperbeat","protocolName":"Hyperbeat","type":"lending","positionType":"vault","totalValueUSD":"789.01","details":{"token":{"address":"0x...","symbol":"HBHYPE","name":"Hyperbeat HYPE","decimals":18,"balance":"1000000000000000000","formattedBalance":"1.00","usdValue":"789.01","image_url":"/hbhype.png"}}}]}
get
GET /positions/protocol?walletAddress=text&protocol=hyperlend HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "id": "hyperlend",
  "name": "Hyperlend",
  "logo": "/logos/hyperlend.png",
  "url": "https://app.hyperlend.org",
  "totalValueUSD": "1234.56",
  "positions": [
    {
      "id": "hl-1",
      "protocolId": "hyperlend",
      "protocolName": "Hyperlend",
      "type": "lending",
      "positionType": "supplied",
      "totalValueUSD": "123.45",
      "healthRatio": 1.23,
      "version": "v1",
      "isIsolated": false,
      "details": {
        "token": {
          "address": "0x...",
          "symbol": "HYPE",
          "name": "HyperEVM",
          "image_url": "/hype.png",
          "decimals": 18,
          "balance": "1000000000000000000",
          "formattedBalance": "1.00",
          "usdValue": "123.45"
        }
      }
    }
  ]
}

Stream all DeFi positions by protocol for a given address or HL domain

get

This endpoint uses Server-Sent Events (SSE) to stream position data in real-time. Instead of waiting for all protocols to complete, results are sent as soon as each protocol finishes processing.

**How it works:**
- Establishes a persistent SSE connection
- Sends protocol results immediately when available
- Provides progress updates throughout the process
- Handles errors gracefully without stopping the stream

**Response Format:**
Each SSE message contains a JSON object with the following structure:
- `type`: 'protocol' | 'error' | 'complete'
- `data`: Protocol position data (for 'protocol' type)
- `error`: Error message (for 'error' type)
- `progress`: { completed: number, total: number }

**Client Usage:**
```javascript
const eventSource = new EventSource('/positions/stream?address=0x...');
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  // Handle different message types
};
```
Authorizations
Query parameters
addressstringRequired

The wallet address or HL domain to analyze

Example: 0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Server-Sent Events stream of protocol positions

text/event-stream
ResponsestringExample: data: {"type":"protocol","data":{"id":"hyperlend","name":"Hyperlend","totalValueUSD":"1234.56","positions":[...]},"progress":{"completed":1,"total":14}} data: {"type":"error","error":"Error fetching HyperswapV3: Network timeout","progress":{"completed":2,"total":14}} data: {"type":"complete","progress":{"completed":14,"total":14}}
get
GET /positions/stream?address=0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6 HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
data: {"type":"protocol","data":{"id":"hyperlend","name":"Hyperlend","totalValueUSD":"1234.56","positions":[...]},"progress":{"completed":1,"total":14}}

data: {"type":"error","error":"Error fetching HyperswapV3: Network timeout","progress":{"completed":2,"total":14}}

data: {"type":"complete","progress":{"completed":14,"total":14}}

Get all user data including spot balances, perpetual positions, staking info and vaults

get
Authorizations
Path parameters
addressstringRequired

User wallet address or HL domain

Query parameters
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

All user data with cache metadata

application/json
get
GET /hypercore/user/{address} HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": {
    "spotBalances": [
      {
        "coin": "text",
        "total": "text",
        "usdPrice": "text",
        "usdValue": "text",
        "image_url": "text",
        "symbol": "text",
        "name": "text",
        "decimals": "text"
      }
    ],
    "perpPositions": {
      "positions": [
        {
          "type": "text",
          "position": {
            "coin": "text",
            "szi": "text",
            "leverage": {},
            "entryPx": "text",
            "positionValue": "text",
            "unrealizedPnl": "text",
            "returnOnEquity": "text",
            "liquidationPx": "text",
            "marginUsed": "text",
            "maxLeverage": 1,
            "cumFunding": {},
            "image_url": "text",
            "symbol": "text",
            "name": "text",
            "decimals": "text"
          }
        }
      ],
      "margin": {
        "usdcBalance": "text",
        "lastUpdate": 1
      }
    },
    "stakingInfo": {
      "totalHype": "text",
      "stakedHype": "text",
      "availableHype": "text",
      "delegations": [
        {
          "amount": "text",
          "usdValue": "text",
          "usdPrice": "text",
          "image_url": "text"
        }
      ],
      "delegatorSummary": {
        "totalStakedUsd": "text"
      },
      "usdPrice": "text",
      "image_url": "text",
      "lastUpdate": 1
    },
    "vaultInfo": {
      "vaults": [
        {
          "vaultAddress": "text",
          "equity": "text",
          "name": "text",
          "description": "text",
          "leader": "text",
          "apr": 1,
          "maxDistributable": "text",
          "maxWithdrawable": "text",
          "isClosed": true,
          "allowDeposits": true,
          "allTimePnl": "text",
          "pnl": "text",
          "lastUpdate": 1
        }
      ],
      "totalVaultValue": "text"
    },
    "portfolioSummary": {
      "totalValue": "text",
      "spotValue": "text",
      "perpValue": "text",
      "stakedValue": "text",
      "vaultValue": "text",
      "lastUpdate": 1
    }
  },
  "cache": {
    "lastUpdate": "2024-01-15T10:30:00Z",
    "cacheAge": "3 minutes ago",
    "cacheAgeSeconds": 180,
    "source": "cache",
    "isStale": false
  }
}

Get user spot balances

get
Authorizations
Path parameters
addressstringRequired

User wallet address or HL domain

Query parameters
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Returns user spot balances

application/json
ResponseanyExample: [{"coin":"HYPE","token":1,"hold":"0.0","total":"1000.0","entryNtl":"0.0","usdPrice":"1.5","usdValue":"1500.0","image_url":"https://assets.coingecko.com/coins/images/1/large/bitcoin.png","symbol":"HYPE","name":"Hyperliquid","decimals":"18"},{"coin":"USDC","token":0,"hold":"0.0","total":"14.625485","entryNtl":"0.0","usdPrice":"1.0","usdValue":"14.625485","image_url":null,"symbol":"USDC","name":"USDC","decimals":"18"}]
get
GET /hypercore/user/{address}/spot HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
[
  {
    "coin": "HYPE",
    "token": 1,
    "hold": "0.0",
    "total": "1000.0",
    "entryNtl": "0.0",
    "usdPrice": "1.5",
    "usdValue": "1500.0",
    "image_url": "https://assets.coingecko.com/coins/images/1/large/bitcoin.png",
    "symbol": "HYPE",
    "name": "Hyperliquid",
    "decimals": "18"
  },
  {
    "coin": "USDC",
    "token": 0,
    "hold": "0.0",
    "total": "14.625485",
    "entryNtl": "0.0",
    "usdPrice": "1.0",
    "usdValue": "14.625485",
    "image_url": null,
    "symbol": "USDC",
    "name": "USDC",
    "decimals": "18"
  }
]

Get user perpetual positions

get
Authorizations
Path parameters
addressstringRequired

User wallet address or HL domain

Query parameters
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Returns user perpetual positions

application/json
ResponseanyExample: [{"position":{"coin":"ETH","cumFunding":{"allTime":"514.085417","sinceChange":"0.0","sinceOpen":"0.0"},"entryPx":"2986.3","leverage":{"rawUsd":"-95.059824","type":"isolated","value":20},"liquidationPx":"2866.26936529","marginUsed":"4.967826","maxLeverage":50,"positionValue":"100.02765","returnOnEquity":"-0.0026789","szi":"0.0335","unrealizedPnl":"-0.0134","usdPrice":"2986.3","usdValue":"298,680.89","image_url":null,"symbol":"ETH","name":"Ethereum","decimals":"18"},"type":"oneWay"}]
get
GET /hypercore/user/{address}/perp HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
[
  {
    "position": {
      "coin": "ETH",
      "cumFunding": {
        "allTime": "514.085417",
        "sinceChange": "0.0",
        "sinceOpen": "0.0"
      },
      "entryPx": "2986.3",
      "leverage": {
        "rawUsd": "-95.059824",
        "type": "isolated",
        "value": 20
      },
      "liquidationPx": "2866.26936529",
      "marginUsed": "4.967826",
      "maxLeverage": 50,
      "positionValue": "100.02765",
      "returnOnEquity": "-0.0026789",
      "szi": "0.0335",
      "unrealizedPnl": "-0.0134",
      "usdPrice": "2986.3",
      "usdValue": "298,680.89",
      "image_url": null,
      "symbol": "ETH",
      "name": "Ethereum",
      "decimals": "18"
    },
    "type": "oneWay"
  }
]

Get detailed user staking information including delegations and rewards

get
Authorizations
Path parameters
addressstringRequired

User wallet address or HL domain

Query parameters
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Returns detailed staking information

application/json
ResponseanyExample: {"totalHype":"1000.0","stakedHype":"500.0","availableHype":"500.0","delegations":[{"validator":"0x123...","amount":"300.0","rewards":"10.5","usdValue":"450.0","usdPrice":"1.5"},{"validator":"0x456...","amount":"200.0","rewards":"5.2","usdValue":"300.0","usdPrice":"1.5"}],"delegatorSummary":{"totalStaked":"500.0","totalStakedUsd":"750.0","totalRewardsUsd":"23.55","activeDelegations":2},"usdPrice":"1.5","lastUpdate":1749806600930}
get
GET /hypercore/user/{address}/staking HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "totalHype": "1000.0",
  "stakedHype": "500.0",
  "availableHype": "500.0",
  "delegations": [
    {
      "validator": "0x123...",
      "amount": "300.0",
      "rewards": "10.5",
      "usdValue": "450.0",
      "usdPrice": "1.5"
    },
    {
      "validator": "0x456...",
      "amount": "200.0",
      "rewards": "5.2",
      "usdValue": "300.0",
      "usdPrice": "1.5"
    }
  ],
  "delegatorSummary": {
    "totalStaked": "500.0",
    "totalStakedUsd": "750.0",
    "totalRewardsUsd": "23.55",
    "activeDelegations": 2
  },
  "usdPrice": "1.5",
  "lastUpdate": 1749806600930
}

Get user vaults information

get
Authorizations
Path parameters
addressstringRequired

User wallet address or HL domain

Query parameters
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

Returns user vaults information

application/json
get
GET /hypercore/user/{address}/vaults HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "vaults": [
    {
      "vaultAddress": "text",
      "equity": "text",
      "name": "text",
      "description": "text",
      "leader": "text",
      "apr": 1,
      "maxDistributable": "text",
      "maxWithdrawable": "text",
      "isClosed": true,
      "allowDeposits": true,
      "allTimePnl": "text",
      "pnl": "text",
      "lastUpdate": 1
    }
  ],
  "totalVaultValue": "text"
}

Get NFTs for a wallet address or HL domain

get
Authorizations
Query parameters
addressstringRequired

Wallet address or HL domain

cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

NFTs data with cache metadata

application/json
get
GET /nfts?address=text HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": {
    "nfts": [
      {
        "contract": "text",
        "tokenId": "text",
        "name": "text",
        "image": "text",
        "valueUSD": 1
      }
    ],
    "totalNftValue": 1
  },
  "cache": {
    "lastUpdate": "2024-01-15T10:30:00Z",
    "cacheAge": "30 minutes ago",
    "cacheAgeSeconds": 1800,
    "source": "cache",
    "isStale": false
  }
}

Get DeFi points by protocol for a wallet address or HL domain

get
Authorizations
Query parameters
addressstringRequired

Wallet address or HL domain

cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
protocolsanyOptional

Supported protocols: hyperbeat, kittenswap, hyperswap, hyperlend

Responses
200

DeFi points by protocol with cache metadata

application/json
get
GET /points?address=text HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "protocolName": "text",
      "points": 1
    }
  ],
  "cache": {
    "lastUpdate": "2024-01-15T10:30:00Z",
    "cacheAge": "30 minutes ago",
    "cacheAgeSeconds": 1800,
    "source": "cache",
    "isStale": false
  }
}

Calculate vault yield for a user

get

Calculate the total yield earned by a user in a specific vault.

Cache Control:

  • Use cache=true (default) for fast cached results

  • Use cache=false to bypass cache and force fresh calculation (useful for debugging or real-time data)

Supported Vaults:

  • Midas Vaults: Oracle-based vaults (e.g., hbUSDT, hbXAUt, lstHYPE)

  • Upshift Vaults: ERC4626-based vaults with Supabase exchange rates

  • August Vaults: ERC4626-based vaults with Supabase exchange rates (e.g., hbHYPE)

Yield Calculation:

  • Midas: Uses oracle price feeds for historical share prices

  • Upshift/August: Uses Supabase exchange rates calculated from ERC4626 events

  • Both: Returns total yield, deposits, withdrawals, current position value, and period yields (7/30 days)

  • Method: FIFO (First In, First Out) with token price conversion

Authorizations
Query parameters
vaultAddressstringRequired

Vault contract address (e.g., 0x5e105266db42f78fa814322bce7f388b4c2e61eb)

Example: 0x5e105266db42f78fa814322bce7f388b4c2e61eb
userstringRequired

User wallet address to calculate yield for

Example: 0x29De368D4656cb50C182c528E901A5454f0B03e1
actionstring · enumRequired

Action to perform (currently only yield calculation is supported)

Possible values:
cachestring · enumOptional

🚀 Cache Control: Use "false" to bypass cache and force fresh calculation. Use "clear" to clear cache first then recalculate. Use "true" (default) for faster cached results.

Default: truePossible values:
Responses
200

Earned yield calculation for the vault position

application/json
Responseone of
anyOptional

Successful yield calculation

Example: {"yield":{"totalYield":11.26,"totalAmountDeposited":738.45,"totalAmountWithdrawn":0,"currentPositionValue":752.46,"yield7Days":1.77,"yield30Days":8.67}}
or
anyOptional

User with no vault activity

Example: {"yield":{"totalYield":0,"totalAmountDeposited":0,"totalAmountWithdrawn":0,"currentPositionValue":0,"yield7Days":0,"yield30Days":0}}
get
GET /vaults?vaultAddress=0x5e105266db42f78fa814322bce7f388b4c2e61eb&user=0x29De368D4656cb50C182c528E901A5454f0B03e1&action=yield HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "yield": {
    "totalYield": 11.26,
    "totalAmountDeposited": 738.45,
    "totalAmountWithdrawn": 0,
    "currentPositionValue": 752.46,
    "yield7Days": 1.77,
    "yield30Days": 8.67
  }
}

Get user points from partner protocols

get

Retrieves accumulated points for a user across different partner protocols including Hyperbeat, Hyperlend, Upshift, Hyperswap, and others

Authorizations
Query parameters
userstringRequired

User wallet address (0x format)

Example: 0xd048870caa5a3037f507583b4762a7598251a2fc
cachestring · enumOptional

Whether to use cache (default: true)

Possible values:
Responses
200

User points from partner protocols with cache metadata

application/json
get
GET /hyperbeat/points?user=0xd048870caa5a3037f507583b4762a7598251a2fc HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": {
    "user": "text",
    "points": [
      {
        "address": "text",
        "provider": "text",
        "total_value": 1,
        "updated_at": 1,
        "vault_details": [
          {
            "vault_address": "text",
            "total_points": 1,
            "deposit_amount": 1,
            "deposit_amount_native": 1,
            "has_pending_rewards": true
          }
        ]
      }
    ],
    "total_points": 1
  },
  "cache": {
    "lastUpdate": "2024-01-15T10:30:00Z",
    "cacheAge": "10 minutes ago",
    "cacheAgeSeconds": 600,
    "source": "cache",
    "isStale": false
  }
}

Get comprehensive vault data with positions and volume metrics

get

Retrieve complete vault analytics including multi-timeframe APYs, hourly TVL history, oracle data, performance metrics, real-time position breakdowns, and delta neutral volume data. Position data includes combined Hyperliquid basis trades (spot+perp), net DeFi positions (supply-borrow), and filtered liability positions. Volume metrics include 24h spot/perp trading volumes, position values, and leverage data for delta neutral strategies. Optimized for real-time monitoring and historical analysis.

Authorizations
Path parameters
addressstringRequired

Vault contract address

Example: 0x5e105266db42f78FA814322Bce7f388B4C2e61eb
Responses
200

Vault data retrieved successfully

application/json
get
GET /vault-infos/{address} HTTP/1.1
Host: 
x-api-key: YOUR_API_KEY
Accept: */*
{
  "vaultInfo": {
    "address": "text",
    "symbol": "text",
    "name": "text",
    "provider": "text",
    "description": "text",
    "chain": "text",
    "chainId": 1,
    "coingeckoId": "text",
    "deployedBlock": 1,
    "type": "text",
    "oracle": "text",
    "tokenPriceOracle": "text"
  },
  "currentAPY": {
    "apy_1d": 12.8,
    "apy_3d": 14.1,
    "apy_7d": 15.42,
    "apy_30d": 16.7,
    "apy_since_launch": 18.3,
    "timestamp": 1704725400000,
    "lastUpdated": "2025-01-08T15:30:00.000Z"
  },
  "currentTVL": {
    "totalValueLocked": 1250000.42,
    "sharePrice": 1.0245,
    "timestamp": 1704725400000,
    "lastUpdated": "2025-01-08T15:30:00.000Z"
  },
  "currentVolume": {
    "spotVolume24h": 479.25,
    "perpVolume24h": 479.25,
    "totalVolume24h": 958.5,
    "perpValue": 25000,
    "spotValue": 25000,
    "idleValue": 5000,
    "shortLeverage": 2.15,
    "lastUpdated": "2025-01-08T15:30:00.000Z",
    "timestamp": 1704725400000
  },
  "currentPositions": {
    "summary": {
      "totalValue": 96770000,
      "count": 13,
      "lastUpdated": "2025-08-03T14:59:13.278221+00:00"
    },
    "breakdown": [
      {
        "protocol": "Hyperliquid",
        "position": "HYPE basis trade",
        "allocation": 39.78,
        "value": 39849326.11
      }
    ]
  },
  "history": {
    "fullAPYHistory": [
      {
        "date": "2025-01-08",
        "apy": 15.42,
        "apy_1d": 12.8,
        "apy_3d": 14.1,
        "apy_7d": 15.42,
        "apy_30d": 16.7,
        "apy_since_launch": 18.3,
        "timestamp": 1704725400
      }
    ],
    "apy1dChart": [
      {
        "date": "2025-01-08",
        "value": 12.8,
        "timestamp": 1704725400
      }
    ],
    "apy7dChart": [
      {
        "date": "2025-01-08",
        "value": 15.42,
        "timestamp": 1704725400
      }
    ],
    "tvlHistory": [
      {
        "date": "2025-01-08",
        "datetime": "2025-01-08T15:30:00.000Z",
        "total_value_locked": 1250000.42,
        "share_price": 1.0245,
        "timestamp": 1704725400,
        "created_at": "2025-01-08T15:30:15.000Z"
      }
    ],
    "exchangeRates": [
      {
        "data": 102450000,
        "round_id": 123456,
        "timestamp": 1704725400,
        "created_at": "2025-01-08T15:30:00.000Z"
      }
    ]
  },
  "configuration": {},
  "metadata": {
    "totalAPYRecords": 156,
    "totalTVLRecords": 2847,
    "totalExchangeRates": 35,
    "totalPositions": 13,
    "lastUpdated": "2025-01-08T15:30:00.000Z"
  }
}

🛡️ Security

  • All endpoints require the x-api-key header.

  • Keys are personal and rate-limited.

  • Never share your API key.


📖 Full API Reference

See the interactive documentation and all response examples at 👉 https://api.hyperfolio.xyz/docs


Contact: [email protected]


For more details on each endpoint, error codes, and advanced usage, refer to the Swagger UI.

Last updated