---
title: "GET /private/move_positions"
method: GET
path: "/private/move_positions"
tags: ["Trading", "Matching Engine", "Private"]
---

# GET /private/move_positions

`GET /private/move_positions`

Moves positions from a source subaccount to a target subaccount. This operation transfers open positions between subaccounts, which is useful for rebalancing or reorganizing trading activities.

Positions can be filtered by currency. The operation creates trades to transfer positions, which may affect P&L and margin calculations.

**Note - This method has distinct API rate limiting requirements:** 
- Sustained rate: 6 requests/minute
- Weekly limit: 100 move_position uses per week (168 hours)

For more information, see [Rate Limits](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).

**Important:** In rare cases, the request may return an `internal_server_error`. This does not necessarily mean the operation failed entirely. Part or all of the position transfer might have still been processed successfully. Check the positions in both accounts to verify the transfer status.

**📖 Related Article:** [Moving Positions](https://docs.deribit.com/articles/moving-positions-api)

**Scope:** `trade:read_write`

[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fmove_positions)

## Query parameters

- `currency` 'BTC' | 'ETH' | 'USDC' | 'USDT' | 'EURR' — Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
- `source_uid` integer, required
- `target_uid` integer, required
- `trades` object[], required
  - `instrument_name` string — Unique instrument identifier
  - `price` number — Price for trade - if not provided average price of the position is used
  - `amount` number — It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. Amount can't exceed position size.

## Response `200`

Success response

- PrivatePositionMoveResponse
  - `jsonrpc` '2.0', required — The JSON-RPC version (2.0)
  - `id` integer — The id that was sent in the request
  - `result` PositionMove, required
    - `trades` PositionMoveTrade[], required
      - `source_uid` integer — Trade source uid
      - `target_uid` integer — Trade target uid
      - `instrument_name` string, required — Unique instrument identifier
      - `direction` 'buy' | 'sell', required — Direction: `buy`, or `sell`
      - `price` number, required — Price in base currency
      - `amount` number, required — Trade amount. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.

---

[API](https://skmtc.net/deribit/apis/deribit-api.md) · [All operations](https://skmtc.net/deribit/apis/deribit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deribit/deribit-api/versions/78a0783dbfcc/schema)
