---
title: "Rewards APYs"
method: GET
path: "/v3/apys/rewards"
tags: ["Rewards"]
---

# Rewards APYs

`GET /v3/apys/rewards`

## Query parameters

- `chainId` string
- `vault` string

## Response `200`

Rewards APYs

- object
  - `data` RewardsApy[]
    - `chainId` integer
    - `vault` string
    - `campaigns` object[]
      - `id` string
      - `provider` string
      - `apr` number — Reward APR contribution as a public percent number.
      - `rewardToken` AssetRef
        - `address` string
        - `symbol` string
        - `decimals` integer
        - `name` string, nullable
      - `source` 'merkl' | 'turtle' | 'direct'
      - `startTimestamp` string, date-time
      - `endTimestamp` string, date-time
      - `status` 'active' | 'upcoming' | 'ended' — Campaign status. 'active' = ongoing, 'upcoming' = not yet started, 'ended' = past.
      - `campaignType` string
      - `collateralAsset` string
      - `requiresCb1Verification` boolean
      - `merklCampaignId` string — Original Merkl campaign id when the public campaign is fanned out into vault-level instances.
      - `opportunityType` string — Merkl opportunity type that produced this campaign.
      - `sourceUrl` string, uri — Exact Merkl campaign page.
      - `distributionType` string — Merkl distribution type for the campaign.
      - `whitelist` string[] — Lowercase recipient addresses eligible for whitelist-gated campaigns.
      - `blacklist` string[] — Lowercase recipient addresses excluded from blacklist-gated campaigns.
      - `eligibilityRequirements` object[] — Requirements that must be satisfied for the campaign rewards to apply.
        - `type` 'token-holding', required
        - `chainId` integer, required
        - `tokenAddress` string, required
        - `minimumAmount` string, required — Minimum token amount in base units.
        - `minimumDurationSeconds` integer, required — Minimum continuous holding duration in seconds.
        - `tokenSymbol` string
        - `tokenDecimals` integer
      - `eligibilityRequirementsStatus` 'none' | 'complete' | 'incomplete' — Whether campaign eligibility hooks are absent, fully represented by eligibilityRequirements, or include conditions this API cannot model. This field is always present for Merkl campaigns. Retained legacy Merkl rows without completeness metadata are reported as incomplete. Consumers must direct users to sourceUrl when this value is incomplete.
    - `totalApr` number — Sum of currently active reward APR contributions as a public percent number.
  - `meta` PaginationMeta
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.

## Changes

- **2026-09-02** `9e69e7cdb054` — 1 info
  - added the optional property `data/items/campaigns/items/eligibilityRequirementsStatus` to the response with the `200` status

[Change history](https://skmtc.dev/euler/apis/euler-data-api-v3/changes/v3/apys/rewards/get.md)

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc.dev/euler/apis/euler-data-api-v3/revisions/1cbef949e74f?raw)
