Get Algo Orders
Search and paginate algorithmic orders using status, trigger, market, time, and tag filters.
Endpoint
GET /v1/algo/orders
Mainnet: https://api.orderly.org/v1/algo/orders
Testnet: https://testnet-api.orderly.org/v1/algo/orders
Rate limit: 5 requests per second.
Returns algorithmic orders that match the supplied filters. The page parameter starts at 1 and size can be up to 500.
Authentication
Send the signed-request headers. The header names are protocol fields and must remain exactly as shown.
orderly-timestamp— required; signed-request timestamp in milliseconds.orderly-account-id— required; authenticated account ID.orderly-key— required; public API key.orderly-signature— required; signature generated for the request.
Query parameters
symbol(string, optional) — market to filter, such asPERP_NEAR_USDC.order_type(string, optional) — filter byLIMITorMARKET.status(string, optional) — one ofNEW,CANCELLED,PARTIAL_FILLED,FILLED,REJECTED,INCOMPLETE, orCOMPLETED.INCOMPLETEgroupsNEWandPARTIAL_FILLED;COMPLETEDgroupsCANCELLEDandFILLED.order_tag(string, optional) — match the full stored tag. Current custom-fee tags useenum:<owning_broker_id>:<enum_id>; for PangoPerps useenum:pangoperps:GRID_PRO. Historical records may contain the legacyenum:<enum_id>form; keep the stored value unchanged. Maximum length: 128 characters.start_tandend_t(number, optional) — time-range boundaries expressed as 13-digit Unix timestamps in milliseconds.page(number, optional) — page number, starting at 1.size(number, optional) — number of records per page; maximum 500.side(string, optional) —BUYorSELL.algo_type(string, optional) —STOP,TPSL, orpositional_TPSL.is_triggered(string, optional) — filter by trigger state.
Examples
Example request
Example request: This signed GET call filters by market, status, pagination, side, algo type, trigger state, and order tag.
curl --request GET \
--url 'https://api.orderly.org/v1/algo/orders?symbol=PERP_ETH_USDC&status=INCOMPLETE&page=1&size=100&side=BUY&algo_type=STOP&is_triggered=false&order_tag=enum:pangoperps:GRID_PRO' \
--header 'orderly-account-id: <account-id>' \
--header 'orderly-key: <public-api-key>' \
--header 'orderly-signature: <signature>' \
--header 'orderly-timestamp: <timestamp-in-ms>'The response contains success, data.meta, data.rows, and a server-side timestamp in milliseconds.
Successful response
data.meta provides total, records_per_page, and current_page. Each object in data.rows includes the algo-order state, trigger details, fees, PnL, and child orders where available.
{
"success": true,
"data": {
"meta": { "total": 9, "records_per_page": 25, "current_page": 1 },
"rows": [{
"algo_order_id": 168400010,
"algo_status": "NEW",
"algo_type": "STOP",
"fee_asset": "USDC",
"is_triggered": "false",
"order_tag": "enum:pangoperps:GRID_PRO",
"parent_algo_order_id": 0,
"quantity": 5.5,
"root_algo_order_id": 168400010,
"root_algo_order_status": "NEW",
"side": "BUY",
"symbol": "PERP_NEAR_USDC",
"total_executed_quantity": 0,
"total_fee": 0,
"trigger_price": 2.5,
"trigger_price_type": "MARK_PRICE",
"type": "MARKET",
"created_time": 1702871974317,
"updated_time": 1702871974317,
"visible_quantity": 5.5,
"margin_mode": "CROSS",
"executed_quantity": 0,
"realized_pnl": 0,
"child_orders": []
}]
},
"timestamp": 1702989203989
}The response reflects the submitted filters. For fee reconciliation, total_fee is the aggregate fee across executed trades, including custom trading fees; it is not a builder or affiliate payout basis.