---
updatedAt: 2026-05-20T06:41:27.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 for a Single Address

Returns 0 or more reward objects in a streaming fashion using `ndjson`. Must specify either a start and end time or an epoch

# 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/{address}": {
      "get": {
        "summary": "Get a Stream of Rewards for a Single Address",
        "description": "Returns 0 or more reward objects in a streaming fashion using `ndjson`. Must specify either a start and end time or an epoch",
        "tags": [
          "Solana Staking Reporting"
        ],
        "operationId": "getRewardsSingle1",
        "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"
            }
          },
          {
            "in": "path",
            "name": "address",
            "required": true,
            "description": "The address to look up rewards for.",
            "example": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571",
            "schema": {
              "type": "string",
              "default": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
            }
          },
          {
            "in": "query",
            "name": "startTime",
            "required": false,
            "description": "Epoch-based start time for reward queries. You can not specify both an epoch and start/end times.",
            "example": 1709251200,
            "schema": {
              "type": "number",
              "default": 1709251200
            }
          },
          {
            "in": "query",
            "name": "endTime",
            "required": false,
            "description": "Epoch-based end time for reward queries. You can not specify both an epoch and start/end times",
            "example": 1711929600,
            "schema": {
              "type": "number",
              "default": 1711929600
            }
          },
          {
            "in": "query",
            "name": "epoch",
            "required": false,
            "description": "The epoch to look up rewards for, you can not specify both an epoch and start/end times",
            "example": 755,
            "schema": {
              "type": "number",
              "default": 755
            }
          },
          {
            "in": "query",
            "name": "period",
            "required": true,
            "description": "The type of aggregation to apply.",
            "schema": {
              "$ref": "#/components/schemas/TimePeriod2"
            }
          },
          {
            "in": "query",
            "name": "denomination",
            "required": false,
            "description": "the denomination to return the rewards in",
            "schema": {
              "$ref": "#/components/schemas/Denomination1"
            }
          }
        ],
        "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]"
          }
        }
      },
      "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
  }
}
```