---
title: "Get list of earn positions"
method: GET
path: "/earn/positions"
tags: ["Earn"]
---

# Get list of earn positions

`GET /earn/positions`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/earn/positions`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/earn/positions/get.ts> (a function with typed inputs; its response is checked against the schema)

Get list of earn positions for accounts tracked for this workspace.
Optional query parameters filter by chain, provider, and pagination.

## Query parameters

- `chainId` integer
- `providerId` 'MORPHO' | 'AAVE'
- `pageCursor` string
- `pageSize` integer
- `sortBy` string
- `order` 'ASC' | 'DESC'

## Response `200`

OK

- GetPositionsResponse
  - `data` Position2[], required: Page of user lending positions for this query.
    - `id` string, required: Position UUID.
    - `status` 'ACTIVE' | 'INACTIVE', required: Lifecycle status of the position.
    - `inFlight` boolean, required: True while an action is in progress for this position.
    - `positionType` 'LEND' | 'BORROW', required: Whether the position is lend- or borrow-side.
    - `vaultAccountId` string, required: Fireblocks vault account holding the position.
    - `opportunityId` string, required: Opportunity / vault or market identifier.
    - `chainId` string, required: Chain identifier as a string (e.g. "1").
    - `providerId` 'MORPHO' | 'AAVE', required: Lending protocol.
    - `origin` 'NATIVE' | 'EXTERNAL', required: Whether the position was opened natively in Fireblocks or imported externally.
    - `principalAssetId` string, required: Fireblocks asset id for the principal (underlying) asset.
    - `positionAssetId` string, required: Fireblocks asset id for the position / share token.
    - `principalBalance` string, required: Human-readable principal balance.
    - `positionBalance` string, required: Human-readable position token balance.
    - `createdAt` string, required: Creation time (ISO-8601).
    - `updatedAt` string, required: Last update time (ISO-8601).
    - `lastSyncedAt` string: Last successful on-chain sync time (ISO-8601).
    - `lastModifiedAt` string: Timestamp of the last user-triggered action on this position (ISO-8601). Empty if the user has never interacted with it.
    - `availableActions` string[], required: Actions the API allows next for this position.
    - `yield` string: Accrued yield in principal token units (decimal string). Only present for Morpho positions.
  - `next` string: Opaque cursor for the next page; empty when there is no next page.
  - `prev` string: Opaque cursor for the previous page; empty when there is no previous page.
  - `total` integer, required: Total number of items matching the query.

## Other responses

- `403`: Forbidden: insufficient permissions, disabled feature, or restricted access.
- `404`: Not found: requested resource does not exist.
- `429`: Rate limit exceeded: slow down and retry later.
- `500`: Internal error while processing the request.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
