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#
https://web3.okx.com/api/v6/explorer/tsv/transaction-listRequest Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
| txHash | String | No | Exact transaction hash: 0x followed by 64 hexadecimal characters. Providing it removes the 30-day restriction |
| stockTokenAddress | String | No | Stock token contract address |
| stockSymbol | String | No | Exact stock token symbol |
| paymentSymbol | String | No | Payment asset symbol, for example USDG |
| paymentTokenAddress | String | No | Payment asset contract address |
| poolId | String | No | Uniswap V4 bytes32 PoolId; distinct from the PoolManager address |
| begin | String | No | Inclusive start of transaction confirmation time, as a 13-digit UTC Unix timestamp in milliseconds |
| end | String | No | Inclusive end of transaction confirmation time, as a 13-digit UTC Unix timestamp in milliseconds |
| limit | Integer | No | Page size; default 100, range 1–1000 |
| cursor | String | No | Non-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.
| Parameter | Type | Description |
|---|---|---|
| limit | String | Page size |
| cursor | String | Numeric-string offset for the next page; an empty string indicates no more records |
| transactionList | Array | Records on the current page |
| > txHash | String | On-chain transaction hash |
| > logIndex | String | On-chain log index within the transaction, represented as a string |
| > stockSymbol | String | Stock token symbol |
| > stockTokenAddress | String | Stock token contract address |
| > paymentTokenAddress | String | Payment asset contract address |
| > paymentSymbol | String | Payment asset symbol |
| > price | String | USD execution price per share |
| > amount | String | Executed share quantity, in shares |
| > multiper | String | Multiplier defined by the stock token contract; the field spelling is intentional |
| > transactionTime | String | AMM Pool transaction confirmation time, as a UTC Unix timestamp in milliseconds |
| > side | String | Trade direction: buy or sell |
| > poolId | String | bytes32 PoolId |
| > hook | String | Hook contract address |
| > feePercent | String | Pool fee; an empty string "" when a dynamic pool has no configured fee |
| > poolManager | String | PoolManager 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#
| Scenario | HTTP status | Business code | Action |
|---|---|---|---|
| Rate limit exceeded | 429 | 50011 | Requests too frequent; reduce the request rate and retry when quota recovers |
| Invalid parameter | 400 | 50036 | Correct the parameters and retry |
| Rate-limit service unavailable | 503 | 50001 | Retry 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#
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.
{
"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"
}
]
}
]
}
