Market API#
Market APIs are public and do not require authentication. Prices, quantities, and timestamps are returned as strings. Timestamps are Unix epoch timestamps in milliseconds.
GET /market/instruments - Instruments#
Aggregates perp and spot instruments. Each perp contract occupies one record, and each spot trading pair occupies one record.
A single assetId may correspond to multiple lifecycle records. Use name and state together to identify the specific instrument.
assetId and marketType cannot be passed together. Otherwise, ILLEGAL_PARAMETER is returned.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | Filters by instrument ID. Cannot be used together with marketType. |
| marketType | String | No | Filters by market type. Cannot be used together with assetId. Valid values are perp and spot. |
Request Example
GET /api/v5/exchangeos/market/instruments?assetId=0Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| marketType | String | Market type: perp or spot. |
| name | String | Instrument name. |
| uly | String | Underlying index name. |
| priceDecimals | String | Price precision. |
| sizeDecimals | String | Size precision. |
| buyLmt | String | Current highest buy-price limit. |
| sellLmt | String | Current lowest sell-price limit. |
| state | String | Instrument status. |
| settleTokenId | String | perp settlement token ID. spot returns an empty string. |
| listTime | String | Listing time of the current lifecycle, as a Unix timestamp in milliseconds. |
| expTime | String | Delisting time of the current lifecycle, as a Unix timestamp in milliseconds. Returns an empty string when not delisted. |
| upcChg | Array | List of upcoming parameter changes. |
| > param | String | Name of the parameter to be changed. |
| > newValue | String | New value after the parameter becomes effective. |
| > effTime | String | Time when the parameter becomes effective, as a Unix timestamp in milliseconds. |
| leverage | String | Maximum leverage. Spot returns an empty string. |
| positionTierId | String | Position tier ID. Spot returns an empty string. |
| marginModes | Array | Supported margin modes. Spot returns an empty array. |
| baseTokenId | String | Spot base-token ID. perp returns an empty string. |
| quoteTokenId | String | Spot quote-token ID. perp returns an empty string. |
upcChg.param Enum
| Value | Description |
|---|---|
| priceDecimals | Price precision change. |
| sizeDecimals | Size precision change. |
Response Example: perp
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"marketType": "perp",
"name": "BTC",
"uly": "BTC-USD",
"priceDecimals": "1",
"sizeDecimals": "5",
"buyLmt": "99060.0",
"sellLmt": "91340.0",
"state": "live",
"settleTokenId": "0",
"listTime": "1710000000000",
"expTime": "",
"upcChg": [],
"leverage": "100",
"positionTierId": "3",
"marginModes": [
"cross",
"isolated"
],
"baseTokenId": "",
"quoteTokenId": ""
}
]
}
Response Example: spot
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "10001",
"marketType": "spot",
"name": "BTC/USDC",
"uly": "BTC",
"priceDecimals": "1",
"sizeDecimals": "8",
"buyLmt": "99900.0",
"sellLmt": "90400.0",
"state": "live",
"settleTokenId": "",
"listTime": "1710000000000",
"expTime": "",
"upcChg": [],
"leverage": "",
"positionTierId": "",
"marginModes": [],
"baseTokenId": "3",
"quoteTokenId": "1"
}
]
}
Response Example: perp With an Upcoming Price Precision Change
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "1",
"marketType": "perp",
"name": "ETH",
"uly": "ETH-USD",
"priceDecimals": "2",
"sizeDecimals": "4",
"buyLmt": "3652.5",
"sellLmt": "2988.5",
"state": "live",
"settleTokenId": "0",
"listTime": "1710000000000",
"expTime": "",
"upcChg": [
{
"param": "priceDecimals",
"newValue": "3",
"effTime": "1710086400000"
}
],
"leverage": "25",
"positionTierId": "5",
"marginModes": [
"cross",
"isolated"
],
"baseTokenId": "",
"quoteTokenId": ""
}
]
}
GET /market/tickers - Tickers#
Retrieves market data for all instruments in a business line, including the latest trade, best bid and ask, 24-hour OHLC, and 24-hour volume.
If the marketType of the specified assetId conflicts with the supplied marketType, ILLEGAL_PARAMETER is returned.
Fields without trading data return an empty string.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | Filters by instrument ID. |
| marketType | String | No | Filters by market type: perp or spot. |
Request Example
GET /api/v5/exchangeos/market/tickers?marketType=perpResponse Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| lastPx | String | Latest trade price. |
| lastSz | String | Latest trade size. |
| askPx | String | Best ask price. |
| askSz | String | Best ask size. |
| bidPx | String | Best bid price. |
| bidSz | String | Best bid size. |
| open24h | String | 24-hour opening price. |
| high24h | String | 24-hour high price. |
| low24h | String | 24-hour low price. |
| vol24h | String | 24-hour base-token trading volume. |
| volCcy24h | String | 24-hour quote-currency trading volume. |
| sodUtc0 | String | Start-of-day price at UTC+0. |
| sodUtc8 | String | Start-of-day price at UTC+8. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example: perp
vol24h is the base-token volume, and volCcy24h is the USDS trading volume.
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"lastPx": "95200",
"lastSz": "0.01",
"askPx": "95201.0",
"askSz": "1.2",
"bidPx": "95199.0",
"bidSz": "0.8",
"open24h": "93000.0",
"high24h": "96000.0",
"low24h": "92500.0",
"vol24h": "5980.23",
"volCcy24h": "582310412.56",
"sodUtc0": "93500.0",
"sodUtc8": "94000.0",
"ts": "1704067210000"
}
]
}
Response Example: spot
vol24h is the base-token volume, and volCcy24h is the quote-token trading volume.
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "10001",
"lastPx": "95150.0",
"lastSz": "0.005",
"askPx": "95152.0",
"askSz": "0.6",
"bidPx": "95148.0",
"bidSz": "0.9",
"open24h": "92950.0",
"high24h": "95900.0",
"low24h": "92400.0",
"vol24h": "812.45",
"volCcy24h": "77216530.20",
"sodUtc0": "93450.0",
"sodUtc8": "93980.0",
"ts": "1704067210000"
}
]
}
GET /market/order-book - Order Book#
Retrieves a depth snapshot of the bid and ask order book for a specified instrument. The data source is l2Book.
On-chain RPC does not provide an order-book sequence number. Use the following process to maintain a local order book:
Subscribe to exchangeos-books
↓
Receive action=snapshot and seqId
↓
Build the local order book from the snapshot
↓
Apply only updates whose prevSeqId equals the previous seqId
↓
Resubscribe when the sequence is discontinuous- REST
GET /market/order-bookis appropriate only for independently querying the current order book. - WebSocket
exchangeos-booksshould be used to build and continuously maintain a complete local order book.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | Yes | Instrument ID. |
| depth | String | No | Number of order-book levels to return. |
Request Example
GET /api/v5/exchangeos/market/order-book?assetId=0&depth=20Response Fields
| Field | Type | Description |
|---|---|---|
| asks | Array | Ask levels, sorted from low to high by price. |
| bids | Array | Bid levels, sorted from high to low by price. |
| > 0 | String | Price of the level. |
| > 1 | String | Size at the level. For perp, this is the base-token quantity rather than a contract count. |
| > 2 | String | Number of orders at the level. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"asks": [
["95200", "0.80", "2"],
["95205.0", "2.10", "5"]
],
"bids": [
["95190.0", "1.20", "3"],
["95185.0", "0.50", "1"]
],
"ts": "1704067210000"
}
]
}
GET /market/candles - Candles#
Retrieves OHLCV candles for a specified instrument for charting. The response is an array of arrays: each candle is a fixed-length array rather than an object. The data source is candleSnapshot.
Both perp and spot use base-token units.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | Yes | Instrument ID. |
| bar | String | Yes | Candle interval. |
| begin | String | No | Start of the query time range, as a Unix timestamp in milliseconds. |
| end | String | No | End of the query time range, as a Unix timestamp in milliseconds. |
| limit | String | No | Number of candles to return. |
Request Examples
GET /api/v5/exchangeos/market/candles?assetId=0&bar=1m&limit=100
GET /api/v5/exchangeos/market/candles?assetId=0&bar=1m&end=1704067200000&limit=100
GET /api/v5/exchangeos/market/candles?assetId=0&bar=1m&begin=1704000000000&end=1704067200000&limit=100Response Fields
Each item in data is a fixed-length string array with nine elements:
| Index | Type | Description |
|---|---|---|
| 0 | String | Candle start time, as a Unix timestamp in milliseconds. |
| 1 | String | Opening price. |
| 2 | String | Highest price. |
| 3 | String | Lowest price. |
| 4 | String | Closing price. |
| 5 | String | Trading volume, in base-token units. |
| 6 | String | Trading amount. |
| 7 | String | Trading amount. |
| 8 | String | Candle status. |
Response Example
{
"code": "0",
"msg": "",
"data": [
["1704067260000", "95100.0", "95250.0", "95080.0", "95200", "8.42", "800150.5", "800150.5", "1"],
["1704067200000", "95000.0", "95180.0", "94950.0", "95100.0", "7.63", "725000.2", "725000.2", "1"]
]
}
GET /market/mark-prices - Mark Prices#
Retrieves mark prices for instruments for real-time valuation. perp only; spot does not return markPx.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | Instrument ID. |
Request Example
GET /api/v5/exchangeos/market/mark-prices?assetId=0Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| markPx | String | Mark price. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "0",
"markPx": "95200",
"ts": "1704067210000"
}
]
}
GET /market/position-tiers - Position Tiers#
Public endpoint for perp only.
Position tiers use a piecewise linear function. MMR and IMR remain constant in the flat range, where position value does not exceed basePositionValue0. Above this amount, they increase linearly by one changeRate for each additional 100,000 USD of position value.
The endpoint returns the contract default tier. For accounts bound to a special tier role, such as MM or VIP, use the effective tier returned by the private GET /account/position-tiers endpoint.
The 0 in basePositionValue0, baseMMR0, and baseIMR0 denotes the reference point of the margin-rate curve. It does not represent entry zero in tiers[]. tiers[] is a leverage-to-maximum-position reference table derived from the margin-rate curve; the two have different meanings.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | Yes | perp instrument ID. |
Request Example
GET /api/v5/exchangeos/market/position-tiers?assetId=102Calculation Formulas
effectiveMMR(V) = baseMMR0 + max(0, (V − basePositionValue0) / 100000) × mmrChangeRate
effectiveIMR(V) = baseIMR0 + max(0, (V − basePositionValue0) / 100000) × imrChangeRate
maintenanceMargin = V × effectiveMMR(V)
theoreticalMaxPosition(L) = basePositionValue0 + (1/L − baseIMR0) × 100000 / imrChangeRateVis the position value in USD. WhenVexceedsmaxPositionValue, rates continue to be calculated by the function without a cap;maxPositionValueonly limits newly opened positions.- When opening or increasing a position, total position value must not exceed
maxPositionAllowedfor the selected leverage. - In hedge mode, tiers are calculated independently by account, contract, margin mode, and position side. Long and short positions are not aggregated.
Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| positionTierId | String | Position tier ID. |
| basePositionValue0 | String | Reference position value of the margin-rate curve. |
| baseMMR0 | String | Base maintenance margin rate. |
| baseIMR0 | String | Base initial margin rate. |
| mmrChangeRate | String | Maintenance margin rate change rate. |
| imrChangeRate | String | Initial margin rate change rate. |
| maxPositionValue | String | Maximum position value. |
| imrCurvePosValueGrid | String | Position-value grid of the initial margin rate curve. |
| maxLeverage | String | Maximum leverage. |
| tiers | Array | Mapping between leverage and maximum allowed position value. |
| > leverage | String | Leverage value. |
| > maxPositionAllowed | String | Maximum allowed position value at the leverage. |
Response Example
The complete tiers list returns tiers 1 through 100. The following is an excerpt:
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"positionTierId": "3",
"basePositionValue0": "100000",
"baseMMR0": "0.005",
"baseIMR0": "0.01",
"mmrChangeRate": "0.00025",
"imrChangeRate": "0.0005",
"maxPositionValue": "5000000",
"imrCurvePosValueGrid": "10000",
"maxLeverage": "100",
"tiers": [
{
"leverage": "100",
"maxPositionAllowed": "100000"
},
{
"leverage": "50",
"maxPositionAllowed": "2100000"
},
{
"leverage": "2",
"maxPositionAllowed": "5000000"
},
{
"leverage": "1",
"maxPositionAllowed": "5000000"
}
]
}
]
}
GET /market/funding-rate-history - Funding Rate History#
Retrieves historical funding-rate records for a specified instrument. Each funding settlement produces one record. At most one year of data is returned.
begin and end filter the time window. cursor is used for pagination. The response returns nextCursor and hasMore in data[0].
Pagination Rules
- Records are located in
data[0].dataand are returned in descending order byfundingTime. - Each response returns the next-page token in
data[0].nextCursor. The token is opaque; clients must not parse or construct it. - Use
data[0].hasMoreto determine whether to request another page.hasMore=falsewithnextCursor=""indicates the final page. beginandendare time-window filters only; they are not pagination cursors. When passed withcursor,cursordetermines the starting position.- Do not pass
cursoron the first page.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | Yes | perp instrument ID. |
| begin | String | No | Start of the query time window, as a Unix timestamp in milliseconds. |
| end | String | No | End of the query time window, as a Unix timestamp in milliseconds. |
| cursor | String | No | Pagination token returned by the previous page. Omit for the first page. |
| limit | String | No | Number of records to return. |
Request Examples
GET /api/v5/exchangeos/market/funding-rate-history?assetId=0&limit=100
GET /api/v5/exchangeos/market/funding-rate-history?assetId=0&cursor=1&limit=100
GET /api/v5/exchangeos/market/funding-rate-history?assetId=0&begin=1704000000000&end=1704067200000&limit=100Response Fields
| Field | Type | Description |
|---|---|---|
| nextCursor | String | Token for retrieving the next page. Returns an empty string on the final page. |
| hasMore | Boolean | Whether additional records are available. |
| data | Array | Historical funding-rate records. |
| > assetId | String | Instrument ID. |
| > fundingRate | String | Funding rate. |
| > fundingTime | String | Funding settlement time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"nextCursor": "1",
"hasMore": true,
"data": [
{
"assetId": "0",
"fundingRate": "0.0000125",
"fundingTime": "1704067200000"
},
{
"assetId": "0",
"fundingRate": "0.0000095",
"fundingTime": "1704038400000"
}
]
}
]
}
GET /market/funding-rate - Current and Predicted Funding Rate#
Retrieves funding-rate estimates and related parameters for the current and next settlement periods for a specified instrument or all instruments.
The funding-rate formula is:
fundingRate = clamp±maxFundingRate(
multiplierFactor × (
averagePremiumIndex +
clamp(interestRate − averagePremiumIndex, ±damperValue)
)
)The multiplier is applied before capping at the maximum or minimum funding rate. The premium index is depth-weighted using impactBaseNotional.
fundingTime, interestRate, damperValue, multiplierFactor, and impactBaseNotional are available only through the REST API and are not published through WebSocket.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | perp instrument ID. Omit to query all supported instruments. |
Request Example
GET /api/v5/exchangeos/market/funding-rate?assetId=0Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| fundingRate | String | Current or predicted funding rate. |
| fundingTime | String | Current funding settlement time, as a Unix timestamp in milliseconds. |
| nextFundingTime | String | Next funding settlement time, as a Unix timestamp in milliseconds. |
| settlementInterval | String | Settlement interval. |
| minFundingRate | String | Minimum funding rate. |
| maxFundingRate | String | Maximum funding rate. |
| interestRate | String | Interest rate. |
| impactBaseNotional | String | Impact base notional used to calculate the premium index. |
| damperValue | String | Funding-rate dampener value. |
| multiplierFactor | String | Funding-rate multiplier. |
| fundingSwitch | Boolean | Funding-rate switch status. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "0",
"fundingRate": "0.0000125",
"fundingTime": "1704067200000",
"nextFundingTime": "1704096000000",
"settlementInterval": "8",
"minFundingRate": "-0.0075",
"maxFundingRate": "0.0075",
"interestRate": "0.0001",
"impactBaseNotional": "20000",
"damperValue": "0.0005",
"multiplierFactor": "1",
"fundingSwitch": true
}
]
}
GET /market/open-interest - Open Interest#
Retrieves the total open interest for perp markets. perp only.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | perp instrument ID. |
Request Example
GET /api/v5/exchangeos/market/open-interest?assetId=102Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| oiCcy | String | Total open interest in base-token units. |
| oiUsd | String | Total open interest in USD. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"oiCcy": "22161.13",
"oiUsd": "1939251795.54",
"ts": "1704067210000"
}
]
}
GET /market/price-limit - Price Limit#
Retrieves the current highest buy-price limit and lowest sell-price limit for an instrument. The endpoint returns real-time price limits calculated from the current reference price. An order outside the permitted price band is rejected when priceAmendType=noAmend.
This endpoint supports perp and spot instruments in the live state.
If the Oracle has not provided a price band for an online instrument, the endpoint still succeeds and returns empty strings for buyLmt and sellLmt. An empty string means that no value is currently available; it is not equivalent to "0". Clients must not interpret it as zero or as an unlimited price range.
If assetId does not exist, or all lifecycles of the assetId are offline, such as state=expired or offline, the endpoint returns 80208 ASSET_NOT_FOUND. Delisted instruments may still appear in the GET /market/instruments response.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | Yes | Instrument ID. |
Request Example
GET /api/v5/exchangeos/market/price-limit?assetId=102Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| buyLmt | String | Current highest buy-price limit. Returns an empty string when no price band is available. |
| sellLmt | String | Current lowest sell-price limit. Returns an empty string when no price band is available. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"buyLmt": "99060.0",
"sellLmt": "91340.0",
"ts": "1704067210000"
}
]
}
GET /market/index-tickers - Index Tickers#
Retrieves the latest index price and 24-hour statistics. perp only. The index is used for perp mark pricing and risk control.
For Trigger orders, the pricing source for triggerPriceType=index is the corresponding index returned by this endpoint.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | String | No | perp instrument ID. |
Request Example
GET /api/v5/exchangeos/market/index-tickers?assetId=102Response Fields
| Field | Type | Description |
|---|---|---|
| assetId | String | Instrument ID. |
| uly | String | Underlying index name. |
| idxPx | String | Latest index price. |
| open24h | String | 24-hour opening price. |
| high24h | String | 24-hour high price. |
| low24h | String | 24-hour low price. |
| sodUtc0 | String | Start-of-day price at UTC+0. |
| sodUtc8 | String | Start-of-day price at UTC+8. |
| ts | String | Data generation time, as a Unix timestamp in milliseconds. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"assetId": "102",
"uly": "BTC-USD",
"idxPx": "95180.4",
"open24h": "93010.2",
"high24h": "96020.0",
"low24h": "92480.9",
"sodUtc0": "93510.0",
"sodUtc8": "94012.3",
"ts": "1704067210000"
}
]
}
GET /market/token-info - Token Information#
Retrieves basic information for all tokens supported by ExchangeOS. Use this endpoint to map tokenId to token names and determine whether a token is a points-market asset.
This is a public market-data endpoint that does not require authentication. It always returns all tokens.
Request Parameters
None.
Request Example
GET /api/v5/exchangeos/market/token-infoResponse Fields
| Field | Type | Description |
|---|---|---|
| tokenId | String | Token ID. |
| tokenName | String | Token name. |
| pointFlag | Boolean | Whether the token is a points-market asset. |
| weiDecimals | String | Token precision in its smallest unit. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"tokenId": "0",
"tokenName": "USDS",
"pointFlag": false,
"weiDecimals": "6"
},
{
"tokenId": "1",
"tokenName": "POINTS",
"pointFlag": true,
"weiDecimals": "6"
},
{
"tokenId": "3",
"tokenName": "BTC",
"pointFlag": false,
"weiDecimals": "8"
}
]
}
GET /market/security-fund - Security Fund#
Retrieves the latest value and daily snapshots for the past seven days for a specified Security Vault, Security Fund, or Supplementary Fund.
If the specified fund is configured as not displayed, the API still returns the corresponding fundType and assetId. However, fundValue and block_timestamp are empty strings, and history is an empty array.
Historical Data Display Rules
For a Security Fund, the historical-data display start time is calculated independently for the requested assetId:
effectiveStartTime = max(reserveFundListingTime, currentContractLifecycleListingTime)effectiveStartTimeis calculated independently for eachassetId. When a contract is relisted, the current lifecycle listing time is used and data from previous lifecycles is not returned. Other contracts sharing the same fund are unaffected.- Only daily snapshots from the most recent seven days where
cTime >= effectiveStartTimeare returned. At most one snapshot is returned per day, in reverse chronological order. fundValueandblock_timestampare taken from the latest snapshot wherecTime >= effectiveStartTime. If no eligible snapshot exists, both fields are empty strings andhistoryis an empty array.- Security Vault and Supplementary Fund are not associated with an
assetId. Their display starts from their respective reserve fund listing times, and the most recent seven days of snapshots are returned.
HTTP Request
GET /api/v5/exchangeos/market/security-fundRequest Examples
Query a Security Vault:
GET /api/v5/exchangeos/market/security-fund?fundType=securityVaultQuery the Security Fund for a specified asset:
GET /api/v5/exchangeos/market/security-fund?fundType=securityFund&assetId=2Query a Supplementary Fund:
GET /api/v5/exchangeos/market/security-fund?fundType=supplementaryFundRequest Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| fundType | String | Yes | Fund type: securityVault, securityFund, or supplementaryFund. |
| assetId | String | Conditionally required | Public perpetual-contract asset ID. Required when fundType=securityFund; omit for other fund types. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| assetId | String | Public perpetual-contract asset ID associated with the Security Fund. An empty string is returned when querying a Security Vault or Supplementary Fund. |
| fundType | String | Fund type: securityVault, securityFund, or supplementaryFund. |
| fundValue | String | Latest value of the specified fund, in USD. An empty string is returned when the fund is not displayed or no data is available. |
| block_timestamp | String | Snapshot time of the latest fund value, as a Unix timestamp in milliseconds. An empty string is returned when the fund is not displayed or no data is available. |
| history | Array | Daily fund-value snapshots for the most recent seven days, with at most one record per day, returned in reverse chronological order. An empty array is returned when the fund is not displayed or no data is available. |
| > cTime | String | Historical snapshot creation time, as a Unix timestamp in milliseconds. |
| > balance | String | Fund value at the historical snapshot time, in USD. |
Response Example: Security Fund
{
"code": "0",
"msg": "",
"data": [
{
"data": [
{
"assetId": "2",
"fundType": "securityFund",
"fundValue": "12000.50",
"block_timestamp": "1786636800000",
"history": [
{
"cTime": "1786636800000",
"balance": "12000.50"
},
{
"cTime": "1786550400000",
"balance": "11875.25"
},
{
"cTime": "1786464000000",
"balance": "11750.00"
},
{
"cTime": "1786377600000",
"balance": "11680.50"
},
{
"cTime": "1786291200000",
"balance": "11590.00"
},
{
"cTime": "1786204800000",
"balance": "11450.75"
},
{
"cTime": "1786118400000",
"balance": "11320.00"
}
]
}
]
}
]
}
Response Example: Supplementary Fund With a Value
{
"code": "0",
"msg": "",
"data": [
{
"data": [
{
"assetId": "",
"fundType": "supplementaryFund",
"fundValue": "486400.00",
"block_timestamp": "1786636800000",
"history": [
{
"cTime": "1786636800000",
"balance": "486400.00"
},
{
"cTime": "1786550400000",
"balance": "480000.00"
},
{
"cTime": "1786464000000",
"balance": "475000.00"
},
{
"cTime": "1786377600000",
"balance": "470000.00"
},
{
"cTime": "1786291200000",
"balance": "465000.00"
},
{
"cTime": "1786204800000",
"balance": "460000.00"
},
{
"cTime": "1786118400000",
"balance": "455000.00"
}
]
}
]
}
]
}
Response Example: Fund Not Displayed
{
"code": "0",
"msg": "",
"data": [
{
"data": [
{
"assetId": "",
"fundType": "securityVault",
"fundValue": "",
"block_timestamp": "",
"history": []
}
]
}
]
}
Response Example: Relisted Asset With Fewer Than Seven Days of Data
Assume that the current listing time for assetId="2" is 1786464000000. Only the three snapshots from the current lifecycle are returned:
{
"code": "0",
"msg": "",
"data": [
{
"data": [
{
"assetId": "2",
"fundType": "securityFund",
"fundValue": "12000.50",
"block_timestamp": "1786636800000",
"history": [
{
"cTime": "1786636800000",
"balance": "12000.50"
},
{
"cTime": "1786550400000",
"balance": "11875.25"
},
{
"cTime": "1786464000000",
"balance": "11750.00"
}
]
}
]
}
]
}
- GET /market/instruments - InstrumentsGET /market/tickers - TickersGET /market/order-book - Order BookGET /market/candles - CandlesGET /market/mark-prices - Mark PricesGET /market/position-tiers - Position TiersGET /market/funding-rate-history - Funding Rate HistoryGET /market/funding-rate - Current and Predicted Funding RateGET /market/open-interest - Open InterestGET /market/price-limit - Price LimitGET /market/index-tickers - Index TickersGET /market/token-info - Token InformationGET /market/security-fund - Security Fund
