Skip to main content

Liquidity

REST endpoints for APY, performance, and GLV information.

Use this page for public liquidity and yield reads. For a broader comparison with SDK and GraphQL surfaces, start with the API integration guide.

Fee APYs

To retrieve fee APYs for GM pools and GLV vaults:

NetworkURL
Arbitrumhttps://arbitrum-api.gmxinfra.io/apy?period=total
Avalanchehttps://avalanche-api.gmxinfra.io/apy?period=total
Botanixhttps://botanix-api.gmxinfra.io/apy?period=total

Accepted query parameters:

  • period: 1d, 7d, 30d, 90d, 180d, 1y, total. Defaults to 7d.

Performance

To retrieve annualized performance for GM pools and GLV vaults:

NetworkURL
Arbitrumhttps://arbitrum-api.gmxinfra.io/performance/annualized?period=total
Avalanchehttps://avalanche-api.gmxinfra.io/performance/annualized?period=total
Botanixhttps://botanix-api.gmxinfra.io/performance/annualized?period=total

Accepted query parameters:

  • period: 7d, 30d, 90d, 180d, 1y, total. Defaults to 90d. The 1d period is not supported and returns a 400 error.
  • address: Address of a specific GM pool or GLV vault to retrieve data for only that entity.

GLV tokens

To retrieve a list of GMX Liquidity Vault (GLV) tokens:

NetworkURL
Arbitrumhttps://arbitrum-api.gmxinfra.io/glvs/
Avalanchehttps://avalanche-api.gmxinfra.io/glvs/
Botanixhttps://botanix-api.gmxinfra.io/glvs/

GLV info

To retrieve extended information for GLV vaults, including market exposure, GM pool balances in USD, isDisabled status, and listing date:

NetworkURL
Arbitrumhttps://arbitrum-api.gmxinfra.io/glvs/info
Avalanchehttps://avalanche-api.gmxinfra.io/glvs/info
Botanixhttps://botanix-api.gmxinfra.io/glvs/info

Operational notes

  • /apy currently caches responses for 1800 seconds and returns 400 for an invalid period.
  • /performance/annualized and /performance/snapshots currently cache by day and return 400 for unsupported periods such as 1d.
  • Use these routes for yield and performance reporting, not for near-live position or order state.
  • If you need write-path status after a transaction, use SDK v1 or direct contracts and then poll the relevant read surface.