List Orders
Retrieve a paginated list of orders belonging to the authenticated client, across both standard and integration order collections.
Retrieve a cursor-paginated list of orders associated with your account. Results are sorted newest-first and aggregate across both the standard order and integration order collections.
Request
Method: GET
Endpoint: /api/v1/orders
Content-Type: N/A (query parameters only)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | ❌ | Number of orders to return per page. Min 1, max 100. Defaults to 20. |
cursor | string | ❌ | ISO 8601 date string used for cursor-based pagination. Pass the nextCursor value from the previous response to retrieve the following page. Omit on the first request. |
status | string | ❌ | Comma-separated list of order statuses to filter by. See Valid Status Values below. |
type | string | ❌ | Comma-separated list of order types / providers to filter by. See Valid Type Values below. |
Valid Status Values
| Value | Description |
|---|---|
pending | Order has been created and is awaiting processing |
processing | Order is being prepared for dispatch |
pickedUp | Order has been picked up by the courier |
outForDelivery | Order is out for delivery |
delivered | Order has been delivered to the customer |
collected | Payment for the order has been collected |
returned | Order was returned to the warehouse |
cancelled | Order was cancelled |
postponed | Delivery has been postponed |
unreachable | Customer could not be reached |
outOfStock | One or more products were out of stock |
invalidAddress | Customer address could not be validated |
RTW | Return to warehouse in progress |
QC | Order is undergoing quality control |
Valid Type Values
Standard order types:
| Value | Description |
|---|---|
NORMAL | A standard fulfillment order |
PROMOTIONAL | A promotional / gifting order |
EXCHANGE | An exchange order |
REFUND | A refund/return order |
Integration order providers:
| Value | Description |
|---|---|
SHOPIFY | Order originated from a Shopify store |
WOOCOMMERCE | Order originated from a WooCommerce store |
OPENAPI | Order created via the Open API |
Example Request
Fetching the next page using a cursor:
Response
✅ 200 OK
Orders were successfully retrieved.
Response Body
| Field | Type | Description |
|---|---|---|
data | array | Array of order objects for the current page |
pagination | object | Pagination metadata |
pagination.limit | number | The effective page size used |
pagination.hasNextPage | boolean | true if more results are available after this page |
pagination.nextCursor | string | null | ISO 8601 date string to pass as cursor on the next request. null when on the last page. |
Order Object Fields
| Field | Type | Description |
|---|---|---|
OID | string | Unique 13-digit Turuq order identifier |
status | string | Current order status |
source | string | Unified type/provider field (e.g. NORMAL, SHOPIFY, OPENAPI) |
customerName | string | Customer's full name |
customer.governorate | string | Customer's governorate |
subtotal | number | Order subtotal (EGP) |
total | number | Total order value including fees (EGP) |
shippingFees | number | Shipping fees applied to the order (EGP) |
createdAt | string | ISO 8601 timestamp of when the order was created |
Example Response (First Page)
Example Response (Last Page)
❌ 400 Bad Request
Returned when query parameter validation fails.
Invalid cursor value:
Invalid status value:
Invalid type value:
❌ 500 Internal Server Error
Pagination Guide
This endpoint uses cursor-based pagination for efficient traversal of large result sets. Unlike offset-based pagination, cursors are stable across concurrent writes and do not degrade in performance as you navigate deeper into the dataset.
- First request — omit
cursor. The response will contain the firstlimitresults. - Subsequent requests — pass the
nextCursorvalue from the previous response as thecursorparameter. - End of results — when
hasNextPageisfalseandnextCursorisnull, you have retrieved all matching orders.
The
cursorvalue is an ISO 8601 timestamp. Results with acreatedAtstrictly before the cursor are returned, ensuring no page overlap.
For an overview of all order-related endpoints, visit the Orders Overview.
