curl --request GET \
--url https://{host}/v1/orders/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v1/orders/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/v1/orders/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"object": "order",
"id": "ord_62jxryztxctob7uopekg",
"state": "pending",
"account": "1000000001",
"symbol": "DANGCEM",
"side": "buy",
"quantity": 10,
"type": "market",
"time_in_force": "day",
"price_kobo": null,
"filled_quantity": 0,
"exchange_order_id": "100001",
"reason": null,
"reject_reason": null,
"created_at": "2026-09-25T06:12:34Z",
"updated_at": "2026-09-25T06:12:34Z"
}Retrieve an order
Returns the order, including everything the exchange has reported about it.
curl --request GET \
--url https://{host}/v1/orders/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v1/orders/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/v1/orders/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"object": "order",
"id": "ord_62jxryztxctob7uopekg",
"state": "pending",
"account": "1000000001",
"symbol": "DANGCEM",
"side": "buy",
"quantity": 10,
"type": "market",
"time_in_force": "day",
"price_kobo": null,
"filled_quantity": 0,
"exchange_order_id": "100001",
"reason": null,
"reject_reason": null,
"created_at": "2026-09-25T06:12:34Z",
"updated_at": "2026-09-25T06:12:34Z"
}Authorizations
Authorization: Bearer <key>. Sandbox keys start with mgw_test_ and live keys start with mgw_live_. Each key works only in its own environment, and a live key works only from the IP addresses or ranges registered for it.
Path Parameters
The order's id.
Response
An order.
"order"Unique identifier for the order. Starts with ord_.
sending: stored, and the send is in progress. pending: the exchange has the order. partially_filled, filled: some or all of the order has traded. uncertain: we don't know whether the exchange received it. We don't send it again; we reconcile it against the exchange's record. rejected: the exchange rejected it; see reject_reason. refused: we refused it, and it never reached the exchange. cancelled: the exchange confirmed the cancel. expired: its time in force ran out.
sending, pending, partially_filled, filled, uncertain, rejected, refused, cancelled, expired The account code, in uppercase.
The symbol, in uppercase.
buy, sell limit, market day, gtc, ioc, fok The limit price in kobo. Null for a market order.
The total number of shares traded so far.
The exchange's identifier for the order, once it has one.
A sentence explaining the order's current state. It's for people to read, so don't use it in your logic.
Why the exchange rejected the order. Set only when state is rejected.
insufficient_funds, market_closed, settlement_lockout, limit_orders_etf_only, unknown_symbol, symbol_not_tradable, account_not_at_broker, rejected_by_exchange, null In UTC, to the second.
In UTC, to the second.