Skip to main content
POST
Open a perp position

Authorizations

X-API-Key
string
header
required

Body

application/json
wallet_addresses
string[]
required
Minimum array length: 1
market_id
string
required
Example:

"jup:SOL-PERP"

side
enum<string>
required
Available options:
long,
short
collateral_usdc_e6
integer<int64>
required

Collateral in USDC micros. Server converts to the venue's input-mint native units (lamports for SOL longs, USDC e6 for shorts) using the live oracle price.

leverage_bps
integer
required
Example:

50000

slippage_bps
integer
required
Example:

50

client_order_id
string
required

Caller-supplied idempotency key. Identical IDs within the 60s window return the cached response (same tx) instead of rebuilding.

funding_mint
string | null

Optional funding mint. Omit (or set to the venue's native input mint) for the native-funding path. Pass a different supported mint (USDC, USD1, wSOL, BTC, ETH) to attach a Pyth-derived SwapFunding spec — the on-chain ix performs the keeper-side Jupiter swap on increase. Other mints return an error.

limit_price_e6
integer<int64> | null

Phoenix only. Place a resting LIMIT order at this USD e6 price instead of a market order. Jupiter exposes no user-callable limit path (instantCreateLimitOrder is keeper-gated), so sending this with a jup: market returns 400.

Response

Transactions built

success
boolean
data
object[]
error
string