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

# Get Token Holder List by Contract Address

> Retrieves the current list of ERC-20 token holders and their token balances.

export const chain = '1';

<Note>
  This is a PRO endpoint, available to the [Standard Plan](/rate-limits) and above
</Note>

<ResponseExample>
  ```json Example response theme={null}
  {
    "status": "1",
    "message": "OK",
    "result": [
      {
        "TokenHolderAddress": "0xa5b7d615c99f011a22f16f5809890ca6900200a3",
        "TokenHolderQuantity": "2"
      },
      {
        "TokenHolderAddress": "0x0412a1d25fbdcabc536603198330021ccb13240b",
        "TokenHolderQuantity": "3385700"
      }
    ]
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi/api-reference/endpoint/tokenholderlist.json GET /v2/api
openapi: 3.1.0
info:
  title: Get Token Holder List by Contract Address
  version: 2.0.0
  description: Retrieves the current list of ERC-20 token holders and their token balances.
  license:
    name: Etherscan API Terms
    url: https://etherscan.io/terms
servers:
  - url: https://api.etherscan.io
    description: Etherscan API.
security:
  - apiKey: []
paths:
  /v2/api:
    get:
      summary: Get Token Holder List by Contract Address
      description: >-
        Retrieves the current list of ERC-20 token holders and their token
        balances.
      operationId: getTokenholderlist
      parameters:
        - name: chainid
          in: query
          required: true
          description: >-
            Chain ID to query, eg 1 for Ethereum, 42161 for Arbitrum from our
            [supported chains](/supported-chains).
          schema:
            type: string
          example: '1'
        - name: module
          in: query
          required: true
          description: Set to token for this endpoint.
          schema:
            type: string
            default: token
          example: token
        - name: action
          in: query
          required: true
          description: Set to tokenholderlist for this endpoint.
          schema:
            type: string
            default: tokenholderlist
          example: tokenholderlist
        - name: contractaddress
          in: query
          required: true
          description: Contract address of the ERC-20 token.
          schema:
            type: string
          example: '0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d'
        - name: page
          in: query
          required: false
          description: Page number for pagination.
          schema:
            type: integer
          example: 1
        - name: offset
          in: query
          required: false
          description: >-
            Number of records per page. Use the page parameter for subsequent
            records.
          schema:
            type: integer
          example: 100
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: >-
                      1 if the request returned data, 0 otherwise. A status of 0
                      can indicate an error or a valid request that returned no
                      records.
                  message:
                    type: string
                    description: >-
                      OK on success, otherwise an error description such as
                      NOTOK. See [common error
                      messages](/common-error-messages).
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        TokenHolderAddress:
                          type: string
                          description: Address holding the token.
                        TokenHolderQuantity:
                          type: string
                          description: Quantity of the token held by the address.
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apikey
      description: >-
        Enter your Etherscan API key, or [set one up](/set-up-your-api-key) if
        you don't have one.

````