Routescan (Snowtrace) Accounts API

Address balance and transaction history endpoints.

Specifications

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/snowtrace-accounts-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 email required.

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

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.

        '