Young man smiling

Documentation

The Questrade API allows developers to create their own fully featured trading and analytical applications through their brokerage account.

POST accounts/:id/orders[/:orderId]

Allows to (re)place an order against a certain account.

Request parameters

ParameterTypeDescription
id
String
Account number against which order is being submitted.
Can occur in the ‘Location’ header only.
orderId
Integer
Optional – order id of the order to be replaced.
symbolId
Integer
Internal symbol identifier.
quantity
Integer
Order quantity.
icebergQuantity
Integer
Iceberg instruction quantity.
limitPrice
Double
Limit price.
stopPrice
Double
Stop price.
isAllOrNone
Boolean
Identifies whether the all-or-none instruction is enabled.
isAnonymous
Boolean
Identifies whether the anonymous instruction is enabled.
orderType
Enumeration
Order type (e.g., "Market").
See Order Type section for all allowed values.
action
Enumeration
Order side (e.g., "Buy").
See Order Action section for all allowed values.
primaryRoute
Enumeration
Primary order route (e.g., "AUTO").
secondaryRoute
Enumeration
Secondary order route (e.g., "NYSE").

Response properties

PropertyTypeDescription
orderId
Integer
Internal order identifier.
orders
Complex
List of order objects.
Order
Complex

Sample request

        
POST https://api01.iq.questrade.com/v1/accounts/26598145/orders 
{ 
	"accountNumber" :  XXXXXXXX ,
	"symbolId":   8049,
	"quantity": 10,
	"icebergQuantity": 1,
	"limitPrice": 537,
	"isAllOrNone":  true,
	"isAnonymous": false,
	"orderType": "Limit",
	"timeInForce": "GoodTillCanceled",
	"action": "Buy",
	"primaryRoute":"AUTO",
	"secondaryRoute": "AUTO"
}

 

Sample JSON response

        
 {
	"orderId": 177106005 ,
	"orders": [
		{
			"id": 177106005 ,
			"symbol": "AAPL",
			"symbolId": 8049,
			"totalQuantity":  10,
			"openQuantity":   10,
			"filledQuantity": 0,
			"canceledQuantity": 0,
			"side": "Buy",
			"orderType":  "Limit",
			"limitPrice":  537,
			"stopPrice":  null,
			"isAllOrNone":  true,
			"isAnonymous":  false,
			"icebergQty":  1,
			"minQuantity":  null,
			"avgExecPrice":  null,
			"lastExecPrice":  null,
			"source":  "TradingAPI",
			"timeInForce":  "GoodTillCanceled",
			"gtdDate":  null,
			"state":  "Pending",
			"clientReasonStr":  "",
			"chainId":  177106005,
			"creationTime":  "2014-10-24T17:48:20.546000-04:00",
			"updateTime": "2014-10-24T17:48:20.876000-04:00",
			"notes":  "",
			"primaryRoute":  "LAMP",
			"secondaryRoute":  "AUTO",
			"orderRoute":  "LAMP",
			"venueHoldingOrder":  "",
			"comissionCharged":  0,
			"exchangeOrderId":  "",
			"isSignificantShareHolder":  false,
			"isInsider":  false,
			"isLimitOffsetInDollar":  false,
			"userId":  3000124,
			"placementCommission":  null,
			"legs": [],
			"strategyType":  "SingleLeg",
			"triggerStopPrice":  null,
			"orderGroupId":  0,
			"orderClass":  null,
			"mainChainId":  0
		},
		...
	]
}

Already a Questrade client?

Create your first application using your Questrade account.

Integrate your application with Questrade API

Support

Report an issue

Have questions about Questrade's API? Tell us how we can help, send us an email.

Get Started

Request a feature

We want your ideas on how we can improve our API. If you have a suggestion for a minor tweak, a major overhaul, or something brand new, please share it with us.

Get Started

Start a free trial

Try out the features of your application in a simulated environment without affecting your real positions.

Get Started
See All