Hedera transactions API

The transaction object represents the transactions processed on the Hedera network.

Operations 2

GET /api/v1/transactions List transactions #
GET /api/v1/transactions/{transactionId} Get transaction by id #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hedera-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hedera-transactions-api-openapi.yml Raw ↑
openapi: 3.2.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:
  schemas:
    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'
    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
    CustomFeeLimit:
      type: object
      properties:
        account_id:
          $ref: '#/components/schemas/EntityId'
        amount:
          example: 100
          format: int64
          type: integer
        denominating_token_id:
          $ref: '#/components/schemas/EntityId'
    TransactionByIdResponse:
      type: object
      properties:
        transactions:
          $ref: '#/components/schemas/TransactionDetails'
    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
    Links:
      type: object
      properties:
        next:
          example: null
          type:
          - string
          - 'null'
    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'
    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'
    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
    EntityIdQuery:
      type: string
      pattern: ^((gte?|lte?|eq|ne)\:)?(\d{1,10}\.\d{1,10}\.)?\d{1,10}$
    Transactions:
      type: array
      items:
        $ref: '#/components/schemas/Transaction'
    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'
    TimestampNullable:
      description: A Unix timestamp in seconds.nanoseconds format
      type:
      - string
      - 'null'
      example: '1586567700.453054000'
      pattern: ^\d{1,10}(\.\d{1,9})?$
    TransactionsResponse:
      type: object
      properties:
        transactions:
          $ref: '#/components/schemas/Transactions'
        links:
          $ref: '#/components/schemas/Links'
    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
    TransactionDetails:
      type: array
      items:
        $ref: '#/components/schemas/TransactionDetail'
    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
  parameters:
    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'
    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
    transactionTypeQueryParam:
      name: transactiontype
      in: query
      example: null
      schema:
        $ref: '#/components/schemas/TransactionTypes'
    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
    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})?$
    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
    orderQueryParamDesc:
      name: order
      in: query
      description: The order in which items are listed
      example: asc
      schema:
        enum:
        - asc
        - desc
        default: desc
    transactionIdPathParam:
      name: transactionId
      in: path
      required: true
      description: Transaction id
      example: 0.0.10-1234567890-000000000
      schema:
        type: string
  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
externalDocs:
  description: REST API Docs
  url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api