curl --request GET \
--url https://omnicommerce.sg/api/v1/orders \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://omnicommerce.sg/api/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"paymentReceived": 123,
"orderCogs": 123,
"orderProfit": 123,
"orderMargin": 123,
"hasReturnSignal": true,
"returnRefundAmount": 1,
"returnState": "none",
"includeInSalesMetrics": true
}
],
"hasMore": true,
"nextOffset": 123,
"summary": {
"totalCount": 123,
"toShipCount": 123,
"shippedCount": 123,
"completedCount": 123,
"pendingCount": 123,
"returnCount": 123,
"canceledCount": 123,
"awaitingCollectionCount": 123
},
"pagination": {
"offset": 123,
"limit": 123,
"total": 123,
"hasMore": true,
"nextOffset": 123,
"maxLimit": 123,
"defaultLimit": 123
}
}List Orders
List orders for the authenticated organization using the same filters, sorting, and pagination semantics as the workspace Orders listing page. Requires orders:read.
curl --request GET \
--url https://omnicommerce.sg/api/v1/orders \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://omnicommerce.sg/api/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"items": [
{
"paymentReceived": 123,
"orderCogs": 123,
"orderProfit": 123,
"orderMargin": 123,
"hasReturnSignal": true,
"returnRefundAmount": 1,
"returnState": "none",
"includeInSalesMetrics": true
}
],
"hasMore": true,
"nextOffset": 123,
"summary": {
"totalCount": 123,
"toShipCount": 123,
"shippedCount": 123,
"completedCount": 123,
"pendingCount": 123,
"returnCount": 123,
"canceledCount": 123,
"awaitingCollectionCount": 123
},
"pagination": {
"offset": 123,
"limit": 123,
"total": 123,
"hasMore": true,
"nextOffset": 123,
"maxLimit": 123,
"defaultLimit": 123
}
}Authorizations
Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.
Query Parameters
Optional organization scope for session-authenticated calls. OAuth client credentials resolve the organization from the token.
120Search order number, external order ID, buyer fields, and line-item product/SKU fields.
140Orders listing status filter. Groups are to_ship, shipped, completed, pending, return, and canceled. awaiting_collection is packed orders waiting for carrier pickup. Shopify, Amazon, and eBay have no separate collection status.
to_ship, shipped, completed, pending, return, canceled, awaiting_collection Comma-separated marketplace platforms (for example shopee,lazada,tiktok,zalora).
200Comma-separated normalized country codes.
200Comma-separated marketplace account IDs.
400Filter whole orders by recorded catalog bundle type, with mapped catalog fallback for legacy lines. Hard/virtual match any line; non_bundle requires no bundle lines. Marketplace bundle-deal promotions alone are not catalog bundles.
, hard, virtual, non_bundle Comma-separated sort tokens. Supports multi-sort up to six tokens. Aliases: latest -> updated_desc, oldest -> updated_asc.
240Inclusive lower bound on order created date (YYYY-MM-DD).
Inclusive upper bound on order created date (YYYY-MM-DD).
Result limit per page. Values above 50 are clamped silently. Defaults to 20.
1 <= x <= 50Zero-based pagination offset. Use pagination.nextOffset from the previous response to page forward.
x >= 0