---
title: "GET /v4/users/{address}/protocols/{protocolId}/rewards"
method: GET
path: "/v4/users/{address}/protocols/{protocolId}/rewards"
tags: ["Users"]
---

# GET /v4/users/{address}/protocols/{protocolId}/rewards

`GET /v4/users/{address}/protocols/{protocolId}/rewards`

Retrieve claimable rewards for a user scoped to a single protocol. Breakdowns and amounts reflect only campaigns attributed to the requested protocol. The returned `proofs` and `root` still claim the full per-token leaf on-chain.

## Path parameters

- `address` string, required — User wallet address
- `protocolId` string, required — Main protocol ID to filter rewards by

## Query parameters

- `chainId` string[], required — List of chain IDs to query rewards for
- `reloadChainId` union — An optional chainId to bypass the cache and check if there was very recently a claim on this chain
  - string, numeric
  - number — An optional chainId to bypass the cache and check if there was very recently a claim on this chain
- `test` boolean — Include test token rewards
- `claimableOnly` boolean — Include only claimable rewards (to avoid transferring zero amounts)
- `breakdownPage` union — 0-indexed pagination for rewards[number].breakdowns. 1000 items per page.
  - string, numeric
  - number — 0-indexed pagination for rewards[number].breakdowns. 1000 items per page.
- `type` union — Filter rewards by token type
  - string
  - string
  - string
- `showPrivate` boolean — When true, decode private campaign IDs instead of returning the zero hash. Requires the caller's identity (JWT, API key owner, or BackOffice) to match the queried address — otherwise returns 403. Also bypasses CDN cache.

## Response `200`

Response for status 200

- object[]
  - `chain` object, required — Chain
    - `id` integer, required — Chain Id
    - `name` string, required — Legible name of the chain
    - `icon` string, required — URL to the icon of the chain
    - `liveCampaigns` number, required — Number of campaigns currently live on this chain
    - `endOfDisputePeriod` number, required
    - `explorers` object[]
      - `type` union, required
        - string
        - string
        - string
      - `url` string, required
      - `chainId` number, required
    - `lastClaimsOnchainFetchTimestamp` string, required — Timestamp of the last claims onchain fetch
  - `rewards` object[], required — List of rewards for each token
    - `root` string, required — Merkle tree root hash for the reward claim
    - `recipient` string, required — Address of the reward recipient
    - `proofs` string[], required — Merkle proofs for reward verification
    - `token` object, required — Token information
      - `address` string, required — Token contract address
      - `chainId` number, required — Chain ID where the token exists
      - `symbol` string, required — Token symbol
      - `decimals` number, required — Token decimals
    - `breakdowns` object[], required — Detailed breakdowns of rewards by reason and campaign
      - `reason` string, required — Reason identifier for the reward
      - `amount` string, required — Total reward amount for this reason
      - `claimed` string, required — Amount already claimed
      - `pending` string, required — Amount pending claim
      - `campaignId` string, required — ID of the campaign that generated this reward
      - `opportunityId` string, required — ID of the opportunity this breakdown is attributed to
      - `campaignStatus` object
        - `campaignId` string, required
        - `computedUntil` union, required
          - string
          - string, numeric
          - number
        - `processingStarted` union, required
          - string
          - string, numeric
          - number
        - `status` string, required
        - `preComputeProcessingStarted` union, required
          - string
          - string, numeric
          - number
        - `preComputeStatus` string, required
        - `delay` union
          - string, numeric
          - number
        - `error` string
        - `details` unknown
    - `claimed` string, required — Total amount claimed by the user
    - `amount` string, required — Total reward amount
    - `pending` string, required — Total pending reward amount

---

[API](https://skmtc.dev/merkl/apis/merkl-api.md) · [All operations](https://skmtc.dev/merkl/apis/merkl-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/merkl/merkl-api/revisions/a7e5b9f6fb5f/schema)
