Routescan (Snowtrace) Accounts API

Address balance and transaction history endpoints.

Specifications

OpenAPI Specification

snowtrace-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Routescan (Snowtrace) Etherscan-Compatible Accounts API
  description: 'Routescan is the first multichain ecosystem explorer, search, API, and analytics platform for all major EVM chains. Operating as Snowtrace for Avalanche C-Chain, Routescan provides high-speed REST APIs compatible with the Etherscan API format, delivering near real-time access to transactions, token transfers, smart contract data, and event logs across Avalanche C-Chain, Arbitrum, Optimism, Base, and 40+ other EVM networks. A single API key grants multichain access across all indexed chains.

    '
  version: '2.0'
  contact:
    name: Routescan Support
    url: https://snowtrace.io/contactus
  termsOfService: https://snowtrace.io/
servers:
- url: https://api.routescan.io/v2/network/mainnet/evm/{chainId}/etherscan/api
  description: Routescan Multichain API (mainnet)
  variables:
    chainId:
      default: '43114'
      description: 'EVM chain ID. Use 43114 for Avalanche C-Chain mainnet, 43113 for Avalanche Fuji testnet.

        '
- url: https://api.routescan.io/v2/network/testnet/evm/{chainId}/etherscan/api
  description: Routescan Multichain API (testnet)
  variables:
    chainId:
      default: '43113'
      description: EVM chain ID for testnet networks.
security:
- apiKey: []
- {}
tags:
- name: Accounts
  description: Address balance and transaction history endpoints.
