Skip to main content
GET
/
v2
/
api
Get Token Holder List by Contract Address
curl --request GET \
  --url https://api.etherscan.io/v2/api
{
  "status": "1",
  "message": "OK",
  "result": [
    {
      "TokenHolderAddress": "0xa5b7d615c99f011a22f16f5809890ca6900200a3",
      "TokenHolderQuantity": "2"
    },
    {
      "TokenHolderAddress": "0x0412a1d25fbdcabc536603198330021ccb13240b",
      "TokenHolderQuantity": "3385700"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.etherscan.io/llms.txt

Use this file to discover all available pages before exploring further.

Effective July 1, 2026, the maximum records returned per request will be reduced from 10,000 to 1,000 for Free tier API users. See the full list of affected endpoints.
This is a PRO endpoint, available to the Standard Plan and above

Query Parameters

apikey
string
default:"YourApiKeyToken"
Your Etherscan API key.
chainid
string
default:"1"
Chain ID to query, eg 1 for Ethereum, 8453 for Base from our supported chains.
module
string
default:"token"
Set to token for this endpoint.
action
string
default:"tokenholderlist"
Set to tokenholderlist for this endpoint.
contractaddress
string
default:"0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d"
Contract address of the ERC-20 token.
page
integer
default:"1"
Page number for pagination.
offset
integer
default:"100"
Number of records per page. Use the page parameter for subsequent records.
{
  "status": "1",
  "message": "OK",
  "result": [
    {
      "TokenHolderAddress": "0xa5b7d615c99f011a22f16f5809890ca6900200a3",
      "TokenHolderQuantity": "2"
    },
    {
      "TokenHolderAddress": "0x0412a1d25fbdcabc536603198330021ccb13240b",
      "TokenHolderQuantity": "3385700"
    }
  ]
}