---
updatedAt: 2026-05-20T06:41:25.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Get a Stream of Rewards

Returns 0 or more reward objects in a streaming fashion using `ndjson`.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "version": "1.0.0",
    "title": "Staking Reporting API",
    "description": "### Protocols \nThe following protocols are currently supported:\n* Cardano\n* Cosmos\n* Ethereum\n* NEAR\n* Polkadot\n* Polygon \n* Solana \n",
    "contact": {
      "name": "Blockdaemon",
      "email": "support@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "logo.png"
    }
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/reporting/staking",
      "description": "Production server"
    }
  ],
  "security": [
    {
      "apiKeyAuthHeader": []
    },
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v2/solana/{network}/{type}/rewards": {
      "post": {
        "summary": "Get a Stream of Rewards",
        "description": "Returns 0 or more reward objects in a streaming fashion using `ndjson`.",
        "tags": [
          "Solana Staking Reporting"
        ],
        "operationId": "getRewards1",
        "parameters": [
          {
            "in": "path",
            "name": "network",
            "required": true,
            "description": "The network to look up against.",
            "schema": {
              "type": "string",
              "default": "mainnet"
            }
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/Type"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RewardRequest1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "$ref": "#/components/schemas/RewardsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyAuthHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque",
        "description": "[Legacy Auth] Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      }
    },
    "schemas": {
      "ErrorResponse": {
        "properties": {
          "timestamp": {
            "description": "The timestamp of the error in ISO-8601 format",
            "type": "string"
          },
          "path": {
            "description": "The path called when the error occurred",
            "type": "string",
            "example": "/v2/solana/mainnet/delegator"
          },
          "status": {
            "description": "The http status code",
            "type": "number",
            "example": 400
          },
          "error": {
            "description": "A useful description of the error that occurred",
            "type": "string",
            "example": "[endTime should be in unix epoch seconds]"
          }
        }
      },
      "RewardRequest1": {
        "required": [
          "addresses"
        ],
        "type": "object",
        "properties": {
          "startTime": {
            "description": "Epoch-based start time for reward queries.",
            "type": "number",
            "example": 1709251200,
            "default": 1709251200
          },
          "endTime": {
            "description": "Epoch-based end time for reward queries.",
            "type": "number",
            "example": 1711929600,
            "default": 1711929600
          },
          "epoch": {
            "description": "The epoch",
            "type": "number",
            "example": 755,
            "default": 755
          },
          "addresses": {
            "description": "List of addresses to retrieve rewards for.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
            ],
            "default": [
              "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
            ]
          },
          "period": {
            "$ref": "#/components/schemas/TimePeriod2"
          },
          "aggregate": {
            "description": "Whether to aggregate across provided addresses or per address - true to aggregate across all addresses.",
            "type": "boolean",
            "default": false
          },
          "denomination": {
            "$ref": "#/components/schemas/Denomination1"
          }
        }
      },
      "TimePeriod2": {
        "description": "How the data is aggregated, raw is checkpoint level data",
        "type": "string",
        "default": "monthly",
        "enum": [
          "yearly",
          "daily",
          "weekly",
          "monthly",
          "epoch",
          "raw"
        ]
      },
      "Denomination1": {
        "description": "The denomination to return rewards in",
        "type": "string",
        "default": "lamports",
        "enum": [
          "lamports",
          "sol"
        ]
      },
      "Type": {
        "description": "Specifies whether the request is for a validator or delegator.",
        "type": "string",
        "enum": [
          "validator",
          "delegator"
        ]
      },
      "RewardsResponse": {
        "description": "The reward response object",
        "type": "object",
        "properties": {
          "address": {
            "description": "The address the reward is for",
            "type": "string",
            "example": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
          },
          "denomination": {
            "description": "The denomination the reward is in",
            "type": "string",
            "example": "lamports"
          },
          "return": {
            "description": "The staking return of the address for the period",
            "type": "string",
            "example": "283291849202",
            "format": "number"
          },
          "startTime": {
            "description": "Epoch-based start time for reward queries.",
            "type": "number",
            "example": 1709251200
          },
          "endTime": {
            "description": "Epoch-based end time for reward queries.",
            "type": "number",
            "example": 1711929600
          },
          "period": {
            "$ref": "#/components/schemas/TimePeriod2"
          },
          "startBalance": {
            "description": "The balance or stake at the start of the period",
            "type": "string",
            "example": "124222",
            "format": "number"
          },
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ValidatorRewardsMetadata"
              },
              {
                "$ref": "#/components/schemas/DelegatorRewardsMetadata"
              }
            ]
          }
        }
      },
      "ValidatorRewardsMetadata": {
        "title": "Validator Rewards Metadata",
        "description": "A map of string keys to string values, note that not all fields will be present depending on the period chosen in the request and that new fields could also be added at any time\n",
        "properties": {
          "fee": {
            "description": "the amount of rewards earned from fees",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "epoch": {
            "description": "The epoch number/s that the period covers",
            "type": "string",
            "example": "1"
          },
          "identity": {
            "description": "The validator identity",
            "type": "string",
            "example": "7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy"
          },
          "slot": {
            "description": "The slot/s that are included in the period",
            "type": "string",
            "format": "number",
            "example": "251296884"
          },
          "voteKey": {
            "description": "The validator vote key",
            "type": "string",
            "example": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
          },
          "voting": {
            "description": "the amount of rewards from voting",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "stake": {
            "description": "total stake against that validator at the start of the period - will be missing if a validator has a 100% commission",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "mev": {
            "description": "the amount of rewards from jito mev",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          }
        }
      },
      "DelegatorRewardsMetadata": {
        "title": "Delegator Rewards Metadata",
        "description": "A map of string keys to string values, note that not all fields will be present depending on the period chosen in the request and that new fields could also be added at any time\n",
        "properties": {
          "epoch": {
            "description": "The epoch number/s that the period covers",
            "type": "string",
            "format": "number",
            "example": "1"
          },
          "identity": {
            "description": "The validator identity that the stake account is delegated to",
            "type": "string",
            "example": "7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy"
          },
          "slot": {
            "description": "The slot/s that are included in the period",
            "type": "string",
            "format": "number",
            "example": "251296884"
          },
          "voteKey": {
            "description": "The validator vote key that the stake account is delegated to",
            "type": "string",
            "example": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
          },
          "mev": {
            "description": "the amount of rewards from jito mev",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "staking": {
            "description": "the amount of rewards from staking",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "stakeAccount": {
            "description": "the stake account this reward is for",
            "type": "string",
            "example": "HEcQHKyVaM6mRd4728RTJPvWcezm2mkPoAUazt992RJt"
          },
          "solanaAccount": {
            "description": "the solana account the stake account is linked to",
            "type": "string",
            "example": "5LJ93G4SQh9GiewTQJNAu6X9sQ1VVyrpCAgbQsRSgn22"
          }
        }
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl",
      "go",
      "javascript",
      "python",
      "node"
    ],
    "explorer-enabled": false
  }
}
```