---
updatedAt: 2026-07-02T12:20:04.000Z
---

Fetch the complete documentation index at: https://docs.noves.fi/llms.txt. Use this file to discover all available pages before exploring further.

# /{chain}/rewards/{party}

Returns a paginated list of reward transfers for a party, together with totals by reward type across the requested window.
            
Filter by <i>validatorRewards</i>, <i>appRewards</i>, or <i>svRewards</i>.
            
If both <i>startTimestamp</i> and <i>endTimestamp</i> are omitted, the API applies a trailing 30-day window by default.
            
<b>Note:</b> For pagination, use the <i>nextPageUrl</i> link that will be returned as part of the output, or use the <i>cursor</i> parameter with the value from <i>nextCursor</i> in the previous response.
            
A party with no rewards in the window will return a HTTP 200 response with an empty <i>rewards</i> array and zeroed <i>totals</i>.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Canton API",
    "description": "Access public Canton updates, balances, prices, rewards, and more. Set up your own streams and alerts. Fetch fully reconciliable, accounting-grade data. Powered by Noves.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.canton.noves.fi/"
    }
  ],
  "paths": {
    "/{chain}/rewards/{party}": {
      "get": {
        "tags": [
          "Rewards"
        ],
        "summary": "/{chain}/rewards/{party}",
        "description": "Returns a paginated list of reward transfers for a party, together with totals by reward type across the requested window.\r\n            \r\nFilter by <i>validatorRewards</i>, <i>appRewards</i>, or <i>svRewards</i>.\r\n            \r\nIf both <i>startTimestamp</i> and <i>endTimestamp</i> are omitted, the API applies a trailing 30-day window by default.\r\n            \r\n<b>Note:</b> For pagination, use the <i>nextPageUrl</i> link that will be returned as part of the output, or use the <i>cursor</i> parameter with the value from <i>nextCursor</i> in the previous response.\r\n            \r\nA party with no rewards in the window will return a HTTP 200 response with an empty <i>rewards</i> array and zeroed <i>totals</i>.",
        "parameters": [
          {
            "name": "chain",
            "in": "path",
            "description": "Name of the chain.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "default": "canton",
              "example": "canton"
            }
          },
          {
            "name": "party",
            "in": "path",
            "description": "The party identifier to fetch rewards for.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "default": "noves-validator-1::1220dd5cc6e969cd7d7c11e339fbd07fab5f6fa1f999dc09339228d17299d9d68941",
              "example": "noves-validator-1::1220dd5cc6e969cd7d7c11e339fbd07fab5f6fa1f999dc09339228d17299d9d68941"
            }
          },
          {
            "name": "startTimestamp",
            "in": "query",
            "description": "Start timestamp to filter results by (Unix timestamp). Optional.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1782480066,
              "example": 1782480066
            }
          },
          {
            "name": "endTimestamp",
            "in": "query",
            "description": "End timestamp to filter results by (Unix timestamp). Optional.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1785072066,
              "example": 1785072066
            }
          },
          {
            "name": "rewardType",
            "in": "query",
            "description": "Reward type to return: validatorRewards, appRewards, svRewards, or all (default).",
            "style": "form",
            "schema": {
              "type": "string",
              "default": "all"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of reward transfers to return per page. Default is 100, max is 500.",
            "style": "form",
            "schema": {
              "maximum": 500,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort direction: 'asc' for ascending or 'desc' for descending. Default is 'desc'.",
            "style": "form",
            "schema": {
              "type": "string",
              "default": "desc"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor from a previous response's nextCursor field. Optional.",
            "style": "form",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "description": "API Key for Canton API. To generate an API Key, visit https://app.noves.fi",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "default": "demokey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RewardsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "RewardPeriodDto": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Inclusive start of the window the results cover (ISO 8601). Null when unbounded.",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "Inclusive end of the window the results cover (ISO 8601). Null when unbounded.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RewardTotalsResponseDto": {
        "type": "object",
        "properties": {
          "validatorRewards": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardTypeSummaryResponseDto"
              }
            ],
            "description": "Aggregated totals for validator (liveness) rewards in the window.",
            "nullable": true
          },
          "appRewards": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardTypeSummaryResponseDto"
              }
            ],
            "description": "Aggregated totals for app rewards in the window.",
            "nullable": true
          },
          "svRewards": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardTypeSummaryResponseDto"
              }
            ],
            "description": "Aggregated totals for super-validator (SV) rewards in the window.",
            "nullable": true
          },
          "svIssuanceRewards": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardTypeSummaryResponseDto"
              }
            ],
            "description": "Aggregated totals for super-validator issuance rewards in the window. Issuance rewards are summarized here only — they are not returned as individual rows in <i>rewards</i> and cannot be used as a <i>rewardType</i> filter value.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RewardTransferResponseDto": {
        "type": "object",
        "properties": {
          "updateId": {
            "type": "string",
            "description": "Update ID of the Canton update that paid this reward.",
            "nullable": true
          },
          "effectiveAt": {
            "type": "string",
            "description": "Time the reward took effect on the ledger (ISO 8601).",
            "format": "date-time"
          },
          "type": {
            "type": "string",
            "description": "Reward type: <i>validatorRewards</i>, <i>appRewards</i>, or <i>svRewards</i>.",
            "nullable": true
          },
          "amount": {
            "type": "string",
            "description": "Reward amount in CC, as a decimal string.",
            "nullable": true
          },
          "usdValue": {
            "type": "string",
            "description": "USD value of the reward at the time it was earned, as a decimal string. Null when no USD price was available.",
            "nullable": true
          },
          "recipient": {
            "type": "string",
            "description": "Party that received the reward. Null when not attributable to a single recipient.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RewardTypeSummaryResponseDto": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Number of reward transfers of this type within the window.",
            "format": "int64"
          },
          "totalAmount": {
            "type": "string",
            "description": "Total reward amount of this type, in CC, as a decimal string.",
            "nullable": true
          },
          "totalUsdValue": {
            "type": "string",
            "description": "Total USD value of this type at the time each reward was earned, as a decimal string. Null when no USD price was available.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RewardsResponseDto": {
        "type": "object",
        "properties": {
          "party": {
            "type": "string",
            "description": "The party the rewards belong to.",
            "nullable": true
          },
          "period": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardPeriodDto"
              }
            ],
            "description": "The time window the results cover.",
            "nullable": true
          },
          "startTimestamp": {
            "type": "string",
            "description": "Effective start of the window (ISO 8601); mirrors <i>period.startTime</i>.",
            "format": "date-time",
            "nullable": true
          },
          "endTimestamp": {
            "type": "string",
            "description": "Effective end of the window (ISO 8601); mirrors <i>period.endTime</i>.",
            "format": "date-time",
            "nullable": true
          },
          "rewards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RewardTransferResponseDto"
            },
            "description": "The reward transfers on this page, newest first by default.",
            "nullable": true
          },
          "hasMore": {
            "type": "boolean",
            "description": "True when more pages are available; follow <i>nextPageUrl</i>/<i>nextCursor</i> to fetch them."
          },
          "nextCursor": {
            "type": "string",
            "description": "Opaque cursor for the next page. Null when there are no more pages.",
            "nullable": true
          },
          "nextPageUrl": {
            "type": "string",
            "description": "Fully-formed URL for the next page, preserving the current filters. Null when there are no more pages.",
            "nullable": true
          },
          "truncated": {
            "type": "boolean",
            "description": "True when the result set hit the internal <i>maxRewards</i> cap before exhausting the window."
          },
          "maxRewards": {
            "type": "integer",
            "description": "Internal cap on the number of rewards aggregated for this request, when one applied. Null when no cap was hit.",
            "format": "int32",
            "nullable": true
          },
          "rewardsReturned": {
            "type": "integer",
            "description": "Number of reward transfers returned on this page.",
            "format": "int32"
          },
          "updatesScanned": {
            "type": "integer",
            "description": "Number of ledger updates scanned to produce this page.",
            "format": "int64"
          },
          "totals": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RewardTotalsResponseDto"
              }
            ],
            "description": "Per-reward-type aggregated totals across the full window (not just this page).",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}
```