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. '