Портал розробників
Тема

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

ParameterTypeRequiredDescription
assetIdStringNoFilters by instrument ID. Cannot be used together with marketType.
marketTypeStringNoFilters by market type. Cannot be used together with assetId. Valid values are perp and spot.

Request Example

text
GET /api/v5/exchangeos/market/instruments?assetId=0

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
marketTypeStringMarket type: perp or spot.
nameStringInstrument name.
ulyStringUnderlying index name.
priceDecimalsStringPrice precision.
sizeDecimalsStringSize precision.
buyLmtStringCurrent highest buy-price limit.
sellLmtStringCurrent lowest sell-price limit.
stateStringInstrument status.
settleTokenIdStringperp settlement token ID. spot returns an empty string.
listTimeStringListing time of the current lifecycle, as a Unix timestamp in milliseconds.
expTimeStringDelisting time of the current lifecycle, as a Unix timestamp in milliseconds. Returns an empty string when not delisted.
upcChgArrayList of upcoming parameter changes.
> paramStringName of the parameter to be changed.
> newValueStringNew value after the parameter becomes effective.
> effTimeStringTime when the parameter becomes effective, as a Unix timestamp in milliseconds.
leverageStringMaximum leverage. Spot returns an empty string.
positionTierIdStringPosition tier ID. Spot returns an empty string.
marginModesArraySupported margin modes. Spot returns an empty array.
baseTokenIdStringSpot base-token ID. perp returns an empty string.
quoteTokenIdStringSpot quote-token ID. perp returns an empty string.

upcChg.param Enum

ValueDescription
priceDecimalsPrice precision change.
sizeDecimalsSize precision change.

Response Example: perp

