Skip to Content
APITransactions and TransfersGet Internal Transaction List

Get Internal Transaction List

1. Overview & Typical Use

Queries smart contract internal transaction records by address / contract / block and other criteria, with pagination support.

  • Typical use: tracing contract internal call chains, viewing internal TRX transfers, monitoring contract-to-contract interactions.
  • When not to use: to query regular transactions, use “Get Transaction List”; to query token transfers, use the corresponding transfer list endpoint.

2. Endpoint & Authentication

GET /api/internal-transaction

For Base URL and authentication, see Common Network & Authentication.

3. Request

ParameterTypeRequiredDefaultDescription
startintegerNo0Start index (offset); start + limit ≤ 10000, excess is silently handled
limitintegerNo10Page size, maximum 50 (excess is silently truncated)
addressstringNo—Specify address; at least one of address, block, contract is required
contractstringNo—Filter by contract address
blockintegerNo—Filter by block number
start_timestampintegerNo—Start time, ms timestamp
end_timestampintegerNo—End time, ms timestamp
confirmstringNo—Confirmation status: 0 confirmed / 1 unconfirmed / empty for all
noteTypestringNo—Filter by call type (e.g. call, create)
retstringNoallFilter by result status (e.g. SUCCESS, REVERT)
tokensstringNo—Filter by token ID; multiple IDs separated by commas

4. Response

Top-level

FieldTypeRequiredDescriptionUnit/Precision
totalintegerRequiredTotal number of matched records—
rangeTotalintegerRequiredTotal within the filter range—
dataarrayRequiredInternal transaction record array, see below—
contractMapobjectOptionalAddress → whether it is a contract mapping—
contractInfoobjectOptionalContract address → label information mapping (value schema below)—
normalAddressInfoobjectOptionalNon-contract address → risk information mapping; each address value observed to contain only risk (boolean), no other sub-fields—

data[] element

FieldTypeRequiredDescriptionUnit/Precision
hashstringRequiredExternal transaction hash that triggered this internal transaction—
internal_hashstringRequiredInternal transaction hash—
blockintegerRequiredBlock height—
timestampintegerRequiredBlock timems timestamp
fromstringRequiredSender address—
tostringRequiredRecipient address—
call_valueintegerRequiredCall valuesun
token_idstringRequiredToken ID (_ represents TRX)—
notestringRequiredCall type (e.g. call, create)—
confirmedbooleanRequiredWhether confirmed—
rejectedbooleanRequiredWhether rejected—
resultstringRequiredExecution result—
revertbooleanRequiredWhether reverted—
token_listobjectRequiredToken info; sub-fields see the token_list object table below—
valueInfoListarrayRequiredTransfer value info list; element schema see the valueInfoList[] element table below—
toAddressTagstringOptionalRecipient address tag (only present when recipient has a tag)—
fromAddressTagstringOptionalSender address tag (only present when sender has a tag)—
voteToAddressarrayRequiredVote target address list (empty array for non-vote types)—
voteCountintegerRequiredVote count (0 for non-vote types)—
voteDetailarrayRequiredVote detail (empty array for non-vote types)—

token_list object

FieldTypeRequiredDescriptionUnit/Precision
token_idstringRequiredToken ID (_ represents TRX)—
call_valueintegerRequiredCall value; sun for TRX, raw token precision for non-TRX assets (convert via tokenInfo.tokenDecimal)—
tokenInfoobjectRequiredToken metadata (9 common fields; schema shared with valueInfoList[].tokenInfo below)—

valueInfoList[] element

FieldTypeRequiredDescriptionUnit/Precision
callValueintegerRequiredCall value; sun for TRX, raw token precision for non-TRX assets (convert via tokenInfo.tokenDecimal)—
tokenInfoobjectRequiredToken metadata (value schema below)—

contractInfo[<addr>] object schema (8 fields):

FieldTypeRequiredDescription
tag1stringRequiredPrimary label (project name / contract name / exchange name)
tag1UrlstringRequiredURL of the primary label (may be an empty string)
namestringRequiredFormal contract / project name
isTokenbooleanRequiredWhether it is a token contract (true / false)
vipbooleanRequiredWhether it is a VIP entity (true / false)
riskboolean | stringRequiredRisk label; most endpoints return boolean, some return a string risk type (blacklist / fraud, etc.)
publicTagDescstringRequiredPublic label description; empty string for most accounts
publicTagstringOptionalPublic label (e.g. "USDT Token" / "Binance"); returned only for well-known entities or certain endpoints

token_list.tokenInfo / valueInfoList[].tokenInfo object schema (9 common fields):

FieldTypeRequiredDescriptionUnit/Precision
tokenIdstringRequiredToken contract address (Base58); TRX placeholder is _—
tokenAbbrstringRequiredToken abbreviation (e.g. USDT / TRX)—
tokenNamestringRequiredToken name—
tokenDecimalintegerRequiredDecimal precision (required to convert the amount field)—
tokenCanShowintegerRequiredWhether displayable (1 yes / 0 no)—
tokenTypestringRequiredToken type (trc10 / trc20 / trc721 / trc1155)—
tokenLogostringRequiredToken logo URL—
tokenLevelstringRequiredToken level: 0 (UNKNOWN), 1 (NEUTRAL), 2 (OK), 3 (SUSPICIOUS), 4 (UNSAFE)—
vipbooleanRequiredWhether it is a VIP token—

5. Errors

For HTTP status codes, see Common Errors. Key points for this endpoint:

  • A filter condition must be specified: at least one of address, block, or contract must be provided.
  • Parameter violations do not produce errors: limit > 50, start + limit > 10000, etc. are silently truncated/capped and return 200.
  • Empty result is not an error: returns 200 + data: [] when no records match, which is a normal response.
Last updated on: