---
title: "Get Intent"
method: GET
path: "/intent-operation/{id}"
tags: ["Intents"]
---

# Get Intent

`GET /intent-operation/{id}`

Retrieves the status of an intent along with per-claim progress across chains.

## Path parameters

- `id` string, required — Unique identifier of the intent operation

## Query parameters

- `full` boolean — Whether to include intent operation details

## Headers

- `x-api-version` '2026-01.alps', required
- `x-api-key` string, required

## Response `200`

OK

- object — Successfully retrieved intent operation status
  - `status` 'PENDING' | 'COMPLETED' | 'FAILED', required — Overall intent status: PENDING, COMPLETED, or FAILED
  - `details` object — Extended intent details, returned only when `full=true`
    - `id` string, required — Intent id — pass to `GET /intents/:id`
    - `nonce` string, required — Intent nonce (hex)
    - `recipient` string, required — Destination recipient account
    - `createdAt` number, required — Intent creation time in unix seconds
    - `latencyMs` number, nullable, required — Time from creation to the latest leg landing, in ms. Null until any leg lands.
    - `settlementLayer` 'INTENT_EXECUTOR' | 'SAME_CHAIN' | 'ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP', nullable, required — Settlement layer; null if the routing strategy is unrecognized
    - `source` object[], required — Source (claim) legs
      - `chain` number, required — Chain ID
      - `tokens` object[], required — All tokens moved on this leg
        - `token` string, required — Token address
        - `amount` string, required — Token amount in base units
      - `txHash` string — Transaction hash (present once the leg lands)
      - `timestamp` number — Block timestamp in unix seconds (present once landed)
      - `status` 'PENDING' | 'COMPLETED' | 'FAILED', required — Leg status
    - `destination` object, nullable, required — Destination (fill) leg; null before a fill is dispatched
      - `chain` number, required — Chain ID
      - `tokens` object[], required — All tokens moved on this leg
        - `token` string, required — Token address
        - `amount` string, required — Token amount in base units
      - `txHash` string — Transaction hash (present once the leg lands)
      - `timestamp` number — Block timestamp in unix seconds (present once landed)
      - `status` 'PENDING' | 'COMPLETED' | 'FAILED', required — Leg status
    - `executions` object[], required — Calls the intent executes — preClaim ops on their origin chain and destination ops on the destination chain. The signed intended calls; no per-call result is recorded. Empty for token-only intents with no custom calls.
      - `chain` number, required — Chain ID the call executes on
      - `phase` 'PRE_CLAIM' | 'DESTINATION', required — PRE_CLAIM runs on the origin chain before funds are claimed; DESTINATION runs on the destination chain after funds are delivered.
      - `to` string, required — Call target address
      - `value` string, required — Native value sent with the call, in wei (base units)
      - `data` string, required — Encoded calldata
    - `cost` object, required — Cost summary from the recorded fee sponsorship. Amounts are raw base units; omitted when no sponsorship row exists.
      - `sponsored` boolean, required — Whether gas/fees were sponsored for this intent
      - `sponsoredValue` string — Sponsored value in fee-token base units
      - `protocolFee` string — Protocol fee in fee-token base units
  - `claims` object[], required — Per-source-chain claims
    - `chainId` number, required — Source chain ID
    - `status` 'PENDING' | 'COMPLETED' | 'FAILED', required — Claim status
    - `claimTimestamp` number — Block timestamp of the claim in unix seconds
    - `claimTransactionHash` string — Claim transaction hash
  - `destinationChainId` number — Destination (fill) chain ID
  - `fillTimestamp` number — Block timestamp of the fill in unix seconds
  - `fillTransactionHash` string — Fill transaction hash
  - `userAddress` string, required — Account address

## Other responses

- `400` — Invalid intent ID
- `403` — API key scope denied
- `404` — Intent ID not found
- `500` — Server error

---

[API](https://skmtc.net/rhinestonewtf/apis/rhinestone-orchestrator-api.md) · [All operations](https://skmtc.net/rhinestonewtf/apis/rhinestone-orchestrator-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhinestonewtf/rhinestone-orchestrator-api/versions/3656a04f8c42/schema)