json
{
  "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

json
{
  "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

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringNoFilters by instrument ID.
marketTypeStringNoFilters by market type: perp or spot.

Request Example

text
GET /api/v5/exchangeos/market/tickers?marketType=perp

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
lastPxStringLatest trade price.
lastSzStringLatest trade size.
askPxStringBest ask price.
askSzStringBest ask size.
bidPxStringBest bid price.
bidSzStringBest bid size.
open24hString24-hour opening price.
high24hString24-hour high price.
low24hString24-hour low price.
vol24hString24-hour base-token trading volume.
volCcy24hString24-hour quote-currency trading volume.
sodUtc0StringStart-of-day price at UTC+0.
sodUtc8StringStart-of-day price at UTC+8.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example: perp

vol24h is the base-token volume, and volCcy24h is the USDS trading volume.

json
{
  "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.

json
{
  "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:

text
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-book is appropriate only for independently querying the current order book.
  • WebSocket exchangeos-books should be used to build and continuously maintain a complete local order book.

Request Parameters

ParameterTypeRequiredDescription
assetIdStringYesInstrument ID.
depthStringNoNumber of order-book levels to return.

Request Example

text
GET /api/v5/exchangeos/market/order-book?assetId=0&depth=20

Response Fields

FieldTypeDescription
asksArrayAsk levels, sorted from low to high by price.
bidsArrayBid levels, sorted from high to low by price.
> 0StringPrice of the level.
> 1StringSize at the level. For perp, this is the base-token quantity rather than a contract count.
> 2StringNumber of orders at the level.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringYesInstrument ID.
barStringYesCandle interval.
beginStringNoStart of the query time range, as a Unix timestamp in milliseconds.
endStringNoEnd of the query time range, as a Unix timestamp in milliseconds.
limitStringNoNumber of candles to return.

Request Examples

text
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=100

Response Fields

Each item in data is a fixed-length string array with nine elements:

IndexTypeDescription
0StringCandle start time, as a Unix timestamp in milliseconds.
1StringOpening price.
2StringHighest price.
3StringLowest price.
4StringClosing price.
5StringTrading volume, in base-token units.
6StringTrading amount.
7StringTrading amount.
8StringCandle status.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringNoInstrument ID.

Request Example

text
GET /api/v5/exchangeos/market/mark-prices?assetId=0

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
markPxStringMark price.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringYesperp instrument ID.

Request Example

text
GET /api/v5/exchangeos/market/position-tiers?assetId=102

Calculation Formulas

text
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 / imrChangeRate
  • V is the position value in USD. When V exceeds maxPositionValue, rates continue to be calculated by the function without a cap; maxPositionValue only limits newly opened positions.
  • When opening or increasing a position, total position value must not exceed maxPositionAllowed for 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

FieldTypeDescription
assetIdStringInstrument ID.
positionTierIdStringPosition tier ID.
basePositionValue0StringReference position value of the margin-rate curve.
baseMMR0StringBase maintenance margin rate.
baseIMR0StringBase initial margin rate.
mmrChangeRateStringMaintenance margin rate change rate.
imrChangeRateStringInitial margin rate change rate.
maxPositionValueStringMaximum position value.
imrCurvePosValueGridStringPosition-value grid of the initial margin rate curve.
maxLeverageStringMaximum leverage.
tiersArrayMapping between leverage and maximum allowed position value.
> leverageStringLeverage value.
> maxPositionAllowedStringMaximum allowed position value at the leverage.

Response Example

The complete tiers list returns tiers 1 through 100. The following is an excerpt:

json
{
  "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].data and are returned in descending order by fundingTime.
  • 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].hasMore to determine whether to request another page. hasMore=false with nextCursor="" indicates the final page.
  • begin and end are time-window filters only; they are not pagination cursors. When passed with cursor, cursor determines the starting position.
  • Do not pass cursor on the first page.

Request Parameters

ParameterTypeRequiredDescription
assetIdStringYesperp instrument ID.
beginStringNoStart of the query time window, as a Unix timestamp in milliseconds.
endStringNoEnd of the query time window, as a Unix timestamp in milliseconds.
cursorStringNoPagination token returned by the previous page. Omit for the first page.
limitStringNoNumber of records to return.

Request Examples

text
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=100

Response Fields

FieldTypeDescription
nextCursorStringToken for retrieving the next page. Returns an empty string on the final page.
hasMoreBooleanWhether additional records are available.
dataArrayHistorical funding-rate records.
> assetIdStringInstrument ID.
> fundingRateStringFunding rate.
> fundingTimeStringFunding settlement time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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:

text
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

ParameterTypeRequiredDescription
assetIdStringNoperp instrument ID. Omit to query all supported instruments.

Request Example

text
GET /api/v5/exchangeos/market/funding-rate?assetId=0

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
fundingRateStringCurrent or predicted funding rate.
fundingTimeStringCurrent funding settlement time, as a Unix timestamp in milliseconds.
nextFundingTimeStringNext funding settlement time, as a Unix timestamp in milliseconds.
settlementIntervalStringSettlement interval.
minFundingRateStringMinimum funding rate.
maxFundingRateStringMaximum funding rate.
interestRateStringInterest rate.
impactBaseNotionalStringImpact base notional used to calculate the premium index.
damperValueStringFunding-rate dampener value.
multiplierFactorStringFunding-rate multiplier.
fundingSwitchBooleanFunding-rate switch status.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringNoperp instrument ID.

Request Example

text
GET /api/v5/exchangeos/market/open-interest?assetId=102

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
oiCcyStringTotal open interest in base-token units.
oiUsdStringTotal open interest in USD.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringYesInstrument ID.

Request Example

text
GET /api/v5/exchangeos/market/price-limit?assetId=102

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
buyLmtStringCurrent highest buy-price limit. Returns an empty string when no price band is available.
sellLmtStringCurrent lowest sell-price limit. Returns an empty string when no price band is available.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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

ParameterTypeRequiredDescription
assetIdStringNoperp instrument ID.

Request Example

text
GET /api/v5/exchangeos/market/index-tickers?assetId=102

Response Fields

FieldTypeDescription
assetIdStringInstrument ID.
ulyStringUnderlying index name.
idxPxStringLatest index price.
open24hString24-hour opening price.
high24hString24-hour high price.
low24hString24-hour low price.
sodUtc0StringStart-of-day price at UTC+0.
sodUtc8StringStart-of-day price at UTC+8.
tsStringData generation time, as a Unix timestamp in milliseconds.

Response Example

json
{
  "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

text
GET /api/v5/exchangeos/market/token-info

Response Fields

FieldTypeDescription
tokenIdStringToken ID.
tokenNameStringToken name.
pointFlagBooleanWhether the token is a points-market asset.
weiDecimalsStringToken precision in its smallest unit.

Response Example

json
{
  "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:

text
effectiveStartTime = max(reserveFundListingTime, currentContractLifecycleListingTime)
  • effectiveStartTime is calculated independently for each assetId. 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 >= effectiveStartTime are returned. At most one snapshot is returned per day, in reverse chronological order.
  • fundValue and block_timestamp are taken from the latest snapshot where cTime >= effectiveStartTime. If no eligible snapshot exists, both fields are empty strings and history is 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

text
GET /api/v5/exchangeos/market/security-fund

Request Examples

Query a Security Vault:

text
GET /api/v5/exchangeos/market/security-fund?fundType=securityVault

Query the Security Fund for a specified asset:

text
GET /api/v5/exchangeos/market/security-fund?fundType=securityFund&assetId=2

Query a Supplementary Fund:

text
GET /api/v5/exchangeos/market/security-fund?fundType=supplementaryFund

Request Parameters

ParameterTypeRequiredDescription
fundTypeStringYesFund type: securityVault, securityFund, or supplementaryFund.
assetIdStringConditionally requiredPublic perpetual-contract asset ID. Required when fundType=securityFund; omit for other fund types.

Response Parameters

ParameterTypeDescription
assetIdStringPublic perpetual-contract asset ID associated with the Security Fund. An empty string is returned when querying a Security Vault or Supplementary Fund.
fundTypeStringFund type: securityVault, securityFund, or supplementaryFund.
fundValueStringLatest value of the specified fund, in USD. An empty string is returned when the fund is not displayed or no data is available.
block_timestampStringSnapshot 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.
historyArrayDaily 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.
> cTimeStringHistorical snapshot creation time, as a Unix timestamp in milliseconds.
> balanceStringFund value at the historical snapshot time, in USD.

Response Example: Security Fund

json
{
  "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

json
{
  "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

json
{
  "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:

json
{
  "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"
            }
          ]
        }
      ]
    }
  ]
}