HomeDocumentationAPI Reference
Log In
API Reference

Order

Method Name

private/order

Create a new order.
Required minimum session key permission level is admin

Parameters

amount  string required
Order amount in units of the base
direction  string required
Order direction
enum buy sell
instrument_name  string required
Instrument name
limit_price  string required
Limit price in quote currency.
This field is still required for market orders because it is a component of the signature. However, market orders will not leave a resting order in the book in case of a partial fill.
max_fee  string required
Max fee PER contract, denominated in USDC.
For resting orders (maker orders), max_fee must be > 2 x max(taker_fee, maker_fee) x spot_price + extra_fee / amount.For crossing orders (taker order), max_fee must be > maker max_fee + base_fee / fill_amount.
Note, in this calculation, regardless of the custom account taker / maker fees, the standard taker / maker fees are used.
The max(limit_price, index_price) is used to calculate the notional volume.
nonce  integer required
Unique nonce defined as (UTC_timestamp in ms)(random_number_up_to_3_digits) (e.g. 1695836058725001, where 001 is the random number).
Note, using a random number beyond 3 digits will cause JSON serialization to fail.
signature  string required
Ethereum signature of the order
signature_expiry_sec  integer required
Unix timestamp in seconds. Order signature becomes invalid after this time, and the system will cancel the order.
Expiry MUST be at least 5 min from now.
signer  string required
Owner wallet address or registered session key that signed order
subaccount_id  integer required
Subaccount ID
algo_duration_sec  integer
Total execution window in seconds (required for algo orders)
algo_num_slices  integer
Number of child executions to split the order into (required for algo orders)
algo_type  string
Algo order type (twap). Cannot be combined with trigger fields.
enum twap
client  string
Client that submitted the order
extra_fee  string
Extra fee in USDC added to the total final fee paid by user and directly sent to client / builder (must be between 0.000001 and 1000 USDC). The referral_code field must also be filled out. See Builder Fee page in docs for more info.
is_atomic_signing  boolean
Used by vaults to determine whether the signature is an EIP-1271 signature.
label  string
Optional user-defined label for the order
mmp  boolean
Whether the order is tagged for market maker protections (default false)
order_type  string
Order type:
- limit: limit order (default)
- market: market order, note that limit_price is still required for market orders, but unfilled order portion will be marked as cancelled

enum limit market
reduce_only  boolean
If true, the order will not be able to increase position's size (default false). If the order amount exceeds available position size, the order will be filled up to the position size and the remainder will be cancelled. This flag is only supported for market orders or non-resting limit orders (IOC or FOK)
referral_code  string
Optional referral code for the order
reject_post_only  boolean
If true (default), post-only orders that would cross the book are rejected. If false, the limit price is adjusted to be 1 tick away from the BBO instead of rejecting.
reject_timestamp  integer
UTC timestamp in ms, if provided the matching engine will reject the order with an error if reject_timestamp < server_time. Note that the timestamp must be consistent with the server time: use public/get_time method to obtain current server time.
time_in_force  string
Time in force behaviour:
- gtc: good til cancelled (default)
- post_only: a limit order that will be rejected if it crosses any order in the book, i.e. acts as a taker order
- fok: fill or kill, will be rejected if it is not fully filled
- ioc: immediate or cancel, fill at best bid/ask (market) or at limit price (limit), the unfilled portion is cancelled
Note that the order will still expire on the signature_expiry_sec timestamp.

enum gtc post_only fok ioc
trigger_price  string
(Required for trigger orders) "index" or "mark" price to trigger order at
trigger_price_type  string
(Required for trigger orders) Trigger with "mark" price as "index" price type not supported yet.
enum mark index
trigger_type  string
(Required for trigger orders) "stoploss" or "takeprofit"
enum stoploss takeprofit

Response

