# Orders ## Rate limits * 1200 requests/min or 20 requests/sec per IP address. (**weight = 2**) or 2 \* length of `product_ids` for [multi-product orders](#multiple-products) query. {% hint style="info" %} See more details in [API Rate limits](https://docs.nado.xyz/developer-resources/api/rate-limits) {% endhint %} ## Single Product ### Request {% tabs %} {% tab title="Websocket" %} **Connect** `WEBSOCKET [GATEWAY_WEBSOCKET_ENDPOINT]` **Message** ```json { "type": "subaccount_orders", "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_id": 1 } ``` {% endtab %} {% tab title="REST (GET)" %} **GET** `[GATEWAY_REST_ENDPOINT]/query?type=subaccount_orders&sender={sender}&product_id={product_id}` {% endtab %} {% tab title="REST (POST)" %} `POST [GATEWAY_REST_ENDPOINT]/query` **Body** ```json { "type": "subaccount_orders", "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_id": 1 } ``` {% endtab %} {% endtabs %} ### Request Parameters
ParameterTypeRequiredDescription
senderstringYesA bytes32 sent as a hex string; includes the address and the subaccount identifier.
product_idnumberYesId of spot / perp product for which to retrieve subaccount orders.
### Response ```json { "status": "success", "data": { "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_id": 1, "orders": [ { "product_id": 1, "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "price_x18": "1000000000000000000", "amount": "1000000000000000000", "expiration": "2000000000", "nonce": "1", "unfilled_amount": "1000000000000000000", "digest": "0x0000000000000000000000000000000000000000000000000000000000000000", "placed_at": 1682437739, "appendix": "1537", "order_type": "ioc" } ] }, "request_type": "query_subaccount_orders" } ``` {% hint style="info" %} **Note**: that side of the order (buy/sell) is included in the sign of `amount` and `unfilled_amount` . They are positive if the order is a buy order, otherwise negative. {% endhint %} ## Multiple Products ### Request {% tabs %} {% tab title="Websocket" %} **Connect** `WEBSOCKET [CORE_WEBSOCKET_ENDPOINT]` **Message** ```json { "type": "orders", "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_ids": [1, 2, 3] } ``` {% endtab %} {% tab title="REST (POST)" %} `POST /query` **Body** ```json { "type": "orders", "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_ids": [1, 2, 3] } ``` {% endtab %} {% endtabs %} ### Request Parameters
ParameterTypeRequiredDescription
senderstringYesA bytes32 sent as a hex string; includes the address and the subaccount identifier.
product_idsnumber[]YesList of spot / perp products for which to retrieve open orders.
### Response ```json { "status": "success", "data": { "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "product_orders": [ { "product_id": 1, "orders": [ { "product_id": 1, "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000", "price_x18": "1000000000000000000", "amount": "1000000000000000000", "expiration": "2000000000", "nonce": "1", "unfilled_amount": "1000000000000000000", "digest": "0x0000000000000000000000000000000000000000000000000000000000000000", "appendix": "1537", "placed_at": 1682437739, "order_type": "ioc" } ] }, { "product_id": 2, "orders": [] } ] }, "request_type": "query_orders" } ```