Skip to main content
POST
/
positions
/
increase
cURL
curl --request POST \
  --url https://lite-api.jup.ag/perps/v1/positions/increase \
  --header 'Content-Type: application/json' \
  --data '{
  "collateralMint": "So11111111111111111111111111111111111111112",
  "collateralTokenDelta": "1000000000",
  "inputMint": "So11111111111111111111111111111111111111112",
  "leverage": "10",
  "marketMint": "So11111111111111111111111111111111111111112",
  "maxSlippageBps": "100",
  "includeSerializedTx": true,
  "side": "long",
  "sizeUsdDelta": "10000000",
  "transactionType": "mixed",
  "tpsl": [
    {
      "desiredMint": "So11111111111111111111111111111111111111112",
      "triggerPrice": "20000000",
      "requestType": "tp"
    }
  ],
  "walletAddress": "<string>"
}'
{
  "positionPubkey": "<string>",
  "positionRequestPubkey": "<string>",
  "tpslRequests": [
    {
      "estimatedPnlUsd": "<string>",
      "estimatedPnlPercent": "<string>",
      "hasProfit": true,
      "requestType": "tp",
      "positionRequestPubkey": "<string>"
    }
  ],
  "quote": {
    "collateralLessThanFees": true,
    "entryPriceUsd": "2.99",
    "leverage": "2.99",
    "liquidationPriceUsd": "13.24",
    "openFeeUsd": "0.0063",
    "outstandingBorrowFeeUsd": "0.1000",
    "positionCollateralSizeUsd": "1124.45",
    "positionSizeTokenAmount": "112445000",
    "positionSizeUsd": "1124.45",
    "priceImpactFeeBps": "1.3301",
    "priceImpactFeeUsd": "1.3301",
    "quoteOutAmount": "<string>",
    "quotePriceSlippagePct": "<string>",
    "quoteSlippageBps": "<string>",
    "side": "long",
    "sizeTokenDelta": "14420000",
    "expectedSizeUsdDelta": "112445",
    "expectedSizeUsdDeltaDiffPct": "14.45",
    "sizeUsdDelta": "1124.45",
    "sizeUsdDeltaRaw": "112445"
  },
  "requireKeeperSignature": true,
  "serializedTxBase64": "<string>",
  "transactionType": "mixed",
  "txMetadata": {
    "blockhash": "<string>",
    "lastValidBlockHeight": "<string>",
    "transactionFeeLamports": "0.5",
    "accountRentLamports": "0.5"
  }
}

Body

application/json
collateralMint
enum<string>
required

The mint address for the collateral token (e.g. 'So11111111111111111111111111111111111111112' for 'SOL'). 'collateralMint' must be the same as 'marketMint' for long positions, or USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) for short positions.

Available options:
So11111111111111111111111111111111111111112,
7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,
3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh,
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
Example:

"So11111111111111111111111111111111111111112"

collateralTokenDelta
string
required

The amount of tokens for the input mint to open the position or deposit collateral. NOTE: The token amount needs to be an integer and must conform to the token mint decimals specified onchain. For example, to deposit 1 'SOL', the 'collateralTokenDelta' value would be equal to '1000000000'

Example:

"1000000000"

inputMint
string
required

The mint address for the input token (e.g. 'So11111111111111111111111111111111111111112' for 'SOL')

Example:

"So11111111111111111111111111111111111111112"

marketMint
enum<string>
required

The asset or market to trade against. Required when opening a new position. 'SOL' = 'So11111111111111111111111111111111111111112', 'ETH' = '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs', 'BTC' = '3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh'

Available options:
So11111111111111111111111111111111111111112,
7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,
3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh
Example:

"So11111111111111111111111111111111111111112"

maxSlippageBps
string
required

The maximum slippage in (BPS) for the custody token price when executing the decrease position trade

Example:

"100"

side
enum<string>
required

Required when opening a new position

Available options:
long,
short
leverage
string

Leverage of the increase position. Either provide leverage or sizeUsdDelta. Max leverage for SOL is 100. Max leverage for BTC / ETH is 150

Example:

"10"

includeSerializedTx
boolean
default:true

Sets whether to return a serialized transaction (serializedTxBase64) in the response

sizeUsdDelta
string

The amount in USD to increase the position size by. Must be an integer representing the USD amount multiplied by 10^6 (1 million) to align with the 6 decimal places used for USDC/USDT tokens on-chain. For example, to increase the position size by $10 USD, set 'sizeUsdDelta' to 10000000; for $0.50 USD, set 'sizeUsdDelta' to 500000. Either provide leverage or sizeUsdDelta.

Example:

"10000000"

transactionType
enum<string>
default:mixed

Sets the type of serialized transaction to execute the action. If the transaction type is legacy, the transaction must be submitted by the client itself through the RPC. If the transaction type is instant, the transaction must be sent to the POST /transaction/execute endpoint. If the transaction type is mixed, the transactionType returned in the response will be either legacy or instant.

Available options:
legacy,
mixed,
instant
tpsl
object[] | null

TPSL requests to set

walletAddress
string

The wallet address / public key for the trader, Required when opening a new position.

Response

200 OK

positionPubkey
string | null
required

The unique identifier (i.e. a program derived address) for the position account. Use this address to find the position account onchain.

positionRequestPubkey
string | null
required

The unique identifier (i.e. a program derived address) for the position request. Use this address to find the position request account onchain

tpslRequests
object[]
required

TPSL requests created with the increase position. Only returned when TPSL is requested.

quote
object
required
requireKeeperSignature
boolean
required

DEPRECATED

serializedTxBase64
string | null
required

The serialized transaction (base64 encoded) containing the instructions and given parameters for the increase position request. The transaction can be deserialized, signed by the owner of walletAddress and submitted onchain to execute the increase position request

transactionType
enum<string>
required

Returns the type of serialized transaction to execute the action. If the transaction type is legacy, the transaction must be submitted by the client itself through the RPC. If the transaction type is instant, the transaction must be sent to the POST /transaction/execute endpoint.

Available options:
mixed,
instant,
legacy
txMetadata
object | null
required

Contains relevant metadata for the serialized transaction. Null if no wallet address passed in.