---
title: "Get yield campaigns"
method: GET
path: "/v1/yields/{yieldId}/campaigns"
tags: ["Discovery"]
---

# Get yield campaigns

`GET /v1/yields/{yieldId}/campaigns`

Returns campaign metadata for the given yield opportunity within the API key project scope.

## Path parameters

- `yieldId` string, required

## Query parameters

- `offset` number
- `limit` number
- `status` 'draft' | 'active' | 'paused' | 'ended'

## Response `200`

Campaign metadata for the given yield

- object
  - `total` number, required — Total number of items available
  - `offset` number, required — Offset of the current page
  - `limit` number, required — Limit of the current page
  - `items` YieldCampaignDto[]
    - `id` string, required
    - `name` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `yieldId` string, required
    - `status` 'draft' | 'active' | 'paused' | 'ended', required
    - `rewardMode` 'normal' | 'compound', required
    - `rewardRate` RewardRateDto, required
      - `total` number, required — Estimated underlying integration reward rate across all sources. May include an additional campaign component when an active campaign applies to this project.
      - `rateType` string, required — Whether this reward rate is APR or APY
      - `components` RewardDto[], required — Breakdown of reward rates by source
        - `rate` number, required — Reward rate as a decimal (e.g. 0.04 = 4%)
        - `rateType` string, required — Whether this rate is APR or APY
        - `token` TokenDto, required
          - `address` string — Token contract address
          - `symbol` string, required — Token symbol
          - `name` string, required — Token name
          - `decimals` number, required — Token decimals
          - `logoURI` string — Token logo URI
        - `yieldSource` 'staking' | 'liquid_staking' | 'restaking' | 'protocol_incentive' | 'campaign_incentive' | 'points' | 'lending' | 'mev' | 'real_world_asset_yield' | 'vault', required — Structured source of yield (e.g. staking, protocol incentive)
        - `description` string — Optional human-readable description of this reward
    - `totalBudget` string, required — Total campaign reward budget.
    - `distributedBudget` string, required — Amount of budget distributed so far.
    - `remainingBudget` string, required — Amount of budget remaining.
    - `configuredHourlyEmission` string, nullable — Configured hourly emission amount.
    - `apyCeiling` number, nullable — Optional APY ceiling as a decimal rate, where 0.125 = 12.5%.
    - `qualificationConfig` CampaignQualificationConfigDto, required
      - `type` 'min_token_amount', required
      - `threshold` string, required — Minimum qualifying token amount balance.
      - `maxIncentivizedTvlToken` string, nullable — Optional per-user token cap.
    - `startTime` string, date-time, required
    - `endTime` string, date-time, required
    - `lastProcessedHour` string, date-time, nullable
    - `nextPayoutDueAt` string, date-time, nullable
    - `payoutFrequency` 'weekly' | 'daily' | 'six_hourly' | 'end_of_campaign', required
    - `rewardToken` TokenDto, required
      - `address` string — Token contract address
      - `symbol` string, required — Token symbol
      - `name` string, required — Token name
      - `decimals` number, required — Token decimals
      - `logoURI` string — Token logo URI

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `404` — Yield not found with the specified ID
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/yield/apis/yield-xyz-api.md) · [All operations](https://skmtc.net/yield/apis/yield-xyz-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yield/yield-xyz-api/revisions/acfa80015ca5/schema)
