---
title: "List all yield opportunities"
method: GET
path: "/v1/yields"
tags: ["Discovery"]
---

# List all yield opportunities

`GET /v1/yields`

Retrieve a paginated list of available yield opportunities across all supported networks and protocols.

## Query parameters

- `offset` number
- `limit` number
- `network` 'ethereum' | 'ethereum-goerli' | 'ethereum-holesky' | 'ethereum-sepolia' | 'ethereum-hoodi' | 'arbitrum' | 'base' | 'base-sepolia' | 'gnosis' | 'optimism' | 'polygon' | 'polygon-amoy' | 'starknet' | 'zksync' | 'linea' | 'unichain' | 'monad-testnet' | 'monad' | 'robinhood' | 'robinhood-testnet' | 'avalanche-c' | 'avalanche-c-atomic' | 'avalanche-p' | 'binance' | 'celo' | 'fantom' | 'harmony' | 'moonriver' | 'okc' | 'viction' | 'core' | 'sonic' | 'plasma' | 'katana' | 'hyperevm' | 'tempo' | 'pharos' | 'agoric' | 'akash' | 'axelar' | 'band-protocol' | 'bitsong' | 'canto' | 'chihuahua' | 'comdex' | 'coreum' | 'cosmos' | 'crescent' | 'cronos' | 'cudos' | 'desmos' | 'dydx' | 'evmos' | 'fetch-ai' | 'gravity-bridge' | 'injective' | 'irisnet' | 'juno' | 'kava' | 'ki-network' | 'mars-protocol' | 'nym' | 'okex-chain' | 'onomy' | 'osmosis' | 'persistence' | 'quicksilver' | 'regen' | 'secret' | 'sentinel' | 'sommelier' | 'stafi' | 'stargaze' | 'stride' | 'teritori' | 'tgrade' | 'umee' | 'sei' | 'mantra' | 'celestia' | 'saga' | 'zetachain' | 'dymension' | 'humansai' | 'neutron' | 'polkadot' | 'kusama' | 'westend' | 'bittensor' | 'aptos' | 'binancebeacon' | 'cardano' | 'near' | 'solana' | 'solana-devnet' | 'stellar' | 'stellar-testnet' | 'sui' | 'tezos' | 'tron' | 'ton' | 'ton-testnet' | 'hyperliquid'
- `chainId` string
- `networks` string
- `yieldId` string
- `yieldIds` string[]
- `type` 'staking' | 'restaking' | 'lending' | 'vault' | 'fixed_yield' | 'real_world_asset' | 'concentrated_liquidity_pool' | 'liquidity_pool' | 'liquid_staking'
- `types` string[]
- `hasCooldownPeriod` boolean
- `hasWarmupPeriod` boolean
- `token` string
- `inputToken` string
- `inputTokens` string[]
- `provider` string
- `providers` string[]
- `search` string
- `prime` boolean
- `sort` 'statusEnterAsc' | 'statusEnterDesc' | 'statusExitAsc' | 'statusExitDesc' | 'rewardRateAsc' | 'rewardRateDesc'

## Response `200`

Returns a paginated list of yield opportunities

