---
title: "Get a single earn lending action"
method: GET
path: "/earn/actions/{id}"
tags: ["Earn"]
---

# Get a single earn lending action

`GET /earn/actions/{id}`

## Request

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

Returns one lending action by its action sequence id (tenant-scoped).

## Path parameters

- `id` string, required

## Response `200`

OK

- GetActionResponse: Single lending action (intent plus per-step execution rows).
  - `id` string, required: Action sequence id (UUID).
  - `vaultAccountId` string, required: Fireblocks vault account that executed the action.
  - `userId` string, required: User who initiated the action.
  - `status` string, required: Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED).
  - `providerId` 'MORPHO' | 'AAVE', required: Lending protocol identifier.
  - `actionType` 'DEPOSIT' | 'WITHDRAW', required: Whether this action is a deposit or withdraw flow.
  - `opportunityId` string, required: Target lending opportunity identifier.
  - `positionId` string: Position id in the system when applicable.
  - `amount` string, required: Human-readable amount for the action.
  - `createdAt` string, required: Creation time (ISO-8601).
  - `updatedAt` string, required: Last update time (ISO-8601).
  - `records` ActionRecord[], required: Ordered execution steps for this action.
    - `actionType` 'APPROVE' | 'DEPOSIT' | 'WITHDRAW', required: Kind of step in the lending sequence.
    - `status` 'NOT_STARTED' | 'PROCESSING' | 'PENDING_SIGNATURE' | 'BROADCASTING' | 'CONFIRMING' | 'COMPLETED' | 'FAILED' | 'CANCELED', required: Step lifecycle status.
    - `txId` string: Fireblocks transaction id when applicable (unset when NOT_STARTED).
    - `txHash` string: On-chain transaction hash when applicable (unset when NOT_STARTED).
    - `errorMessage` string: Error detail when the step failed.
    - `updatedAt` string, required: Last update time (ISO-8601); may be empty when status is NOT_STARTED.

## Other responses

- `403`: Forbidden: insufficient permissions, disabled feature, or restricted access.
- `404`: Not found: action does not exist or is not visible for this tenant.
- `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)
