Routescan (Snowtrace) Logs API

Smart contract event log query endpoints.

Specifications

OpenAPI Specification

snowtrace-logs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Routescan (Snowtrace) Etherscan-Compatible Accounts Logs 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: Logs
  description: Smart contract event log query endpoints.
paths:
  /logs/getLogs:
    get:
      operationId: getLogs
      summary: Get event logs by address and topics
      description: 'Returns event logs emitted by a smart contract address, filtered by block range and up to four indexed topics.

        '
      tags:
      - Logs
      parameters:
      - name: module
        in: query
        required: true
        schema:
          type: string
          enum:
          - logs
      - name: action
        in: query
        required: true
        schema:
          type: string
          enum:
          - getLogs
      - name: address
        in: query
        required: false
        schema:
          type: string
        description: Contract address to filter logs.
      - $ref: '#/components/parameters/startblockParam'
      - $ref: '#/components/parameters/endblockParam'
      - name: topic0
        in: query
        required: false
        schema:
          type: string
        description: First indexed event topic (event signature hash).
      - name: topic1
        in: query
        required: false
        schema:
          type: string
        description: Second indexed event topic.
      - name: topic2
        in: query
        required: false
        schema:
          type: string
        description: Third indexed event topic.
      - name: topic3
        in: query
        required: false
        schema:
          type: string
        description: Fourth indexed event topic.
      - name: topic0_1_opr
        in: query
        required: false
        schema:
          type: string
          enum:
          - and
          - or
        description: Logical operator between topic0 and topic1.
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/apikeyParam'
      responses:
        '200':
          description: List of event logs
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponse'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/LogItem'
components:
  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
    LogItem:
      type: object
      properties:
        address:
          type: string
        topics:
          type: array
          items:
            type: string
        data:
          type: string
        blockNumber:
          type: string
        blockHash:
          type: string
        timeStamp:
          type: string
        gasPrice:
          type: string
        gasUsed:
          type: string
        logIndex:
          type: string
        transactionHash:
          type: string
        transactionIndex:
          type: string
  parameters:
    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.
    offsetParam:
      name: offset
      in: query
      required: false
      schema:
        type: integer
        default: 10
      description: Number of results per page (max 10000).
    startblockParam:
      name: startblock
      in: query
      required: false
      schema:
        type: integer
        default: 0
      description: Starting block number for block-range queries.
  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.

        '