paths:
  /account/balance:
    get:
      operationId: getBalance
      summary: Get native balance for a single address
      description: 'Returns the native token (AVAX, ETH, etc.) balance of a given address at the latest block.

        '
      tags:
      - Accounts
      parameters:
      - $ref: '#/components/parameters/moduleParam'
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - $ref: '#/components/parameters/actionParam'
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - balance
      - $ref: '#/components/parameters/addressParam'
      - $ref: '#/components/parameters/tagParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: Address balance in Wei
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: string
                      example: '1234567890000000000'
              example:
                status: '1'
                message: OK
                result: '1234567890000000000'
  /account/balancemulti:
    get:
      operationId: getBalanceMulti
      summary: Get native balance for multiple addresses
      description: 'Returns the native token balance for up to 20 addresses in a single call. Pass addresses as a comma-separated list.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - balancemulti
      - name: address
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of up to 20 addresses.
      - $ref: '#/components/parameters/tagParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: Array of address/balance pairs
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        type: object
                        properties:
                          account:
                            type: string
                          balance:
                            type: string
  /account/txlist:
    get:
      operationId: getNormalTransactions
      summary: Get normal transactions by address
      description: 'Returns a list of normal (external) transactions performed by an address. Supports block range filtering and pagination.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - txlist
      - $ref: '#/components/parameters/addressParam'
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of normal transactions
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/TransactionItem'
  /account/txlistinternal:
    get:
      operationId: getInternalTransactions
      summary: Get internal transactions by address or transaction hash
      description: 'Returns internal (EVM-level) transactions for a given address or a specific transaction hash. Optionally filter by block range.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - txlistinternal
      - name: address
        in: query
        required: false
        schema:
          type: string
        description: Wallet or contract address (use with startblock/endblock).
      - name: txhash
        in: query
        required: false
        schema:
          type: string
        description: Transaction hash to retrieve internal txns for.
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of internal transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
  /account/tokentx:
    get:
      operationId: getERC20Transfers
      summary: Get ERC-20 token transfer events by address
      description: 'Returns a list of ERC-20 token transfer events for a given address. Optionally filter by token contract address and block range.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - tokentx
      - $ref: '#/components/parameters/addressParam'
      - name: contractaddress
        in: query
        required: false
        schema:
          type: string
        description: ERC-20 contract address to filter transfers.
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of ERC-20 token transfers
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/TokenTransferItem'
  /account/tokennfttx:
    get:
      operationId: getERC721Transfers
      summary: Get ERC-721 NFT transfer events by address
      description: 'Returns a list of ERC-721 (NFT) token transfer events for a given address. Optionally filter by NFT contract address and block range.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - tokennfttx
      - $ref: '#/components/parameters/addressParam'
      - name: contractaddress
        in: query
        required: false
        schema:
          type: string
        description: ERC-721 contract address to filter transfers.
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of ERC-721 NFT transfers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
  /account/token1155tx:
    get:
      operationId: getERC1155Transfers
      summary: Get ERC-1155 token transfer events by address
      description: 'Returns a list of ERC-1155 multi-token transfer events for a given address. Optionally filter by token contract address and block range.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - token1155tx
      - $ref: '#/components/parameters/addressParam'
      - name: contractaddress
        in: query
        required: false
        schema:
          type: string
        description: ERC-1155 contract address to filter transfers.
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of ERC-1155 token transfers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
  /account/balancehistory:
    get:
      operationId: getHistoricalBalance
      summary: Get historical balance at a specific block
      description: 'Returns the native token balance of an address at a specific block number.

        '
      tags:
      - Accounts
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - account
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - balancehistory
      - $ref: '#/components/parameters/addressParam'
      - name: blockno
        in: query
        required: true
        schema:
          type: integer
        description: Block number at which to retrieve the balance.
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: Historical balance in Wei
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: string
components:
  parameters:
    actionParam:
      name: action
      in: query
      required: true
      schema:
        type: string
      description: API action within the module.
    tagParam:
      name: tag
      in: query
      required: false
      schema:
        type: string
        enum:
        - earliest
        - pending
        - latest
        default: latest
      description: Pre-defined block parameter for balance queries.
    endblockParam:
      name: endblock
      in: query
      required: false
      schema:
        type: integer
        default: 99999999
      description: Ending block number for block-range queries.
    pageParam:
      name: page
      in: query
      required: false
      schema:
        type: integer
        default: 1
      description: Page number for paginated results.
    apikeyParam:
      name: apikey
      in: query
      required: false
      schema:
        type: string
      description: API key for authenticated access. Use "placeholder" for free tier.
    moduleParam:
      name: module
      in: query
      required: true
      schema:
        type: string
      description: API module name (account, block, contract, logs, token, stats, transaction, proxy).
    sortParam:
      name: sort
      in: query
      required: false
      schema:
        type: string
        enum:
        - asc
        - desc
        default: asc
      description: Sort order for results (ascending or descending).
    offsetParam:
      name: offset
      in: query
      required: false
      schema:
        type: integer
        default: 10
      description: Number of results per page (max 10000).
    addressParam:
      name: address
      in: query
      required: true
      schema:
        type: string
      description: Ethereum-compatible wallet or contract address (0x-prefixed, 42 chars).
    startblockParam:
      name: startblock
      in: query
      required: false
      schema:
        type: integer
        default: 0
      description: Starting block number for block-range queries.
  schemas:
    ApiResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - '0'
          - '1'
          description: 1 for success, 0 for error.
        message:
          type: string
          description: Human-readable status message (OK or NOTOK).
        result:
          description: The response payload (varies by endpoint).
      required:
      - status
      - message
      - result
    TransactionItem:
      type: object
      properties:
        blockNumber:
          type: string
        timeStamp:
          type: string
        hash:
          type: string
        nonce:
          type: string
        blockHash:
          type: string
        transactionIndex:
          type: string
        from:
          type: string
        to:
          type: string
        value:
          type: string
        gas:
          type: string
        gasPrice:
          type: string
        isError:
          type: string
        txreceipt_status:
          type: string
        input:
          type: string
        contractAddress:
          type: string
        cumulativeGasUsed:
          type: string
        gasUsed:
          type: string
        confirmations:
          type: string
        methodId:
          type: string
        functionName:
          type: string
    TokenTransferItem:
      type: object
      properties:
        blockNumber:
          type: string
        timeStamp:
          type: string
        hash:
          type: string
        nonce:
          type: string
        blockHash:
          type: string
        from:
          type: string
        contractAddress:
          type: string
        to:
          type: string
        value:
          type: string
        tokenName:
          type: string
        tokenSymbol:
          type: string
        tokenDecimal:
          type: string
        transactionIndex:
          type: string
        gas:
          type: string
        gasPrice:
          type: string
        gasUsed:
          type: string
        cumulativeGasUsed:
          type: string
        confirmations:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apikey
      description: 'Optional for free-tier usage (2 req/s, 10,000 calls/day). Register at routescan.io for increased limits.

        '