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

# ERC20 Token Transfers Advanced Filter

> Retrieves ERC20 token transfers with advanced from and to address filtering.

<Badge icon="flask" color="yellow">Beta</Badge>

Explore and preview data from our [Advanced Filter](https://etherscan.io/advanced-filter) page.

## Query parameters.

<ParamField query="apikey" default="YourApiKeyToken" type="string">
  Your Etherscan API key.
</ParamField>

<ParamField query="chainid" default="1" type="string">
  Chain ID to query, such as `1` for Ethereum or `8453` for Base from our [supported chains](/supported-chains).
</ParamField>

<ParamField query="module" default="account" type="string">
  Set to `account` for this endpoint.
</ParamField>

<ParamField query="action" default="tokentx" type="string">
  Set to `tokentx` for this endpoint.
</ParamField>

<ParamField query="contractaddress" default="0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2" type="string">
  The ERC20 token contract address to filter transfers by.
</ParamField>

<ParamField query="from" default="0x73605779985A11B8Fe32E6eD5ae5F249FFD0D7f0" type="string">
  The sender address to filter transactions by.
</ParamField>

<ParamField query="to" default="0x71c7656ec7ab88b098defb751b7401b5f6d8976f" type="string">
  The recipient address to filter transactions by.
</ParamField>

<ParamField query="fromto_opr" default="or" type="string">
  Address filter operator, either `and` or `or`.

  Use `fromto_opr=and` when both `from` and `to` must match. Use `fromto_opr=or` when either `from` or `to` can match.
</ParamField>

<ParamField query="startblock" default="0" type="integer">
  Starting block number to search from.
</ParamField>

<ParamField query="endblock" default="latest" type="string">
  Ending block number to search to, or `latest` for the latest block.
</ParamField>

<ParamField query="sort" default="desc" type="string">
  Sort order, either `desc` for the latest transactions first or `asc` for the oldest transactions first.
</ParamField>

<ParamField query="page" default="1" type="integer">
  Page number for pagination.
</ParamField>

<ParamField query="offset" default="10" type="integer">
  Number of records per page. Use the `page` parameter for subsequent records.
</ParamField>

<ResponseExample>
  ```json theme={null}
  {
    "status": "1",
    "message": "OK",
    "result": [
      {
        "blockNumber": "4730207",
        "timeStamp": "1513240363",
        "hash": "0xe8c208398bd5ae8e4c237658580db56a2a94dfa0ca382c99b776fa6e7d31d5b4",
        "nonce": "406",
        "blockHash": "0x022c5e6a3d2487a8ccf8946a2ffb74938bf8e5c8a3f6d91b41c56378a96b5c37",
        "from": "0x642ae78fafbb8032da552d619ad43f1d81e4dd7c",
        "contractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
        "to": "0x4e83362442b8d1bec281594cea3050c8eb01311c",
        "value": "5901522149285533025181",
        "tokenName": "Maker",
        "tokenSymbol": "MKR",
        "tokenDecimal": "18",
        "transactionIndex": "81",
        "gas": "940000",
        "gasPrice": "32010000000",
        "gasUsed": "77759",
        "cumulativeGasUsed": "2523379",
        "input": "deprecated",
        "methodId": "0xbe040fb0",
        "functionName": "redeem()",
        "confirmations": "18737452"
      }
    ]
  }
  ```
</ResponseExample>
