---
title: "Get an Operation"
method: GET
path: "/strategies/operations/{operation_id}"
tags: ["Trade Strategy"]
---

# Get an Operation

`GET /strategies/operations/{operation_id}`

Retrieves a single Operation by its `id`. Use this to poll until `status` is terminal (`settled`, `skipped`, or `failed`) — or subscribe to webhooks and skip the polling.

## Path parameters

- `operation_id` string, uuid, required

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Response `200`

The requested Operation.

- TradeStrategyOperationResponse
  - `message` object
    - `id` string, uuid — Unique identifier (UUID v4) for the Operation.
    - `strategy_id` string, uuid — Strategy the Operation runs under.
    - `request_id` string, uuid — Platform's idempotency key for this Operation (the `X-REQUEST-ID` sent at submission).
    - `type` 'enrollment' | 'top_up' | 'partial_sell' | 'rebalance' | 'liquidation' — Operation kind.
    - `status` 'validating' | 'pricing' | 'settling' | 'settled' | 'skipped' | 'failed' — Lifecycle status. `validating` / `pricing` / `settling` are non-terminal; `settled` / `skipped` / `failed` are terminal.
    - `status_reason` string — Set on terminal statuses to explain the outcome. Possible values: `no_executions`, `all_skipped`, `all_rejected`, `partial_success`. Empty on non-terminal and on clean `settled`.
    - `allocations` object[] — Target weights for this Operation. Present for enrollment / top_up / partial_sell / rebalance; empty for liquidation.
      - `underlying_currency` string, required — Underlying asset code (e.g., BTC, ETH).
      - `weight` string, required — Target weight in the allocation. Decimal string in [0, 1]. Weights across an allocation set must sum to exactly 1.0; a "0" weight in Rebalance means "fully exit this asset".
    - `created_at` string, date-time — When the Operation was created.
    - `updated_at` string, date-time — When the Operation was last updated.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Operation doesn't exist or belongs to a different platform.
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
