Discover/Etherscan API
live

Etherscan APIetherscan.io

Access Ethereum address balances, transactions, token transfers, NFT transfers, gas prices, and block data from Etherscan via a single REST API.

Endpoint health
verified 7d ago
get_address_overview
get_address_transactions
get_address_internal_transactions
get_address_erc20_token_transfers
get_address_nft_transfers
10/10 passing latest checkself-healing
Endpoints
10
Updated
22d ago

What is the Etherscan API?

This API exposes 10 endpoints covering Etherscan's Ethereum blockchain explorer data, including address overviews, transaction histories, ERC-20 and NFT transfers, block details, and live gas prices. The get_address_transactions endpoint returns paginated normal transactions with hash, method, block, from/to addresses, value, and fee data. It also includes a search endpoint that resolves Ethereum addresses, ENS names, transaction hashes, and block numbers to their canonical Etherscan result.

Try it
Ethereum address (0x-prefixed, 42 characters)
api.parse.bot/scraper/086c5613-58b6-4812-8aea-da40196b8e5d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/086c5613-58b6-4812-8aea-da40196b8e5d/get_address_overview?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace etherscan-io-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Etherscan SDK — bounded, re-runnable; every call capped."""
from parse_apis.etherscan_api import Etherscan, AddressNotFound

client = Etherscan()

# Fetch an address overview by its 0x address.
addr = client.addresses.get(address="0x1234567890123456789012345678901234567890")
print(addr.eth_balance, addr.ens_name, addr.labels)

# Browse the address's normal transactions (limit caps total items).
for tx in addr.transactions(limit=3):
    print(tx.Transaction_Hash, tx.Method)

# Browse the address's NFT transfers.
for nft in addr.nft_transfers(limit=3):
    print(nft.tx_hash, nft.nft_name, nft.token_id)

# Fetch gas prices — no arguments needed.
gas = client.gasprices.current()
print(gas.low, gas.avg, gas.high)

# Fetch a block by number.
block = client.blocks.get(block_number="17000000")
print(block.block_number, block.Timestamp, block.Gas_Used)

# Typed error handling: attempt to look up a nonexistent address.
try:
    client.addresses.get(address="0x0000000000000000000000000000000000000000")
except AddressNotFound as exc:
    print(f"Address not found: {exc}")

# Search for an ENS name.
result = client.searchresults.lookup(query="user.eth")
print(result.type, result.address)

print("exercised: addresses.get / transactions / nft_transfers / gasprices.current / blocks.get / searchresults.lookup")
All endpoints · 10 totalmissing one? ·

Returns summary info for an Ethereum address: ETH balance, ETH value in USD, token holdings, labels, and ENS name. The address must be a valid 0x-prefixed Ethereum address or ENS-resolved address.

Input
ParamTypeDescription
addressrequiredstringEthereum address (0x-prefixed, 42 characters)
Response
{
  "type": "object",
  "fields": {
    "labels": "array of strings - public name tags/labels",
    "address": "string - the queried Ethereum address",
    "ens_name": "string - ENS domain name if registered",
    "eth_value": "string - ETH value in USD",
    "eth_balance": "string - ETH balance with unit",
    "token_holdings_count": "string - number of tokens held",
    "token_holdings_summary": "string - summary of token holdings",
    "token_holdings_value_usd": "string - total token holdings value in USD"
  },
  "sample": {
    "data": {
      "labels": [
        "Gitcoin Grantee"
      ],
      "address": "0xREDACTED_SECRET",
      "ens_name": "vitalik.eth",
      "eth_value": "$9,339.37 (@ $1,641.70/ETH)",
      "eth_balance": "5.688840446715981478 ETH",
      "token_holdings_count": ">401",
      "token_holdings_summary": ">$95,810.00 (>401 Tokens)",
      "token_holdings_value_usd": "95,810.00"
    },
    "status": "success"
  }
}

About the Etherscan API

Address and Transaction Data

The get_address_overview endpoint accepts any Ethereum address (0x...) and returns the ETH balance, USD value, ENS name if registered, public labels or name tags, and a summary of token holdings including total USD value and count. For transaction history, get_address_transactions and get_address_internal_transactions both support pagination via the page parameter and return structured records with block number, parent transaction hash, from/to addresses, method signature, and transferred value. Internal transactions are separated from normal ones to reflect how Etherscan categorizes contract-initiated transfers.

Token and NFT Transfers

get_address_erc20_token_transfers returns paginated ERC-20 transfer events for an address, each record including transaction hash, method, block, from/to fields, transfer amount, and token name. get_address_nft_transfers covers ERC-721 and ERC-1155 events and includes token_id, nft_name, type, and a total_records count in the response, making it straightforward to determine the full scope of an address's NFT activity without fetching every page.

Gas, Price, and Block Data

get_gas_tracker returns three gas price tiers — low, average, and high — each in gwei with a detail string breaking down the base fee and priority fee components. get_eth_price_and_stats returns the current ETH price in USD and median gas price as shown on the Etherscan homepage. get_block_details accepts a block number and returns the fee recipient (validator), gas used and limit, block reward, and timestamp.

Search and Resolution

The search endpoint accepts a free-form query and resolves it to a typed result: address, transaction, block, or search_results. For ENS names, it returns the resolved Ethereum address. The url field in the response points to the final resolved Etherscan page, and the type field lets consuming code branch without string-matching the query format.

Reliability & maintenanceVerified

The Etherscan API is a managed, monitored endpoint for etherscan.io — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when etherscan.io changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official etherscan.io API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
10/10 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor an Ethereum wallet's ETH balance and token holdings value in USD using get_address_overview
  • Build a transaction history feed for a DeFi dashboard using get_address_transactions with pagination
  • Track ERC-20 inflows and outflows for a treasury address using get_address_erc20_token_transfers
  • Audit an address's full NFT transfer history, including token IDs and collection names, via get_address_nft_transfers
  • Display real-time gas price tiers (low/avg/high) with base fee breakdowns using get_gas_tracker
  • Resolve an ENS name to its Ethereum address programmatically using the search endpoint
  • Retrieve block-level reward and validator data for staking analytics using get_block_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Etherscan have an official developer API?+
Yes. Etherscan publishes an official API at https://docs.etherscan.io that exposes on-chain data including transaction lists, token transfers, contract ABIs, and more with an API key. This Parse API targets the Etherscan explorer interface and returns data fields — such as ENS names, public labels, token holding summaries, and gas tier breakdowns — that are surfaced on the explorer but not always available in the official API endpoints.
What does `get_address_nft_transfers` return and how does it differ from `get_address_erc20_token_transfers`?+
get_address_nft_transfers covers ERC-721 and ERC-1155 events and includes token_id, nft_name, type (indicating the token standard), and a top-level total_records count. get_address_erc20_token_transfers covers fungible token transfers and returns amount and token name but no token ID, since ERC-20 tokens are not individually identified. Both endpoints support pagination via the page parameter.
Does the API return contract source code, ABI, or verified contract data?+
Not currently. The API covers address overviews, transaction and transfer history, block details, gas prices, and search resolution. You can fork it on Parse and revise to add an endpoint targeting Etherscan's contract verification pages.
How does pagination work across the transaction and transfer endpoints?+
The get_address_transactions, get_address_internal_transactions, get_address_erc20_token_transfers, and get_address_nft_transfers endpoints all accept an optional integer page parameter. The response includes a page field confirming the current page. Only get_address_nft_transfers currently returns a total_records count; the other endpoints do not expose a total count or page count in the response fields.
Is data available for addresses on Ethereum testnets or other EVM chains?+
The API targets Etherscan's mainnet explorer (etherscan.io) only. Testnet explorers (Sepolia, Holesky) and other EVM-compatible chain explorers such as BscScan or Polygonscan are not covered. You can fork it on Parse and revise to point endpoints at those explorers if your use case requires a different network.
Page content last updated . Spec covers 10 endpoints from etherscan.io.
Related APIs in Crypto Web3See all →
solscan.io API
solscan.io API
ens.vision API
Search and explore ENS domains across the marketplace, discover owner portfolios and activity feeds, and resolve names to addresses with complete text records. Get domain details, browse categories, view offers and recommendations, and track all marketplace listings in one place.
opensea.io API
Search NFT collections and discover detailed stats, browse individual items, and track collection activity all in one place. Get real-time insights into collection performance and find the NFTs you're looking for on OpenSea.
studio.glassnode.com API
Access comprehensive on-chain and market analytics for cryptocurrencies, including asset fundamentals, supply dynamics, futures data, and profit/loss metrics. Search and analyze assets with historical chart data and market overview information to track crypto performance and trends.
airdrops.io API
Discover and track crypto airdrops in real-time by browsing latest opportunities, searching by category, and viewing detailed project information including participation requirements and token details. Monitor live cryptocurrency prices and stay updated on hot and potential airdrops all in one place.
kraken.com API
Get live Kraken exchange market data including supported assets, trading pairs metadata, tickers, OHLCV candlesticks, and bid/ask spread history.
etoro.com API
Monitor top eToro traders by accessing their profiles, portfolio holdings, performance statistics, and trading history to inform your investment decisions. Discover trending stocks and cryptocurrencies, search for specific instruments, and view detailed market data and news to stay updated on investment opportunities.
esp.ethereum.foundation API
Access information about Ethereum Foundation's grant programs, including open funding rounds, RFPs, and application details to find grants that match your project's needs. Browse blog posts, wishlist items, and office hours schedules to stay updated on ecosystem support opportunities.