**Returns gross rewards, as earned by validators**

Notes:

- For mainnet and hoodi
- Returns data for any Figment validator that was created through [Create Validators](https://docs.figment.io/reference/create-validators)
- Daily and all time rollups
- Filters by date (start and end timestamps, inclusive), by validator pubkey or by withdrawal address/credentials.
- For a single validator’s rewards, pass only pubkey and omit withdrawal_addresses.
- Rewards are available approximatively 3 hours after they are distributed onchain. Daily rollups are done based on UTC days
- Includes execution layer rewards, swept consensus layer rewards and unswept consensus layer rewards
- Slashing penalties are reflected in the "balances" field, and subsequent missed attestations appear as negative values in consensus rewards.

General features described in [Rewards Overview](https://docs.figment.io/docs/rewards-overview)

---

## Time Rollup

**time_rollup**  
 `string`  
 `enum`  
 `required`  
The granularity of the rewards data. Use `epoch` for one record per validator per epoch, `daily` for rewards aggregated by UTC calendar day, or `all_time` for cumulative rewards since validator activation.

Allowed:  
`epoch` `daily` `all_time`

## Start

**start**  
 `string`  
 `required`  
Lower bound of rewards data. For `epoch` time_rollup: accepts an epoch number as an integer (e.g. 261702) or a date string ("YYYY-MM-DD"). For `daily` time_rollup: accepts a date string ("YYYY-MM-DD"). Ignored for `all_time` time_rollup.

## End

**end**  
 `string`  
 `required`  
Upper bound of rewards data. For `epoch` time_rollup: accepts an epoch number as an integer (e.g. 261703) or a date string ("YYYY-MM-DD"). For `daily` time_rollup: accepts a date string ("YYYY-MM-DD"). Ignored for `all_time` time_rollup.

## Groups

**groups**  
 `string`  
Filter using comma-separated group uuids.

## Network

**network**  
 `string`  
 `enum`  
Defaults to mainnet

Allowed:  
`mainnet` `hoodi`

## Pubkeys

**pubkeys**  
 `array of strings`  
A list of validator pubkeys for filtering.

## Withdrawal Addresses

**withdrawal_addresses**  
 `array of strings`  
A list of withdrawal addresses or credentials for filtering.

## Page

**page**  
 `object`

## Include Penalties

**include_penalties**  
 `boolean`  
Defaults to false

When `true`, includes a separate `consensus_penalty` entry in the rewards array representing attestation and sync committee penalties for the period. Defaults to `false`.

---

### Example CURL Request

```curl
curl --request POST \
     --url https://api.figment.io/ethereum/rewards \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: your-api-key-here' \
     --data '
{
  "time_rollup": "epoch",
  "network": "mainnet",
  "include_penalties": false
}
'  
```

### Example Response

```json
{
  "data": [
    {
      "pubkey": "0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120",
      "rewards": [
        {
          "text": "0.002932238",
          "currency": "ETH",
          "numeric": 2932238000000000,
          "exp": 18,
          "type": "consensus"
        },
        {
          "text": "0.019767962495220182",
          "currency": "ETH",
          "numeric": 19767962495220184,
          "exp": 18,
          "type": "execution",
          "recipient": "0xed488e6cc4b030eb5bfdde3227c3d5da2b9040e8",
          "sender": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5",
          "slot": 7334788,
          "block": 18146590,
          "is_mev": true,
          "mev_relay": "Block Native",
          "tx_hash": "0x25e3a03462a55b2632573cfc8e36cbb431d38793b6d26603cb11fd0251fee73b"
        }
      ],
      "balances": [
        {
          "text": "33.824197321",
          "currency": "ETH",
          "numeric": 33824197321000000000,
          "exp": 18
        }
      ],
      "timestamp": "2023-02-22T00:00:00Z",
      "max_epoch": 183036,
      "withdrawal_address": "0xeD488E6cc4B030eb5BfddE3227C3D5da2b9040E8",
      "withdrawal_credentials": "0x010000000000000000000000ed488e6cc4b030eb5bfdde3227c3d5da2b9040e8"
    }
  ],

"meta": {
    "protocol": "ethereum",
    "network": "mainnet",
    "time_rollup": "daily"
  }
}
```

---
