Utvecklingsportal

Get TSV Transaction List#

Query OKXICE TSV trades with multiple optional filters combined, sorted by transaction time in descending order. Without txHash, queries are limited to the last 30 days; omitting the time range uses that window, and both begin and end must fall within it. Providing txHash queries all historical records for that exact transaction without the 30-day restriction; only explicitly supplied optional begin / end bounds apply. If both bounds are supplied, begin must not be later than end.

This endpoint is free and requires no login, API key, signature, or payment. The service implements a 2 RPS limit per IP for each endpoint, effective when the corresponding version is deployed. The aggregate 200 RPS limit per endpoint requires an external platform rule and applies when that rule is configured and active. Changing query parameters, cursors, or client keys does not reset the quota. Clients sharing an outbound IP share its quota. Reduce the request rate after a rate-limit failure and retry when quota recovers.

Request URL#

GET
https://web3.okx.com/api/v6/explorer/tsv/transaction-list

Request Parameters#

ParameterTypeRequiredDescription
txHashStringNoExact transaction hash: 0x followed by 64 hexadecimal characters. Providing it removes the 30-day restriction
stockTokenAddressStringNoStock token contract address
stockSymbolStringNoExact stock token symbol
paymentSymbolStringNoPayment asset symbol, for example USDG
paymentTokenAddressStringNoPayment asset contract address
poolIdStringNoUniswap V4 bytes32 PoolId; distinct from the PoolManager address
beginStringNoInclusive start of transaction confirmation time, as a 13-digit UTC Unix timestamp in milliseconds
endStringNoInclusive end of transaction confirmation time, as a 13-digit UTC Unix timestamp in milliseconds
limitIntegerNoPage size; default 100, range 1–1000
cursorStringNoNon-negative integer offset represented as a numeric string. Omit it or send "0" on the first request; use the returned non-empty value unchanged for the next page

cursor is a numeric-string offset and does not retain query conditions. Repeat the same filters, time parameters, and limit on subsequent requests, passing the returned non-empty cursor unchanged. An empty response cursor indicates no more records. To keep the time range consistent, explicitly set time bounds on the first request and preserve them on subsequent requests.

Response Parameters#

Successful responses use a code, msg, and data envelope. data is an array containing a paginated result object. All numeric response fields are represented as strings.

ParameterTypeDescription
limitStringPage size
cursorStringNumeric-string offset for the next page; an empty string indicates no more records
transactionListArrayRecords on the current page
> txHashStringOn-chain transaction hash
> logIndexStringOn-chain log index within the transaction, represented as a string
> stockSymbolStringStock token symbol
> stockTokenAddressStringStock token contract address
> paymentTokenAddressStringPayment asset contract address
> paymentSymbolStringPayment asset symbol
> priceStringUSD execution price per share
> amountStringExecuted share quantity, in shares
> multiperStringMultiplier defined by the stock token contract; the field spelling is intentional
> transactionTimeStringAMM Pool transaction confirmation time, as a UTC Unix timestamp in milliseconds
> sideStringTrade direction: buy or sell
> poolIdStringbytes32 PoolId
> hookStringHook contract address
> feePercentStringPool fee; an empty string "" when a dynamic pool has no configured fee
> poolManagerStringPoolManager contract address

No matching records produces an empty list and an empty cursor. Upstream failures or unavailable data must be treated as errors, not as empty results or zero trading activity.

Error Handling#

ScenarioHTTP statusBusiness codeAction
Rate limit exceeded42950011Requests too frequent; reduce the request rate and retry when quota recovers
Invalid parameter40050036Correct the parameters and retry
Rate-limit service unavailable50350001Retry later

Each IP is counted independently for each endpoint in a fixed 1000 ms window starting with the first request.

Upstream query failures return errors, not successful empty lists.

Request Example#

shell
curl --location --request GET 'https://web3.okx.com/api/v6/explorer/tsv/transaction-list?txHash=0x0000000000000000000000000000000000000000000000000000000000000002&limit=100'

Response Example#

This is a structural example. Addresses, trades, and values are illustrative and do not represent actual asset configurations or query results.

json
{
  "code": "0",
  "msg": "",
  "data": [
    {
      "limit": "100",
      "cursor": "",
      "transactionList": [
        {
          "txHash": "0x0000000000000000000000000000000000000000000000000000000000000002",
          "logIndex": "12",
          "stockSymbol": "AAPLx",
          "stockTokenAddress": "0x9d275685dc284c8eb1c79f6aba7a63dc75ec890a",
          "paymentTokenAddress": "0x0000000000000000000000000000000000000003",
          "paymentSymbol": "USDG",
          "price": "250.50",
          "amount": "10.5",
          "multiper": "1",
          "transactionTime": "1793595600000",
          "side": "buy",
          "poolId": "0x0000000000000000000000000000000000000000000000000000000000000001",
          "hook": "0x1234567890123456789012345678901234567890",
          "feePercent": "0.3",
          "poolManager": "0x360e68faccca8ca495c1b759fd9eee466db9fb32"
        }
      ]
    }
  ]
}