- 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` YieldDto[]
    - `id` string, required — Unique identifier for this yield opportunity
    - `network` 'ethereum' | 'ethereum-goerli' | 'ethereum-holesky' | 'ethereum-sepolia' | 'ethereum-hoodi' | 'arbitrum' | 'base' | 'base-sepolia' | 'gnosis' | 'optimism' | 'polygon' | 'polygon-amoy' | 'starknet' | 'zksync' | 'linea' | 'unichain' | 'monad-testnet' | 'monad' | 'robinhood' | 'robinhood-testnet' | 'avalanche-c' | 'avalanche-c-atomic' | 'avalanche-p' | 'binance' | 'celo' | 'fantom' | 'harmony' | 'moonriver' | 'okc' | 'viction' | 'core' | 'sonic' | 'plasma' | 'katana' | 'hyperevm' | 'tempo' | 'pharos' | 'agoric' | 'akash' | 'axelar' | 'band-protocol' | 'bitsong' | 'canto' | 'chihuahua' | 'comdex' | 'coreum' | 'cosmos' | 'crescent' | 'cronos' | 'cudos' | 'desmos' | 'dydx' | 'evmos' | 'fetch-ai' | 'gravity-bridge' | 'injective' | 'irisnet' | 'juno' | 'kava' | 'ki-network' | 'mars-protocol' | 'nym' | 'okex-chain' | 'onomy' | 'osmosis' | 'persistence' | 'quicksilver' | 'regen' | 'secret' | 'sentinel' | 'sommelier' | 'stafi' | 'stargaze' | 'stride' | 'teritori' | 'tgrade' | 'umee' | 'sei' | 'mantra' | 'celestia' | 'saga' | 'zetachain' | 'dymension' | 'humansai' | 'neutron' | 'polkadot' | 'kusama' | 'westend' | 'bittensor' | 'aptos' | 'binancebeacon' | 'cardano' | 'near' | 'solana' | 'solana-devnet' | 'stellar' | 'stellar-testnet' | 'sui' | 'tezos' | 'tron' | 'ton' | 'ton-testnet' | 'hyperliquid', required — Network this yield opportunity is on
    - `chainId` string — EVM chain ID for this network (only for EVM networks)
    - `inputTokens` TokenDto[], required — Accepted input tokens (auto-converted as needed)
      - `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
    - `outputToken` TokenDto
      - `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
    - `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
    - `tokens` TokenDto[], required — Canonical deposit tokens - used for balances
      - `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
    - `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
    - `feeConfigurations` YieldFeeConfigurationDto[] — Live partner fee configurations for this yield. Each entry includes partner-scoped statistics for the allocator vault when available.
      - `id` string, required — Fee configuration identifier
      - `default` boolean, required — Whether this is the default fee configuration for the integration
      - `managementFeeBps` object, nullable — Management fee in basis points
      - `performanceFeeBps` object, nullable — Performance fee in basis points
      - `depositFeeBps` object, nullable — Deposit fee in basis points
      - `allocatorVaultContractAddress` object, nullable — Partner allocator vault contract address
      - `statistics` YieldStatisticsDto
        - `tvlUsd` string, nullable — Total value locked in USD for this statistics scope
        - `tvl` string, nullable — Total value locked in primary underlying token for this statistics scope
        - `tvlRaw` string, nullable — Raw total value locked in smallest token units for this statistics scope
        - `uniqueUsers` number, nullable — Number of wallets with an active position on the underlying vault share token. Null when the yield is not ERC4626, no precomputed data exists, or indexing has not run yet. Partner-specific stats are not included.
        - `averagePositionSizeUsd` string, nullable — Average position size in USD for the underlying vault (TVL USD divided by base-vault unique holders). Not partner-scoped.
        - `averagePositionSize` string, nullable — Average position size in primary underlying token for the underlying vault (TVL divided by base-vault unique holders). Not partner-scoped.
    - `statistics` YieldStatisticsDto
      - `tvlUsd` string, nullable — Total value locked in USD for this statistics scope
      - `tvl` string, nullable — Total value locked in primary underlying token for this statistics scope
      - `tvlRaw` string, nullable — Raw total value locked in smallest token units for this statistics scope
      - `uniqueUsers` number, nullable — Number of wallets with an active position on the underlying vault share token. Null when the yield is not ERC4626, no precomputed data exists, or indexing has not run yet. Partner-specific stats are not included.
      - `averagePositionSizeUsd` string, nullable — Average position size in USD for the underlying vault (TVL USD divided by base-vault unique holders). Not partner-scoped.
      - `averagePositionSize` string, nullable — Average position size in primary underlying token for the underlying vault (TVL divided by base-vault unique holders). Not partner-scoped.
    - `risk` YieldRiskSummaryDto
      - `ratings` YieldRiskEntryDto[], required — Top-level rating entries by provider
        - `rating` string, required — Provider top-level rating value
        - `source` 'credora' | 'stakingRewards', required — Provider source label
    - `status` YieldStatusDto, required
      - `enter` boolean, required — Whether the user can currently enter this yield
      - `exit` boolean, required — Whether the user can currently exit this yield
    - `metadata` YieldMetadataDto, required
      - `name` string, required — Display name of the yield opportunity
      - `logoURI` string, required — Yield opportunity logo URI
      - `description` string, required — Markdown-supported short description of this yield opportunity, including where rewards come from.
      - `documentation` string, required — Link to documentation or integration guide
      - `underMaintenance` boolean, required — Whether this yield is currently under maintenance
      - `deprecated` boolean, required — Whether this yield is deprecated and will be discontinued
      - `supportedStandards` ERCStandards[], required
      - `supportsCampaigns` boolean, required — Whether this yield supports campaign creation
    - `mechanics` YieldMechanicsDto, required
      - `type` 'staking' | 'restaking' | 'lending' | 'vault' | 'fixed_yield' | 'real_world_asset' | 'concentrated_liquidity_pool' | 'liquidity_pool' | 'liquid_staking', required — Type of yield mechanism (staking, restaking, LP, vault, etc.)
      - `requiresValidatorSelection` boolean — Indicates whether this yield requires validator selection
      - `rewardSchedule` 'block' | 'hour' | 'day' | 'week' | 'month' | 'era' | 'epoch' | 'campaign', required — How often rewards are distributed (e.g. continuously, epoch-based)
      - `rewardClaiming` 'auto' | 'manual', required — How rewards are claimed: auto, manual, or mixed
      - `gasFeeToken` 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
      - `lockupPeriod` TimePeriodDto
        - `seconds` number, required — Duration in seconds
      - `cooldownPeriod` TimePeriodDto
        - `seconds` number, required — Duration in seconds
      - `warmupPeriod` TimePeriodDto
        - `seconds` number, required — Duration in seconds
      - `fee` YieldFeeDto
        - `deposit` string — Deposit fee percentage
        - `withdrawal` string — Withdrawal fee percentage
        - `management` string — Management fee percentage (annual)
        - `performance` string — Performance fee percentage
      - `entryLimits` YieldEntryLimitsDto
        - `minimum` string, nullable, required — Minimum amount required to enter this yield in token units (null if no minimum)
        - `maximum` string, nullable, required — Maximum amount allowed to enter this yield in token units (null if no limit)
        - `subsequentMinimum` string, nullable, required — Minimum amount for deposits after the user already holds the asset, in token units (null falls back to minimum)
      - `requirements` YieldRequirementsDto
        - `kycRequired` boolean, required — Whether off-chain KYC is required before transacting
        - `kyc` KycMetadataDto
          - `kycMode` 'none' | 'oauth_redirect' | 'external_redirect' | 'iframe' | 'deeplink' | 'native_sdk', required — How the issuer KYC flow is delivered
          - `iframeAllowed` boolean, required — Whether the issuer KYC page may be embedded in an iframe
          - `authorizeUrl` string — URL of the issuer-hosted KYC page (HTTPS)
          - `notes` string — Human-readable notes about the KYC requirement
          - `eligibility` KycEligibilityDto, required
            - `defaultPolicy` 'deny' | 'allow', required — Policy applied when the user jurisdiction is not explicitly listed
            - `countries` string[], required — Jurisdictions where this opportunity is offered (ISO-3166-1 alpha-2, or "EEA"/"GCC"). May be empty.
            - `blockedCountries` string[], required — Blocked jurisdictions (ISO-3166-1 alpha-2)
            - `blockedSubdivisions` string[], required — Blocked subdivisions (ISO-3166-2, e.g. "UA-43")
            - `usPersonAllowed` boolean, required — Whether US persons are eligible
            - `geoBlockingEnforced` boolean — Whether eligibility is IP-enforced at action creation: the blocked lists always, plus the countries allow-list when defaultPolicy is "deny". Absent or false means informational only
            - `investorEligibility` InvestorEligibilityEntryDto[], required — Investor-tier requirements per jurisdiction. Empty means no tier requirement.
              - …
            - `subjectTypes` string[], required — Acceptable subject types (individual KYC and/or business KYB)
          - `selfAttestation` SelfAttestationDto
            - `documents` SelfAttestationDocumentDto[], required — Documents the user must accept before entering
              - …
            - `notes` string — Human-readable notes about the self-attestation requirement
          - `mandatoryDisclosureUrl` string — URL of a regulator-mandated disclosure document (HTTPS)
      - `supportsLedgerWalletApi` boolean — Supports Ledger Wallet API (connect via Ledger Live)
      - `extraTransactionFormatsSupported` string[] — Additional transaction formats supported (e.g. safe, batch)
      - `arguments` YieldMechanicsArgumentsDto
        - `enter` ArgumentSchemaDto
          - `type` object — Schema type
          - `properties` object — Schema properties (fields)
          - `required` string[] — Required field names
          - `additionalProperties` object — Allow additional properties
          - `items` ArgumentSchemaPropertyDto
            - `type` object — Property type
            - `description` string — Property description
            - `enum` string[] — Enum values
            - `default` object — Default value
            - `minimum` number — Minimum value
            - `maximum` number — Maximum value
            - `minLength` number — Minimum length
            - `maxLength` number — Maximum length
            - `pattern` string — Regex pattern
            - `items` ArgumentSchemaPropertyDto — recursive
            - `properties` object — Nested properties (for objects)
            - `required` string[] — Required nested fields
            - `additionalProperties` object — Additional properties allowed
            - `label` string — Field label for UI
            - `placeholder` string — Placeholder text
            - `optionsRef` string — Reference to dynamic options
            - `options` string[] — Static option values
          - `enum` string[] — Enum values
          - `default` object — Default value
          - `notes` string — Notes about this action schema
        - `exit` ArgumentSchemaDto
          - `type` object — Schema type
          - `properties` object — Schema properties (fields)
          - `required` string[] — Required field names
          - `additionalProperties` object — Allow additional properties
          - `items` ArgumentSchemaPropertyDto
            - `type` object — Property type
            - `description` string — Property description
            - `enum` string[] — Enum values
            - `default` object — Default value
            - `minimum` number — Minimum value
            - `maximum` number — Maximum value
            - `minLength` number — Minimum length
            - `maxLength` number — Maximum length
            - `pattern` string — Regex pattern
            - `items` ArgumentSchemaPropertyDto — recursive
            - `properties` object — Nested properties (for objects)
            - `required` string[] — Required nested fields
            - `additionalProperties` object — Additional properties allowed
            - `label` string — Field label for UI
            - `placeholder` string — Placeholder text
            - `optionsRef` string — Reference to dynamic options
            - `options` string[] — Static option values
          - `enum` string[] — Enum values
          - `default` object — Default value
          - `notes` string — Notes about this action schema
        - `manage` object — Manage action schemas. Each yield supports different ActionTypes (CLAIM_UNSTAKED, CLAIM_REWARDS, etc.). Keys are ActionTypes enum values.
        - `balance` ArgumentSchemaDto
          - `type` object — Schema type
          - `properties` object — Schema properties (fields)
          - `required` string[] — Required field names
          - `additionalProperties` object — Allow additional properties
          - `items` ArgumentSchemaPropertyDto
            - `type` object — Property type
            - `description` string — Property description
            - `enum` string[] — Enum values
            - `default` object — Default value
            - `minimum` number — Minimum value
            - `maximum` number — Maximum value
            - `minLength` number — Minimum length
            - `maxLength` number — Maximum length
            - `pattern` string — Regex pattern
            - `items` ArgumentSchemaPropertyDto — recursive
            - `properties` object — Nested properties (for objects)
            - `required` string[] — Required nested fields
            - `additionalProperties` object — Additional properties allowed
            - `label` string — Field label for UI
            - `placeholder` string — Placeholder text
            - `optionsRef` string — Reference to dynamic options
            - `options` string[] — Static option values
          - `enum` string[] — Enum values
          - `default` object — Default value
          - `notes` string — Notes about this action schema
      - `possibleFeeTakingMechanisms` PossibleFeeTakingMechanismsDto
        - `depositFee` boolean, required — User can take (earn) a deposit fee
        - `managementFee` boolean, required — User can take (earn) a management fee
        - `performanceFee` boolean, required — User can take (earn) a performance fee
        - `validatorRebates` boolean, required — User can take (earn) validator rebates
    - `providerId` string, required — The provider ID this yield belongs to
    - `prime` boolean, required — Whether this yield meets the Prime quality criteria. Evaluated globally by a scheduled job, so the value is the same for every consumer. Use `?prime=true` to filter the catalog to Prime yields only. Prime is true only when a yield passes every applicable v1 gate: (1) TVL — at least $100M, reduced to $50M for staking, liquid-staking, restaking and real-world-asset yields; (2) Risk — the provider risk grade is no worse than B, enforced only for providers that report a letter grade (missing or numeric-only ratings skip this gate); (3) APY outlier (vault and lending yields only) — the spot rate is between 0% and 40% and within 3x of the yield’s own 30-day trailing average.
    - `curator` CuratorDto
      - `name` object, nullable — Curator name
      - `description` object, nullable — Curator description
      - `logoURI` object, nullable — Curator logo URI
    - `tags` string[] — Optional tags for filtering or categorization
    - `state` YieldStateDto
      - `pricePerShareState` PricePerShareStateDto
        - `price` number, required — Price per share for the yield (e.g., LP token price, vault share price)
        - `shareToken` 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
        - `quoteToken` 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
      - `concentratedLiquidityPoolState` ConcentratedLiquidityPoolStateDto
        - `baseApr` number, required — Full-range trading APR (24h or rolling)
        - `price` number, required — Current mid-price from the AMM (token1 per token0)
        - `tickSpacing` number, required — Tick spacing required so UI can snap ranges
        - `minTick` number, required — Minimum tick bound for the pool
        - `maxTick` number, required — Maximum tick bound for the pool
        - `volume24hUsd` number, nullable, required — 24-hour trading volume in USD
        - `fee24hUsd` number, nullable, required — 24-hour fees earned by LPs in USD
        - `tvlUsd` number, nullable, required — Total value locked in USD
        - `feeTier` number, required — Pool fee tier as a decimal (e.g., 0.0005 for 0.05%)
        - `baseToken` 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
        - `quoteToken` 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
      - `capacityState` CapacityDto
        - `current` string, required — Current total assets in the yield
        - `max` string, nullable — Maximum capacity of the yield
        - `remaining` string, nullable — Remaining capacity available for deposits
      - `liquidityState` LiquidityStateDto
        - `liquidity` object, nullable — Available liquidity in underlying token units
        - `utilization` object, nullable — Utilization rate as a decimal (e.g., 0.8 = 80%)
      - `allocations` AllocationDto[] — Allocations to underlying strategies for vault yields (e.g., OAV, Morpho). Includes allocation, APY, TVL, and capacity per strategy.
        - `address` string, required — Contract address of the underlying strategy
        - `network` 'ethereum' | 'ethereum-goerli' | 'ethereum-holesky' | 'ethereum-sepolia' | 'ethereum-hoodi' | 'arbitrum' | 'base' | 'base-sepolia' | 'gnosis' | 'optimism' | 'polygon' | 'polygon-amoy' | 'starknet' | 'zksync' | 'linea' | 'unichain' | 'monad-testnet' | 'monad' | 'robinhood' | 'robinhood-testnet' | 'avalanche-c' | 'avalanche-c-atomic' | 'avalanche-p' | 'binance' | 'celo' | 'fantom' | 'harmony' | 'moonriver' | 'okc' | 'viction' | 'core' | 'sonic' | 'plasma' | 'katana' | 'hyperevm' | 'tempo' | 'pharos' | 'agoric' | 'akash' | 'axelar' | 'band-protocol' | 'bitsong' | 'canto' | 'chihuahua' | 'comdex' | 'coreum' | 'cosmos' | 'crescent' | 'cronos' | 'cudos' | 'desmos' | 'dydx' | 'evmos' | 'fetch-ai' | 'gravity-bridge' | 'injective' | 'irisnet' | 'juno' | 'kava' | 'ki-network' | 'mars-protocol' | 'nym' | 'okex-chain' | 'onomy' | 'osmosis' | 'persistence' | 'quicksilver' | 'regen' | 'secret' | 'sentinel' | 'sommelier' | 'stafi' | 'stargaze' | 'stride' | 'teritori' | 'tgrade' | 'umee' | 'sei' | 'mantra' | 'celestia' | 'saga' | 'zetachain' | 'dymension' | 'humansai' | 'neutron' | 'polkadot' | 'kusama' | 'westend' | 'bittensor' | 'aptos' | 'binancebeacon' | 'cardano' | 'near' | 'solana' | 'solana-devnet' | 'stellar' | 'stellar-testnet' | 'sui' | 'tezos' | 'tron' | 'ton' | 'ton-testnet' | 'hyperliquid', required — Network the underlying strategy is on
        - `name` string, required — Display name of the underlying strategy
        - `yieldId` string — Yield ID if this strategy is supported as a separate yield opportunity
        - `providerId` string — Provider ID for this strategy (e.g., morpho, aave, lido)
        - `allocation` string, required — Amount allocated to this strategy in input token units
        - `allocationUsd` string, nullable, required — USD value of the allocation
        - `weight` number, required — Current weight of this strategy as a percentage (0-100)
        - `targetWeight` number, required — Target weight of this strategy as a percentage (0-100)
        - `rewardRate` AllocationRewardRateDto, required
          - `total` number, required — Total reward rate
          - `rateType` string, required — Whether this rate is APR or APY
        - `tvl` string, nullable, required — Total value locked in the underlying strategy in input token units
        - `tvlUsd` string, nullable, required — Total value locked in USD for the underlying strategy
        - `maxCapacity` string, nullable, required — Maximum capacity of the underlying strategy
        - `remainingCapacity` string, nullable, required — Remaining capacity in the underlying strategy
    - `investmentSchedule` InvestmentScheduleDto
      - `timezone` string, required — Issuer operating timezone (IANA); cutoff times and business days resolve against this
      - `subscription` SideScheduleDto, required
        - `paths` SchedulePathDto[], required — Ways to act on this side (e.g. instant + standard); paths[0] is the default
          - `kind` 'instant' | 'standard', required — instant = atomic same-tx, liquidity/limit-bounded; standard = windowed / off-chain settled
          - `cadence` 'continuous' | 'daily_cutoff' | 'periodic' | 'scheduled', required — How the path recurs
          - `status` 'open' | 'closed' | 'settling', required — Live status, refreshed by cron / on-chain read
          - `businessDaysOnly` boolean — false/omitted = 24/7/365 (instant DeFi paths); true = market days only
          - `cutoffTime` string — For daily_cutoff: local cutoff time orders must be in by, e.g. "16:00"
          - `currentWindow` WindowBoundsDto
            - `opensAt` string, required — Window open time (ISO 8601)
            - `closesAt` string, required — Window close / cutoff time (ISO 8601); orders after this roll to nextWindow
            - `source` 'onchain' | 'api' | 'config' — Provenance of this window (on-chain read, issuer API, or hardcoded config)
          - `nextWindow` WindowBoundsDto
            - `opensAt` string, required — Window open time (ISO 8601)
            - `closesAt` string, required — Window close / cutoff time (ISO 8601); orders after this roll to nextWindow
            - `source` 'onchain' | 'api' | 'config' — Provenance of this window (on-chain read, issuer API, or hardcoded config)
          - `settlement` SettlementSpecDto, required
            - `type` 'atomic' | 'next_business_day' | 'cohort' | 'cooldown', required — How the order settles: atomic (same tx), next_business_day, cohort (batched off-chain), or cooldown (fixed delay)
            - `marketDays` number — Settlement horizon in market days (T+N) when applicable
            - `estimatedDuration` TimePeriodDto
              - …
            - `estimatedSettlementAt` string — Concrete settlement date when known (ISO 8601, cohort/scheduled)
            - `claimRequired` boolean — User must submit a separate on-chain claim to receive settled funds (ERC-7540)
            - `instantPortion` number — Split delivery: fraction (0-1) delivered instantly; the rest is deferred
            - `deferredDeliveryAt` string — Concrete date the deferred portion is delivered (ISO 8601)
          - `accrual` AccrualSpecDto, required
            - `startsAt` 'immediate' | 'next_business_day' | 'on_cycle_start' | 'on_settlement', required — When earning starts (subscription) / earn-through boundary (redemption): immediate, next_business_day, on_cycle_start, or on_settlement
            - `startsAtDate` string — Concrete accrual start date when known (ISO 8601, cron-filled)
            - `minimumHold` TimePeriodDto
              - …
          - `limits` PathLimitsDto
            - `individualPer24h` string — Per-investor cap per rolling 24h
            - `globalPer24h` string — Protocol-wide cap per rolling 24h
            - `globalRemainingPer24h` string — Live remaining protocol-wide capacity in the current rolling 24h window (globalPer24h minus used); computed at request time
            - `maxFractionOfNav` number — On-demand pool cap as a fraction of NAV (0-1)
            - `liquidityBounded` boolean — Path depends on an on-chain liquidity buffer; live depth lives in state.liquidityState
            - `availableLiquidity` string — Live liquidity available to this path right now, in the payout token; computed at request time
            - `minimumAmount` string — Per-path minimum when it differs from mechanics.entryLimits
          - `fee` PathFeeDto
            - `rate` number, required — Fee charged on this path as a decimal fraction of the amount (0.0007 = 0.07%)
      - `redemption` SideScheduleDto, required
        - `paths` SchedulePathDto[], required — Ways to act on this side (e.g. instant + standard); paths[0] is the default
          - `kind` 'instant' | 'standard', required — instant = atomic same-tx, liquidity/limit-bounded; standard = windowed / off-chain settled
          - `cadence` 'continuous' | 'daily_cutoff' | 'periodic' | 'scheduled', required — How the path recurs
          - `status` 'open' | 'closed' | 'settling', required — Live status, refreshed by cron / on-chain read
          - `businessDaysOnly` boolean — false/omitted = 24/7/365 (instant DeFi paths); true = market days only
          - `cutoffTime` string — For daily_cutoff: local cutoff time orders must be in by, e.g. "16:00"
          - `currentWindow` WindowBoundsDto
            - `opensAt` string, required — Window open time (ISO 8601)
            - `closesAt` string, required — Window close / cutoff time (ISO 8601); orders after this roll to nextWindow
            - `source` 'onchain' | 'api' | 'config' — Provenance of this window (on-chain read, issuer API, or hardcoded config)
          - `nextWindow` WindowBoundsDto
            - `opensAt` string, required — Window open time (ISO 8601)
            - `closesAt` string, required — Window close / cutoff time (ISO 8601); orders after this roll to nextWindow
            - `source` 'onchain' | 'api' | 'config' — Provenance of this window (on-chain read, issuer API, or hardcoded config)
          - `settlement` SettlementSpecDto, required
            - `type` 'atomic' | 'next_business_day' | 'cohort' | 'cooldown', required — How the order settles: atomic (same tx), next_business_day, cohort (batched off-chain), or cooldown (fixed delay)
            - `marketDays` number — Settlement horizon in market days (T+N) when applicable
            - `estimatedDuration` TimePeriodDto
              - …
            - `estimatedSettlementAt` string — Concrete settlement date when known (ISO 8601, cohort/scheduled)
            - `claimRequired` boolean — User must submit a separate on-chain claim to receive settled funds (ERC-7540)
            - `instantPortion` number — Split delivery: fraction (0-1) delivered instantly; the rest is deferred
            - `deferredDeliveryAt` string — Concrete date the deferred portion is delivered (ISO 8601)
          - `accrual` AccrualSpecDto, required
            - `startsAt` 'immediate' | 'next_business_day' | 'on_cycle_start' | 'on_settlement', required — When earning starts (subscription) / earn-through boundary (redemption): immediate, next_business_day, on_cycle_start, or on_settlement
            - `startsAtDate` string — Concrete accrual start date when known (ISO 8601, cron-filled)
            - `minimumHold` TimePeriodDto
              - …
          - `limits` PathLimitsDto
            - `individualPer24h` string — Per-investor cap per rolling 24h
            - `globalPer24h` string — Protocol-wide cap per rolling 24h
            - `globalRemainingPer24h` string — Live remaining protocol-wide capacity in the current rolling 24h window (globalPer24h minus used); computed at request time
            - `maxFractionOfNav` number — On-demand pool cap as a fraction of NAV (0-1)
            - `liquidityBounded` boolean — Path depends on an on-chain liquidity buffer; live depth lives in state.liquidityState
            - `availableLiquidity` string — Live liquidity available to this path right now, in the payout token; computed at request time
            - `minimumAmount` string — Per-path minimum when it differs from mechanics.entryLimits
          - `fee` PathFeeDto
            - `rate` number, required — Fee charged on this path as a decimal fraction of the amount (0.0007 = 0.07%)
      - `notes` string — Free-form footnotes from the issuer
    - `executionContracts` ExecutionContractsDto
      - `enter` string[] — Contract addresses that may appear as tx.to for enter transactions
      - `exit` string[] — Contract addresses that may appear as tx.to for exit transactions

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `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)
