> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/earn-beta/get-list-of-earn-opportunities",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Get list of earn opportunities

> Get list of earn opportunities (vaults).

**Note:** This endpoint is currently in beta and might be subject to changes.




## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml get /earn/opportunities
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /earn/opportunities:
    get:
      tags:
        - Earn (Beta)
      summary: Get list of earn opportunities
      description: >
        Get list of earn opportunities (vaults).


        **Note:** This endpoint is currently in beta and might be subject to
        changes.
      operationId: getEarnOpportunities
      parameters:
        - name: pageCursor
          in: query
          required: false
          description: Cursor for the next or previous page of results.
          schema:
            type: string
        - name: pageSize
          in: query
          required: false
          description: Number of items per page.
          schema:
            type: integer
            format: int32
            default: 100
            minimum: 1
            maximum: 100
        - name: sortBy
          in: query
          required: false
          description: Field to sort results by.
          schema:
            type: string
        - name: order
          in: query
          required: false
          description: Sort order (ASC or DESC).
          schema:
            default: DESC
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOpportunitiesResponse'
        '403':
          description: >-
            Forbidden: insufficient permissions, disabled feature, or restricted
            access.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: 'Not found: requested resource does not exist.'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '429':
          description: 'Rate limit exceeded: slow down and retry later.'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '500':
          description: Internal error while processing the request.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response:
            Promise<FireblocksResponse<GetOpportunitiesResponse>> =
            fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<GetOpportunitiesResponse>> response =
            fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize,
            sortBy, order);
        - lang: Python
          source: >-
            response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,
            page_size, sort_by, order);
components:
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs
  schemas:
    GetOpportunitiesResponse:
      type: object
      properties:
        data:
          type: array
          description: Page of lending opportunities for this query.
          items:
            $ref: '#/components/schemas/Opportunity'
          example:
            - id: opp-usdc-eth-001
              providerId: MORPHO
              type: VAULT
              chainId: '1'
              address: '0x1234567890123456789012345678901234567890'
              name: USDC Core
              symbol: mUSDC
              principalAsset:
                address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                symbol: USDC
                decimals: 6
                assetId: USDC_ETH
              positionAsset:
                address: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'
                symbol: mUSDC
                decimals: 18
                assetId: MORPHO_USDC_VAULT_ETH
              totalAssets: '50000000.0'
              liquidity: '1200000.0'
              apy:
                native: 4.25
                gross: 4.4
                net: 4.05
              performanceFee: '0.10'
              exposure: []
              managementFee: '0.01'
        next:
          type: string
          description: Opaque cursor for the next page; empty when there is no next page.
          example: ''
        prev:
          type: string
          description: >-
            Opaque cursor for the previous page; empty when there is no previous
            page.
          example: ''
        total:
          type: integer
          format: int32
          description: Total number of items matching the query.
          example: 1
      required:
        - data
        - total
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    Opportunity:
      type: object
      properties:
        id:
          type: string
          description: Unique opportunity identifier.
          example: opp-usdc-eth-001
        providerId:
          type: string
          description: Lending protocol (`MORPHO` or `AAVE`).
          example: MORPHO
          enum:
            - MORPHO
            - AAVE
        type:
          type: string
          description: Opportunity kind — vault or market.
          example: VAULT
          enum:
            - VAULT
            - MARKET
        chainId:
          type: string
          description: Chain identifier as a string (e.g. "1" for Ethereum mainnet).
          example: '1'
        address:
          type: string
          description: Primary contract address for the vault or market.
          example: '0x1234567890123456789012345678901234567890'
        name:
          type: string
          description: Display name of the opportunity.
          example: USDC Core
        symbol:
          type: string
          description: Symbol or share token ticker for the position asset.
          example: mUSDC
        principalAsset:
          description: Underlying token the user deposits (principal).
          allOf:
            - $ref: '#/components/schemas/EarnAsset'
        positionAsset:
          description: >-
            Token representing the user’s position in the protocol (e.g. vault
            share).
          allOf:
            - $ref: '#/components/schemas/EarnAsset'
        totalAssets:
          type: string
          description: Human-readable total value locked / assets in the opportunity.
          example: '50000000.0'
        liquidity:
          type: string
          description: Human-readable available liquidity.
          example: '1200000.0'
        apy:
          description: APY breakdown; values are percentages (e.g. 4.25 means 4.25%).
          allOf:
            - $ref: '#/components/schemas/Apy'
        performanceFee:
          type: string
          description: Performance fee as a human-readable decimal string.
          example: '0.10'
        managementFee:
          type: string
          description: Management fee as a human-readable decimal string.
          example: '0.01'
        exposure:
          type: array
          description: Optional per-asset exposure breakdown.
          minItems: 0
          maxItems: 10
          items:
            $ref: '#/components/schemas/Exposure'
          example: []
    EarnAsset:
      type: object
      properties:
        address:
          type: string
          description: Contract address of the token on-chain.
          example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
        symbol:
          type: string
          description: Human-readable ticker (e.g. USDC).
          example: USDC
        decimals:
          type: integer
          format: int32
          description: Token decimals used when interpreting on-chain amounts.
          example: 6
        assetId:
          type: string
          description: Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD).
          example: USDC_ETH
    Apy:
      type: object
      properties:
        native:
          type: number
          format: double
          description: >-
            APY in native format (before fees), as a percentage (e.g. 4.25 means
            4.25%, not 0.0425).
          example: 4.25
        gross:
          type: number
          format: double
          description: >-
            Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%, not
            0.0425).
          example: 4.4
        net:
          type: number
          format: double
          description: >-
            Net APY after fees, as a percentage (e.g. 4.25 means 4.25%, not
            0.0425).
          example: 4.05
    Exposure:
      type: object
      properties:
        assetAddress:
          type: string
          description: On-chain address of the exposure asset.
          example: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
        symbol:
          type: string
          description: Ticker for the exposure asset.
          example: WETH
        amount:
          type: string
          description: >-
            Human-readable decimal string (raw on-chain value scaled by
            10^decimals).
          example: '125.5'
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````