Oracle Prices
REST endpoints for oracle information.
Use this page for public price and token reads. For workflow guidance across REST, GraphQL, and SDK surfaces, start with the API integration guide.
Ping
Use the ping endpoint to check whether the oracle API is healthy. The endpoint verifies database connectivity and returns a JSON response.
| Network | URL |
|---|---|
| Arbitrum | https://arbitrum-api.gmxinfra.io/ping |
| Avalanche | https://avalanche-api.gmxinfra.io/ping |
| Botanix | https://botanix-api.gmxinfra.io/ping |
Success response (200 OK):
{ "ok": true }
Error response (500 Internal Server Error):
{ "errors": ["db is unavailable"] }
Tickers
The tickers endpoint returns the latest price data for all supported tokens. Use this endpoint for real-time price display in your application.
| Network | URL |
|---|---|
| Arbitrum | https://arbitrum-api.gmxinfra.io/prices/tickers |
| Avalanche | https://avalanche-api.gmxinfra.io/prices/tickers |
| Botanix | https://botanix-api.gmxinfra.io/prices/tickers |
Response — an array of ticker objects:
[
{
"tokenSymbol": "ETH",
"tokenAddress": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"minPrice": "1799910000000000000000000000000000",
"maxPrice": "1800090000000000000000000000000000",
"medianPrice": "1800000000000000000000000000000000",
"oracleDecimals": 8,
"updatedAt": 1708956120
}
]
Prices are represented as strings scaled to 30 decimal places. Divide by 10^(30 - tokenDecimals - oracleDecimals) to get the USD price.
Signed prices
The signed prices endpoint returns the latest oracle-signed price data for each supported token. Include these signed prices in your transaction payloads when interacting with GMX contracts on-chain.
| Network | URL |
|---|---|
| Arbitrum | https://arbitrum-api.gmxinfra.io/signed_prices/latest |
| Avalanche | https://avalanche-api.gmxinfra.io/signed_prices/latest |
| Botanix | https://botanix-api.gmxinfra.io/signed_prices/latest |
Response:
{
"signedPrices": [
{
"tokenSymbol": "ETH",
"tokenAddress": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"minPrice": "1799910000000000000000000000000000",
"maxPrice": "1800090000000000000000000000000000",
"medianPrice": "1800000000000000000000000000000000",
"oracleDecimals": 8,
"signer": "0xabc...def",
"signature": "0x...",
"signatureWithoutBlockHash": "0x...",
"tokenOracleType": 0,
"salt": "0x...",
"minBlockNumber": 123456789,
"minBlockTimestamp": 1708956000,
"minBlockHash": "0x...",
"maxBlockNumber": 123456799,
"maxBlockTimestamp": 1708956120,
"maxBlockHash": "0x...",
"createdAt": 1708956120.5
}
]
}
Candlesticks
The candlesticks endpoint returns OHLC price data for a given token and time period. Candles are returned in descending order (most recent first).
| Network | Base URL |
|---|---|
| Arbitrum | https://arbitrum-api.gmxinfra.io/prices/candles |
| Avalanche | https://avalanche-api.gmxinfra.io/prices/candles |
| Botanix | https://botanix-api.gmxinfra.io/prices/candles |
Required query parameters:
tokenSymbol— the token symbol, for exampleETHorBTCperiod— one of1m,5m,15m,1h,4h, or1d
Optional query parameters:
limit— maximum number of candles to return. Defaults to1000. Minimum:1. Maximum:10000.
Example request:
GET https://arbitrum-api.gmxinfra.io/prices/candles?tokenSymbol=ETH&period=1d&limit=2
Response:
{
"period": "1d",
"candles": [
[1701388800, 2150.25, 2180.5, 2145.0, 2175.3],
[1701302400, 2120.1, 2155.0, 2110.0, 2150.25]
]
}
Each candle is an array of five values in this order:
timestamp— Unix timestamp (seconds) of the candle period startopen— opening pricehigh— highest price during the periodlow— lowest price during the periodclose— closing price
Tokens
The tokens endpoint returns a list of all tokens supported by the oracle on a given network.
| Network | URL |
|---|---|
| Arbitrum | https://arbitrum-api.gmxinfra.io/tokens |
| Avalanche | https://avalanche-api.gmxinfra.io/tokens |
| Botanix | https://botanix-api.gmxinfra.io/tokens |
Operational notes
/prices/tickers,/signed_prices/latest, and/prices/candlesuse a10second route timeout in the current oracle-keeper implementation./prices/tickersuses a short in-process cache of0.3seconds in the current implementation./signed_prices/latestis cached for1second in the current implementation./prices/candlesis cached for15seconds for1mand5mperiods, and60seconds for larger periods./tokensreturns the configured token list for the network. If you need richer token data with current prices, use API v2 or SDK v2, which read from/tokens/info.- If you need retries or fallback behavior, implement that in your app. These docs do not publish a public SLA.