openapi: 3.1.0 info: title: Mirror Node REST accounts transactions API version: 0.156.0 license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html description: 'The REST API offers the ability to query transactions and entity information from a mirror node. Base url: [/api/v1](/api/v1) OpenAPI Spec: [/api/v1/docs/openapi.yml](/api/v1/docs/openapi.yml)' contact: name: Mirror Node Team email: mirrornode@hedera.com url: https://github.com/hiero-ledger/hiero-mirror-node servers: - description: The current REST API server url: '' - description: The production REST API servers url: '{scheme}://{network}.mirrornode.hedera.com' variables: scheme: default: https description: The URI scheme enum: - http - https network: default: testnet description: The Hedera network in use enum: - mainnet-public - mainnet - previewnet - testnet tags: - name: transactions description: The transaction object represents the transactions processed on the Hedera network. externalDocs: url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#transactions paths: /api/v1/transactions: get: summary: List transactions description: Lists transactions on the network. This includes successful and unsuccessful transactions. operationId: getTransactions parameters: - $ref: '#/components/parameters/accountIdQueryParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' - $ref: '#/components/parameters/timestampQueryParam' - $ref: '#/components/parameters/transactionTypeQueryParam' - name: result in: query description: The transaction success type. schema: enum: - success - fail - name: type in: query description: The transaction account balance modification type. schema: enum: - credit - debit responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransactionsResponse' '400': $ref: '#/components/responses/InvalidParameterError' tags: - transactions /api/v1/transactions/{transactionId}: get: summary: Get transaction by id description: Returns transaction information based on the given transaction id operationId: getTransaction parameters: - $ref: '#/components/parameters/transactionIdPathParam' - $ref: '#/components/parameters/nonceQueryParam' - $ref: '#/components/parameters/scheduledQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransactionByIdResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - transactions components: responses: InvalidParameterError: description: Invalid parameter content: application/json: schema: $ref: '#/components/schemas/Error' example: _status: messages: - message: 'Invalid parameter: account.id' - message: Invalid Transaction id. Please use \shard.realm.num-sss-nnn\ format where sss are seconds and nnn are nanoseconds NotFoundError: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' example: _status: messages: - message: Not found schemas: TransactionByIdResponse: type: object properties: transactions: $ref: '#/components/schemas/TransactionDetails' EntityIdQuery: type: string pattern: ^((gte?|lte?|eq|ne)\:)?(\d{1,10}\.\d{1,10}\.)?\d{1,10}$ Key: description: The public key which controls access to various network entities. type: - object - 'null' properties: _type: type: string enum: - ECDSA_SECP256K1 - ED25519 - ProtobufEncoded example: ProtobufEncoded key: type: string example: 15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743 TransactionsResponse: type: object properties: transactions: $ref: '#/components/schemas/Transactions' links: $ref: '#/components/schemas/Links' AssessedCustomFee: type: object properties: amount: format: int64 type: integer collector_account_id: $ref: '#/components/schemas/EntityId' effective_payer_account_ids: type: array items: $ref: '#/components/schemas/EntityId' token_id: $ref: '#/components/schemas/EntityId' TransactionDetails: type: array items: $ref: '#/components/schemas/TransactionDetail' TimestampNullable: description: A Unix timestamp in seconds.nanoseconds format type: - string - 'null' example: '1586567700.453054000' pattern: ^\d{1,10}(\.\d{1,9})?$ TransactionTypes: type: string enum: - ATOMICBATCH - CONSENSUSCREATETOPIC - CONSENSUSDELETETOPIC - CONSENSUSSUBMITMESSAGE - CONSENSUSUPDATETOPIC - CONTRACTCALL - CONTRACTCREATEINSTANCE - CONTRACTDELETEINSTANCE - CONTRACTUPDATEINSTANCE - CRSPUBLICATION - CRYPTOADDLIVEHASH - CRYPTOAPPROVEALLOWANCE - CRYPTOCREATEACCOUNT - CRYPTODELETE - CRYPTODELETEALLOWANCE - CRYPTODELETELIVEHASH - CRYPTOTRANSFER - CRYPTOUPDATEACCOUNT - ETHEREUMTRANSACTION - FILEAPPEND - FILECREATE - FILEDELETE - FILEUPDATE - FREEZE - HINTSKEYPUBLICATION - HINTSPARTIALSIGNATURE - HINTSPREPROCESSINGVOTE - HISTORYPROOFKEYPUBLICATION - HISTORYPROOFSIGNATURE - HISTORYPROOFVOTE - HOOKSTORE - LEDGERIDPUBLICATION - MIGRATIONROOTHASHVOTE - NODECREATE - NODEDELETE - NODESTAKEUPDATE - NODEUPDATE - REGISTEREDNODECREATE - REGISTEREDNODEDELETE - REGISTEREDNODEUPDATE - SCHEDULECREATE - SCHEDULEDELETE - SCHEDULESIGN - STATESIGNATURETRANSACTION - SYSTEMDELETE - SYSTEMUNDELETE - TOKENAIRDROP - TOKENASSOCIATE - TOKENBURN - TOKENCANCELAIRDROP - TOKENCLAIMAIRDROP - TOKENCREATION - TOKENDELETION - TOKENDISSOCIATE - TOKENFEESCHEDULEUPDATE - TOKENFREEZE - TOKENGRANTKYC - TOKENMINT - TOKENPAUSE - TOKENREJECT - TOKENREVOKEKYC - TOKENUNFREEZE - TOKENUNPAUSE - TOKENUPDATE - TOKENUPDATENFTS - TOKENWIPE - UNCHECKEDSUBMIT - UTILPRNG Links: type: object properties: next: example: null type: - string - 'null' Transactions: type: array items: $ref: '#/components/schemas/Transaction' StakingRewardTransfer: type: object description: A staking reward transfer required: - account - amount properties: account: $ref: '#/components/schemas/EntityId' amount: description: The number of tinybars awarded example: 10 format: int64 type: integer example: account_id: 0.0.1000 amount: 10 EntityId: type: - string - 'null' description: Network entity ID in the format of `shard.realm.num` pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$ example: 0.0.2 CustomFeeLimit: type: object properties: account_id: $ref: '#/components/schemas/EntityId' amount: example: 100 format: int64 type: integer denominating_token_id: $ref: '#/components/schemas/EntityId' TransactionDetail: allOf: - $ref: '#/components/schemas/Transaction' - type: object properties: assessed_custom_fees: type: array items: $ref: '#/components/schemas/AssessedCustomFee' example: assessed_custom_fees: - amount: 100 collector_account_id: 0.0.10 effective_payer_account_ids: - 0.0.8 - 0.0.72 token_id: 0.0.90001 bytes: null charged_tx_fee: 7 consensus_timestamp: '1234567890.000000007' entity_id: 0.0.2281979 high_volume: false high_volume_pricing_multiplier: 1 max_fee: 33 memo_base64: null name: CRYPTOTRANSFER nft_transfers: - is_approval: true receiver_account_id: 0.0.121 sender_account_id: 0.0.122 serial_number: 1 token_id: 0.0.123 - is_approval: true receiver_account_id: 0.0.321 sender_account_id: 0.0.422 serial_number: 2 token_id: 0.0.123 node: 0.0.3 nonce: 0 parent_consensus_timestamp: '1234567890.000000007' result: SUCCESS scheduled: false staking_reward_transfers: - account: 3 amount: 200 - account: 9 amount: 300 transaction_hash: vigzKe2J7fv4ktHBbNTSzQmKq7Lzdq1/lJMmHT+a2KgvdhAuadlvS4eKeqKjIRmW transaction_id: 0.0.8-1234567890-000000006 token_transfers: - token_id: 0.0.90000 account: 0.0.9 amount: 1200 is_approval: true - token_id: 0.0.90000 account: 0.0.8 amount: -1200 is_approval: true transfers: - account: 0.0.3 amount: 2 is_approval: true - account: 0.0.8 amount: -3 is_approval: true - account: 0.0.98 amount: 1 is_approval: true - account: 0.0.800 amount: 200 is_approval: false - account: 0.0.800 amount: 300 is_approval: false valid_duration_seconds: 11 valid_start_timestamp: '1234567890.000000006' Timestamp: description: A Unix timestamp in seconds.nanoseconds format type: string example: '1586567700.453054000' pattern: ^\d{1,10}(\.\d{1,9})?$ StakingRewardTransfers: type: array items: $ref: '#/components/schemas/StakingRewardTransfer' Transaction: type: object properties: batch_key: $ref: '#/components/schemas/Key' bytes: type: - string - 'null' format: byte charged_tx_fee: format: int64 type: integer consensus_timestamp: $ref: '#/components/schemas/Timestamp' entity_id: $ref: '#/components/schemas/EntityId' high_volume: description: Whether the transaction used high-volume entity creation throttles and pricing per HIP-1313 type: boolean high_volume_pricing_multiplier: description: The multiplier applied to the transaction fee when high-volume pricing was in effect per HIP-1313, scaled by 1000 (e.g. 1000 = 1x, 4000 = 4x). A value of 0 means high-volume pricing was not applied. Null for pre-HIP-1313 transactions. format: int64 minimum: 0 type: - integer - 'null' max_custom_fees: type: array items: $ref: '#/components/schemas/CustomFeeLimit' max_fee: type: string memo_base64: format: byte type: - string - 'null' name: $ref: '#/components/schemas/TransactionTypes' nft_transfers: type: array items: type: object properties: is_approval: type: boolean receiver_account_id: $ref: '#/components/schemas/EntityId' sender_account_id: $ref: '#/components/schemas/EntityId' serial_number: example: 1 format: int64 type: integer token_id: $ref: '#/components/schemas/EntityId' required: - is_approval - receiver_account_id - sender_account_id - token_id - serial_number node: $ref: '#/components/schemas/EntityId' nonce: type: integer minimum: 0 parent_consensus_timestamp: $ref: '#/components/schemas/TimestampNullable' result: type: string scheduled: type: boolean staking_reward_transfers: $ref: '#/components/schemas/StakingRewardTransfers' token_transfers: type: array items: type: object properties: token_id: $ref: '#/components/schemas/EntityId' account: $ref: '#/components/schemas/EntityId' amount: format: int64 type: integer is_approval: type: boolean required: - token_id - account - amount transaction_hash: type: string format: byte transaction_id: type: string transfers: type: array items: type: object properties: account: $ref: '#/components/schemas/EntityId' amount: format: int64 type: integer is_approval: type: boolean required: - account - amount valid_duration_seconds: type: string valid_start_timestamp: $ref: '#/components/schemas/Timestamp' example: batch_key: _type: ED25519 key: 7934a257a6144fabc8fbdeeaa5810662adb89e7b6978ace46a74fdb2d12bd4b2 bytes: null charged_tx_fee: 7 consensus_timestamp: '1234567890.000000007' entity_id: 0.0.2281979 high_volume: false high_volume_pricing_multiplier: 1 max_custom_fees: - account_id: 0.0.8 amount: 1000 denominating_token_id: 0.0.2000 - account_id: 0.0.8 amount: 1500 denominating_token_id: null max_fee: 33 memo_base64: null name: CRYPTOTRANSFER nft_transfers: - is_approval: true receiver_account_id: 0.0.121 sender_account_id: 0.0.122 serial_number: 1 token_id: 0.0.123 - is_approval: true receiver_account_id: 0.0.321 sender_account_id: 0.0.422 serial_number: 2 token_id: 0.0.123 node: 0.0.3 nonce: 0 parent_consensus_timestamp: '1234567890.000000007' result: SUCCESS scheduled: false staking_reward_transfers: - account: 3 amount: 150 - account: 9 amount: 200 transaction_hash: vigzKe2J7fv4ktHBbNTSzQmKq7Lzdq1/lJMmHT+a2KgvdhAuadlvS4eKeqKjIRmW transaction_id: 0.0.8-1234567890-000000006 token_transfers: - token_id: 0.0.90000 account: 0.0.9 amount: 1200 is_approval: false - token_id: 0.0.90000 account: 0.0.8 amount: -1200 is_approval: false transfers: - account: 0.0.3 amount: 2 is_approval: false - account: 0.0.8 amount: -3 is_approval: false - account: 0.0.98 amount: 1 is_approval: false - account: 0.0.800 amount: 150 is_approval: false - account: 0.0.800 amount: 200 is_approval: false valid_duration_seconds: 11 valid_start_timestamp: '1234567890.000000006' Error: type: object properties: _status: type: object properties: messages: type: array items: type: object properties: data: description: Error message in hexadecimal example: '0x3000' format: binary pattern: ^0x[0-9a-fA-F]+$ type: - string - 'null' detail: description: Detailed error message example: Generic detailed error message type: - string - 'null' message: description: Error message example: Generic error message type: string parameters: transactionIdPathParam: name: transactionId in: path required: true description: Transaction id example: 0.0.10-1234567890-000000000 schema: type: string orderQueryParamDesc: name: order in: query description: The order in which items are listed example: asc schema: enum: - asc - desc default: desc transactionTypeQueryParam: name: transactiontype in: query example: null schema: $ref: '#/components/schemas/TransactionTypes' accountIdQueryParam: name: account.id in: query description: The ID of the account to return information for explode: true examples: noValue: summary: -- value: '' entityNumNoOperator: summary: Example of entityNum equals with no operator value: 100 idNoOperator: summary: Example of id equals with no operator value: 0.0.100 entityNumEqOperator: summary: Example of entityNum equals operator value: eq:200 idEqOperator: summary: Example of id equals operator value: eq:0.0.200 entityNumNeOperator: summary: Example of entityNum not equals operator value: ne:300 idNeOperator: summary: Example of id not equals operator value: ne:0.0.300 entityNumGtOperator: summary: Example of entityNum greater than operator value: gt:400 idGtOperator: summary: Example of id greater than operator value: gt:0.0.400 entityNumGteOperator: summary: Example of entityNum greater than or equals operator value: gte:500 idGteOperator: summary: Example of id greater than or equals operator value: gte:0.0.500 entityNumLtOperator: summary: Example of entityNum less than operator value: lt:600 idLtOperator: summary: Example of id less than operator value: lt:0.0.600 entityNumLteOperator: summary: Example of entityNum less than or equals operator value: lte:700 idLteOperator: summary: Example of id less than or equals operator value: lte:0.0.700 schema: $ref: '#/components/schemas/EntityIdQuery' nonceQueryParam: name: nonce in: query description: Filter the query result by the nonce of the transaction. A zero nonce represents user submitted transactions while a non-zero nonce is generated by main nodes. The filter honors the last value. If not specified, all transactions with specified payer account ID and valid start timestamp match. If multiple values are provided the last value will be the only value used. example: 0 schema: format: int32 type: integer minimum: 0 limitQueryParam: name: limit in: query description: The maximum number of items to return example: 2 schema: format: int32 type: integer default: 25 minimum: 1 maximum: 100 timestampQueryParam: description: The consensus timestamp as a Unix timestamp in seconds.nanoseconds format with an optional comparison operator. See [unixtimestamp.com](https://www.unixtimestamp.com/) for a simple way to convert a date to the 'seconds' part of the Unix time. name: timestamp in: query explode: true examples: noValue: summary: -- value: '' secondsNoOperator: summary: Example of seconds equals with no operator value: 1234567890 timestampNoOperator: summary: Example of timestamp equals with no operator value: 1234567890 secondsEqOperator: summary: Example of seconds equals with operator value: eq:1234567890 timestampEqOperator: summary: Example of timestamp equals with operator value: eq:1234567890.000000200 secondsNeOperator: summary: Example of seconds not equals operator value: ne:1234567890 timestampNeOperator: summary: Example of timestamp not equals operator value: ne:1234567890.000000300 secondsGtOperator: summary: Example of seconds greater than operator value: gt:1234567890 timestampGtOperator: summary: Example of timestamp greater than operator value: gt:1234567890.000000400 secondsGteOperator: summary: Example of seconds greater than or equals operator value: gte:1234567890 timestampGteOperator: summary: Example of timestamp greater than or equals operator value: gte:1234567890.000000500 secondsLtOperator: summary: Example of seconds less than operator value: lt:1234567890 timestampLtOperator: summary: Example of timestamp less than operator value: lt:1234567890.000000600 secondsLteOperator: summary: Example of seconds less than or equals operator value: lte:1234567890 timestampLteOperator: summary: Example of timestamp less than or equals operator value: lte:1234567890.000000700 schema: type: array items: type: string pattern: ^((eq|gt|gte|lt|lte|ne):)?\d{1,10}(\.\d{1,9})?$ scheduledQueryParam: name: scheduled in: query description: Filter transactions by the scheduled flag. If true, return information for the scheduled transaction. If false, return information for the non-scheduled transaction. If not present, return information for all transactions matching transactionId. If multiple values are provided the last value will be the only value used. schema: type: boolean externalDocs: description: REST API Docs url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api