---
title: "Find my swaps (recover a lost orderId)"
method: GET
path: "/agent/swap/orders"
tags: ["agent", "swap"]
---

# Find my swaps (recover a lost orderId)

`GET /agent/swap/orders`

## Request

- Base URL: `https://xmrtousdc.xyz/api/v1`
- URL: `https://xmrtousdc.xyz/api/v1/agent/swap/orders`
- Auth: none declared

Give exactly one of idempotencyKey or sessionId (x-requires-one-of). idempotencyKey: the idempotency-key used on create; returns that order (0 or 1 entries, live state), whether it was created over REST or MCP. An unknown key returns orders: [] and data.note "No order is recorded under this key." (that does not mean no order exists elsewhere). sessionId: data.sessionId from create; lists that session's orders, newest first. Addresses are omitted except the destination's last 6 characters; the response reveals no more than the session listing already does. Anyone who knows a key or a sessionId can list its orders, so use random values. MCP: list_swaps.

## Query parameters

- `idempotencyKey` string
- `sessionId` string, uuid

## Response `200`

Matching orders

- SwapListResponse
  - `ok` boolean
  - `operation` 'swap.list'
  - `data` object
    - `lookup` 'idempotencyKey' | 'sessionId'
    - `orders` SwapListItem[]
      - `orderId` string
      - `status` string, nullable: Raw provider status.
      - `state` string, nullable: From the provider's order list; can lag behind the status endpoint.
      - `terminal` boolean, nullable
      - `createdAt` string, date-time, nullable
      - `send` object
        - `amount` string, nullable
        - `symbol` string, nullable
      - `receiveEstimate` object
        - `amount` string, nullable
        - `symbol` string, nullable
      - `destinationLast6` string, nullable: Only the destination's last 6 characters.
      - `statusUrl` string, nullable
      - `trackUrl` string, nullable
    - `payable` false: A list never offers a payment: read the order's status (payable) before showing a deposit.
    - `payableReason` 'replay_check_status'
    - `statusSource` string: provider_order (by key, live) or provider_order_list (by session; can lag).
    - `idempotencyState` string, nullable: By key: the state of the idempotency record (for example pending, done, blocked).
    - `note` string: By key with no order: "No order is recorded under this key." (or why the order is still unknown); by session: statuses can lag.

## Other responses

- `400`: invalid_request (details.field, details.reason): both or neither given (field sessionId, reason sessionId_xor_idempotencyKey; the same on MCP list_swaps), a sessionId that is not a UUID (sessionId, invalid_uuid), or an idempotencyKey that does not match [A-Za-z0-9:_-]{8,128} (idempotencyKey, invalid_format).
- `429`: Rate limited. Honor Retry-After.
- `502`: upstream_* provider error; retry later.

---

[API](https://skmtc.dev/xmrtousdc/apis/swapper-agent-api.md) · [All operations](https://skmtc.dev/xmrtousdc/apis/swapper-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/xmrtousdc/apis/swapper-agent-api/revisions/9f4252126907?raw)
