# Get an Earn Operation

> Coming soon, upon request — this feature is turned on for your tenant by the Aurea team. [Contact us](https://www.aureahub.com/contact)

One of the user's operations, brought up to date first.

## Overview

- A `broadcast` operation is read from its chain and completed or failed when its receipts say so; one whose signatures never came in time is `expired`.
- The bridge route adds `bridge.messageId` — and `bridge.destination` (`chainId`, `txHash`, `blockNumber`), where the message was delivered on the product's chain, once Aurea has found it ([Routes and Chains](https://docs.aureahub.com/docs/guide-earn.md)); a withdrawal paid later adds `redemption` (`state`, `shares`, `assetsExpected`, `assetsPaid`, `requestId`, `paidTxHash`, `queuedAt`, `paidAt`, `updatedAt`) — see [Withdrawals and Redemptions](https://docs.aureahub.com/docs/guide-earn.md).
- `404` `EARN_OPERATION_NOT_FOUND` for an operation that is not the user's.

## Endpoint

### `GET /v1/earn/operations/{operationId}`

Authentication: bearer token required.

One of the user's Earn operations, brought up to date.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `operationId` | string | yes | `operationId` of the operation |

**Responses**

`200` Redemption Queued

```json
{
  "operationId": "c41e…",
  "productId": "stablecoin-savings-usdc",
  "kind": "withdrawal",
  "route": "direct",
  "signer": "client",
  "state": "completed",
  "amount": "250000000",
  "withdrawAll": false,
  "txHashes": ["0x…"],
  "redemption": {
    "state": "queued",
    "shares": "240129771",
    "assetsExpected": "250000000",
    "assetsPaid": null,
    "requestId": "1842",
    "paidTxHash": null,
    "queuedAt": "2026-10-05T12:01:00.000Z",
    "paidAt": null,
    "updatedAt": "2026-10-05T12:05:00.000Z"
  },
  "…": "…"
}
```

---

Web version: https://docs.aureahub.com/#earn-operation-get
