---
updatedAt: 2026-05-20T06:41:35.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 Yield Summaries

Returns a **network-wide** stream of yield summaries for the specified type and time range. Results are streamed in [NDJSON](https://ndjson.org/) format.

For more details on yield metrics and how they are calculated, see the [Yield Metrics overview](https://docs.blockdaemon.com/reference/stakingreporting-api-overview).


### Data Availability

Yield data becomes available only after inflation rewards are fully paid out, which can take several hundred blocks after an epoch ends. Once available, the data includes Inflation Rewards, Block Fees, and MEV Rewards.

The `mev` field in the response represents rewards earned in the previous epoch but paid out in the current one (i.e., MEV earned in epoch X-1 is paid in epoch X).

# 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}/yield": {
      "get": {
        "summary": "Get a Stream of Yield Summaries",
        "description": "Returns a **network-wide** stream of yield summaries for the specified type and time range. Results are streamed in [NDJSON](https://ndjson.org/) format.\n\nFor more details on yield metrics and how they are calculated, see the [Yield Metrics overview](https://docs.blockdaemon.com/reference/stakingreporting-api-overview).\n",
        "tags": [
          "Solana Staking Reporting"
        ],
        "operationId": "getYieldsSolana",
        "parameters": [
          {
            "in": "path",
            "name": "network",
            "required": true,
            "description": "The blockchain network to query (e.g., mainnet).",
            "schema": {
              "type": "string",
              "default": "mainnet"
            }
          },
          {
            "in": "path",
            "name": "type",
            "required": true,
            "description": "The type of yield data to retrieve:\n- `validator`: includes the validator’s own rewards.\n- `delegator`: includes rewards distributed to delegators of that validator.\n\nCall both endpoints and aggregate the results to get a complete network-wide view.\n",
            "schema": {
              "$ref": "#/components/schemas/TypeYieldSolana"
            }
          },
          {
            "in": "query",
            "name": "startTime",
            "required": true,
            "description": "Epoch-based start time for reward queries.",
            "example": 1709251200,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "endTime",
            "required": true,
            "description": "Epoch-based end time for reward queries.",
            "example": 1711929600,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "denomination",
            "description": "The unit to return the yield in (e.g., `lamports`).",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Denomination1"
            }
          },
          {
            "in": "query",
            "name": "raw",
            "description": "Gives the yield values raw per-epoch. Set to `true` to get per-epoch raw values.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "$ref": "#/components/schemas/YieldResponseSolana"
                }
              }
            }
          },
          "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": {
      "YieldResponseSolana": {
        "description": "The reward response object",
        "type": "object",
        "properties": {
          "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
          },
          "return": {
            "description": "The staking return for all delegators or validators for the period",
            "type": "string",
            "example": "283291849202",
            "format": "number"
          },
          "apr": {
            "description": "The APR for delegators or validators based on the return, total stake of the network and assuming 180 epochs a year",
            "type": "string",
            "example": "0.0601",
            "format": "number"
          },
          "aprPercentage": {
            "description": "The same as above but in percentage form",
            "type": "string",
            "example": "6.01%",
            "format": "number"
          },
          "apy": {
            "description": "The APY based on the above and assuming re-staking of all rewards after each epoch",
            "type": "string",
            "example": "0.06912",
            "format": "number"
          },
          "apyPercentage": {
            "description": "The same as above but in percentage form",
            "type": "string",
            "example": "6.912%",
            "format": "number"
          },
          "denomination": {
            "description": "the denomination the reward is in",
            "type": "string",
            "example": "lamports"
          },
          "stake": {
            "description": "the total stake across the full network",
            "type": "string",
            "example": "3830810096309000",
            "format": "number"
          },
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ValidatorYieldMetadataSolana"
              },
              {
                "$ref": "#/components/schemas/DelegatorYieldMetadataSolana"
              }
            ]
          }
        }
      },
      "ValidatorYieldMetadataSolana": {
        "properties": {
          "fee": {
            "description": "the amount of rewards from fees",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "epoch": {
            "description": "Only present for protocol yield, The epoch number/s that the period covers",
            "type": "string",
            "format": "number",
            "example": "1"
          },
          "mev": {
            "description": "the amount of rewards from jito mev",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "voting": {
            "description": "the amount of rewards from voting",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          }
        }
      },
      "DelegatorYieldMetadataSolana": {
        "properties": {
          "fee": {
            "description": "the amount of rewards from fees",
            "type": "string",
            "format": "number",
            "example": "532626257312"
          },
          "epoch": {
            "description": "Only present for protocol yield, The epoch number/s that the period covers",
            "type": "string",
            "format": "number",
            "example": "1"
          },
          "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"
          }
        }
      },
      "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]"
          }
        }
      },
      "Denomination1": {
        "description": "The denomination to return rewards in",
        "type": "string",
        "default": "lamports",
        "enum": [
          "lamports",
          "sol"
        ]
      },
      "TypeYieldSolana": {
        "description": "The type of yield data to retrieve:\n- `validator`: includes the validator’s own rewards.\n- `delegator`: includes rewards distributed to delegators of that validator.\n",
        "type": "string",
        "enum": [
          "validator",
          "delegator"
        ]
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl",
      "go",
      "javascript",
      "python",
      "node"
    ],
    "explorer-enabled": false
  }
}
```