Create order

Submits a new order to Paradex. Returns an order status object with a unique order `id` assigned by Paradex. This order `id` serves as the primary identifier for the order. The REST API performs basic validation and queues the order for risk checks (order `status`=`NEW`). Once validation and risk checks are successful, the order is sent to the matching engine. The matching engine processes the order and updates the status to `OPEN` if the order is resting. If the order is fully filled or cannot be processed, the status changes to `CLOSED` and a `cancel_reason` code is provided (e.g., fully filled or no liquidity).

Request

Order content
instructionenumRequired

Order Instruction, GTC, IOC, RPI or POST_ONLY if empty GTC

Allowed values:
marketstringRequired
Market for which order is created
pricestringRequired
Order price
sideenumRequired
Order side
Allowed values:
signaturestringRequired

Order signature in as a string “[r,s]” signed by account’s paradex private key

signature_timestampintegerRequired
Unix timestamp in milliseconds of order creation, used for signature verification
sizestringRequired
Size of the order
typeenumRequired
Order type
client_idstringOptional<=64 characters
Unique client assigned ID for the order
flagslist of enumsOptional

Order flags, allow flag: REDUCE_ONLY

Allowed values:
on_behalf_of_accountstringOptional
ID corresponding to the configured isolated margin account. Only for isolated margin orders
recv_windowintegerOptional
Order will be created if it is received by API within RecvWindow milliseconds from signature timestamp, minimum is 10 milliseconds
signed_impact_pricestringOptional

Optional signed impact price for market orders (base64 encoded)

stpstringOptional

Self Trade Prevention, EXPIRE_MAKER, EXPIRE_TAKER or EXPIRE_BOTH, if empty EXPIRE_TAKER

trigger_pricestringOptional
Trigger price for stop order

Response

Created
accountstring or null
Paradex Account
avg_fill_pricestring or null
Average fill price of the order
cancel_reasonstring or null
Reason for order cancellation if it was closed by cancel
client_idstring or null
Client order id provided by the client at order creation
created_atinteger or null
Order creation time
flagslist of enums or null

Order flags, allow flag: REDUCE_ONLY

Allowed values:
idstring or null
Unique order identifier generated by Paradex
instructionenum or null
Execution instruction for order matching
Allowed values:
last_updated_atinteger or null

Order last update time. No changes once status=CLOSED

marketstring or null
Market
pricestring or null
Order price. 0 for MARKET orders
published_atinteger or null
Timestamp in milliseconds when order was sent to the client
received_atinteger or null
Timestamp in milliseconds when order was received by API service
remaining_sizestring or null
Remaining size of the order
request_infoobject or null
Additional request information for orders
seq_nointeger or null

Unique increasing number (non-sequential) that is assigned to this order update and changes on every order update. Can be used to deduplicate multiple feeds. WebSocket and REST responses use independently generated seq_no per event.

sideenum or null
Order side
Allowed values:
sizestring or null
Order size
statusenum or null
Order status
Allowed values:
stpenum or null
Self Trade Prevention mode
Allowed values:
timestampinteger or null
Order signature timestamp
trigger_pricestring or null
Trigger price for stop order
typeenum or null
Order type

Errors