id  string or integer required
result  object required
result. order  object required
result.order. amount  string required
Order amount in units of the base
result.order. average_price  string required
Average fill price
result.order. cancel_reason  string required
If cancelled, reason behind order cancellation
enum user_request mmp_trigger insufficient_margin signed_max_fee_too_low cancel_on_disconnect ioc_or_market_partial_fill session_key_deregistered subaccount_withdrawn compliance trigger_failed validation_failed algo_completed
result.order. creation_timestamp  integer required
Creation timestamp (in ms since Unix epoch)
result.order. direction  string required
Order direction
enum buy sell
result.order. filled_amount  string required
Total filled amount for the order
result.order. instrument_name  string required
Instrument name
result.order. is_transfer  boolean required
Whether the order was generated through private/transfer_position
result.order. label  string required
Optional user-defined label for the order
result.order. last_update_timestamp  integer required
Last update timestamp (in ms since Unix epoch)
result.order. limit_price  string required
Limit price in quote currency
result.order. max_fee  string required
Max fee PER contract, denominated in USDC.Max fee must be > 2 x max(taker_fee, maker_fee) x spot_price + extra_fee / amount.If the order crosses the book, it must be >= 2 x max(taker_fee, maker_fee) x spot_price + base_fee / fill_amount + extra_fee / amount.Note, in this calculation, regardless of the account taker / maker fees, the standard taker / maker fees are used.
result.order. mmp  boolean required
Whether the order is tagged for market maker protections
result.order. nonce  integer required
Unique nonce defined as (UTC_timestamp in ms)(random_number_up_to_3_digits) (e.g. 1695836058725001, where 001 is the random number)
result.order. order_fee  string required
Order fee paid so far
result.order. order_id  string required
Order ID
result.order. order_status  string required
Order status
enum open filled cancelled expired untriggered algo_active
result.order. order_type  string required
Order type
enum limit market
result.order. quote_id  string or null required
Quote ID if the trade was executed via RFQ
result.order. signature  string required
Ethereum signature of the order
result.order. signature_expiry_sec  integer required
Signature expiry timestamp
result.order. signer  string required
Owner wallet address or registered session key that signed order
result.order. subaccount_id  integer required
Subaccount ID
result.order. time_in_force  string required
Time in force
enum gtc post_only fok ioc
result.order. algo_duration_sec  integer or null
Total execution window in seconds
result.order. algo_num_slices  integer or null
Number of child executions
result.order. algo_slices_completed  integer or null
Number of slices executed so far
result.order. algo_type  string or null
Algo order type (twap or vwap)
enum twap
result.order. extra_fee  string or null
(Optional) Extra fee in USDC added to the total final fee paid by user (must be between 0.000001 and 1,000 USDC).
result.order. replaced_order_id  string or null
If replaced, ID of the order that was replaced
result.order. signed_limit_price  string or null
The original limit price that the user signed. Only set when the order was adjusted (i.e., for post-only orders with reject_post_only=false that would have crossed). Used for on-chain submission.
result.order. trigger_price  string or null
(Required for trigger orders) Index or Market price to trigger order at
result.order. trigger_price_type  string or null
(Required for trigger orders) Trigger with Index or Mark Price
enum mark index
result.order. trigger_reject_message  string or null
(Required for trigger orders) Error message if error occured during trigger
result.order. trigger_type  string or null
(Required for trigger orders) Stop-loss or Take-profit.
enum stoploss takeprofit
result. trades  array of objects required
result.trades[]. direction  string required
Order direction
enum buy sell
result.trades[]. expected_rebate  string required
Expected rebate for this trade
result.trades[]. extra_fee  string required
Extra fee in USDC added by the referring client (included in trade fee)
result.trades[]. index_price  string required
Index price of the underlying at the time of the trade
result.trades[]. instrument_name  string required
Instrument name
result.trades[]. is_transfer  boolean required
Whether the trade was generated through private/transfer_position
result.trades[]. label  string required
Optional user-defined label for the order
result.trades[]. liquidity_role  string required
Role of the user in the trade
enum maker taker
result.trades[]. mark_price  string required
Mark price of the instrument at the time of the trade
result.trades[]. order_id  string required
Order ID
result.trades[]. quote_id  string or null required
Quote ID if the trade was executed via RFQ
result.trades[]. realized_pnl  string required
Realized PnL for this trade
result.trades[]. realized_pnl_excl_fees  string required
Realized PnL for this trade using cost accounting that excludes fees
result.trades[]. rfq_id  string or null required
RFQ ID if the trade was executed via RFQ
result.trades[]. subaccount_id  integer required
Subaccount ID
result.trades[]. timestamp  integer required
Trade timestamp (in ms since Unix epoch)
result.trades[]. trade_amount  string required
Amount filled in this trade
result.trades[]. trade_fee  string required
Base_fee (only takers) + unit_fee (adjusted via rebates / discounts) + extra_fee (set by referrring client))
result.trades[]. trade_id  string required
Trade ID
result.trades[]. trade_price  string required
Price at which the trade was filled
result.trades[]. transaction_id  string required
The transaction id of the related settlement transaction
result.trades[]. tx_hash  string or null required
Blockchain transaction hash
result.trades[]. tx_status  string required
Blockchain transaction status
enum requested pending settled reverted ignored timed_out

Example

{request_example_shell}
{request_example_javascript}
{request_example_python}

The above command returns JSON structured like this:

{response_example_json}