Cash-in trade
/perp/isolated/trade/cash-inPrivateMove amount sats from a running trade to your balance. Funds are first taken from the trade's P&L (if any), valued at the Mark price, then from its margin. Cashing in increases the trade's leverage, so the whole margin isn't available since leverage is bounded. Returns the updated trade.
Permissions: futures:isolated:write
application/json- body
id*stringTrade ID
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidamount*integerAmount of margin to remove
0 < valueinstrument*stringInstrument of the market
"inverse_perp""quanto_perp"pair*stringPair of the market
OK
application/json- response
A running trade
id*stringInternal trade ID
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidinstrument*stringInstrument of the market
"inverse_perp""quanto_perp"pair*stringPair of the market
type*stringTrade type
"market""limit"side*stringTrade side
"buy""sell"openingFee*integerFee paid when opening the position
closingFee*integerFee for closing the position (0 while running)
maintenanceMargin*integerMinimum margin required to keep the position open
quantity*numberNumber of contracts in the trade
entryNotionalUsd*numberNotional value at entry (in USD)
exitNotionalUsd*|Notional value at exit (in USD), null until the trade is closed
margin*integerCurrent margin for the position
leverage*numberLeverage multiplier applied to the position
price*numberPrice when the trade was filled (in USD)
liquidation*numberPrice at which the position will be liquidated (in USD)
stoploss*numberStop loss price level (0 if not set, in USD)
takeprofit*numberTake profit price level (0 if not set, in USD)
stoplossTrailingDistance*numberTrailing stop distance as a fraction of price (0 if not trailing)
exitPrice*|Price when exiting the position (0 while running, in USD)
pl*integerUnrealized profit and loss of the running position, valued at the Mark price
createdAt*stringTimestamp when the trade was created
date-timefilledAt*stringTimestamp when the trade was filled in the market
date-timeclosedAt*nullTimestamp when the trade was closed (null while running)
entryPrice*numberPrice when entering the position (in USD)
entryMargin*integerInitial margin when entering the position
entryBtcPrice*numberBitcoin price the sats amounts of the trade are valued at (in USD)
open*booleanWhether the trade is open (not yet filled)
running*booleanWhether the trade is running (filled but not closed)
canceled*booleanWhether the trade was canceled before being filled
closed*booleanWhether the trade is closed (position exited)
sumFundingFees*integerTotal funding fees accumulated for the position
sumQuantoAdjustmentFees*integerTotal quanto adjustment fees accumulated for the position
sumCashInPl*integerTotal amount cashed in from PL over the trade lifetime
sumCashInMargin*integerTotal amount cashed in from margin over the trade lifetime
clientId*|Optional custom data field (max 64 characters)
label*|Optional free label (max 64 characters) to group or tag trades, e.g. by strategy. Not unique.
nullimport { createHttpClient } from '@ln-markets/sdk/rest/v3'
const client = createHttpClient({
key: 'your-key',
secret: 'your-secret',
passphrase: 'your-passphrase',
})
const result = await client.perp.isolated.cashIn({
id: 'd0b9f9a0-4f6e-4a5a-8b7a-7f0f5f9a8a1e',
amount: 100,
instrument: 'inverse_perp',
pair: 'btc_usd'
}){
"id": "d0b9f9a0-4f6e-4a5a-8b7a-7f0f5f9a8a1e",
"instrument": "inverse_perp",
"pair": "btc_usd",
"type": "market",
"side": "buy",
"openingFee": 10,
"closingFee": 0,
"maintenanceMargin": 1000,
"quantity": 100,
"entryNotionalUsd": 100,
"exitNotionalUsd": null,
"margin": 1000,
"leverage": 10,
"price": 20000,
"liquidation": 18000,
"stoploss": 10,
"takeprofit": 10,
"stoplossTrailingDistance": 0,
"exitPrice": 0,
"pl": 2,
"createdAt": "2025-09-01T15:04:21.129Z",
"filledAt": "2025-09-01T15:04:21.129Z",
"closedAt": null,
"entryPrice": 20000,
"entryMargin": 1000,
"entryBtcPrice": 100000,
"open": false,
"running": true,
"canceled": false,
"closed": false,
"sumFundingFees": 10,
"sumQuantoAdjustmentFees": 0,
"sumCashInPl": 0,
"sumCashInMargin": 0,
"clientId": "test-client-id-123",
"label": "strategy-a"
}Cancel trade POST
Cancel an open trade (a limit order not filled yet). Its margin and maintenance margin go back to your balance. Returns the canceled trade.
Close trade POST
Close a running trade at the bid (long) or ask (short) price for its size. Its margin plus P&L, and the maintenance margin left after the closing fee, are…