Skip to content

List customer orders

GET
/api/v1/orders
curl --request GET \
--url 'https://api.dokanmazad.com/api/v1/orders?page=1&limit=20&status=DepositSubmitted%2CShipping&customerId=cmoabcde000001ny11aabbcc0&marketerId=cmoabcde000002ny22aabbcc0&tenantId=cmoabcde000003ny33aabbcc0&search=1042&createdAfter=2026-01-01T00%3A00%3A00Z&createdBefore=2026-12-31T23%3A59%3A59Z' \
--header 'X-API-Key: <X-API-Key>'
page
number

Page number (1-based)

Example
1
limit
number

Items per page (default 20)

Example
20
status
string

Single status or comma-separated list of statuses

Example
DepositSubmitted,Shipping
customerId
string

Filter by customer CUID

Example
cmoabcde000001ny11aabbcc0
marketerId
string

Filter by marketer CUID

Example
cmoabcde000002ny22aabbcc0
tenantId
string

Filter by tenant CUID (admin/super-admin only)

Example
cmoabcde000003ny33aabbcc0
search
string

Search by order number (e.g. “1042”)

Example
1042
createdAfter
string format: date-time

Orders created after this date (ISO 8601)

Example
2026-01-01T00:00:00Z
createdBefore
string format: date-time

Orders created before this date (ISO 8601)

Example
2026-12-31T23:59:59Z

Success

Media typeapplication/json
object
success
required
boolean
data
required
meta
object
page
integer
limit
integer
total
integer
totalPages
integer
data
required
Array<object>
object
id
required

CUID order ID

string
orderNumber
required

Human-readable sequential number

number
status
required

Current order status (one of 16 possible values)

string
allowedStatusTransitions
required

Valid next statuses the caller can transition to

Array<string>
progress
required

Order progress 0–100 (-1 for cancelled)

number
canCancel
required

Whether order can be cancelled from current status

boolean
isTerminal
required

Whether order is in a terminal state (no transitions)

boolean
version
required

Optimistic-lock version — pass back when updating

number
customerId
required

Customer CUID

string
totalAmount

Total order amount

number
currency

ISO 4217 currency code

string
carDetails

Car snapshot JSON — see POST /api/v1/orders for keys

object
customer

Embedded customer object { id, name, email?, mobileNumber? }

object
createdAt
required

Creation timestamp

string format: date-time
meta
object
page
integer
limit
integer
total
integer
totalPages
integer
Examples
Examplesuccess
{
"success": true,
"data": [
{
"id": "cmosor2zy000313ny24hgtfy0",
"orderNumber": 1042,
"status": "DepositSubmitted",
"allowedStatusTransitions": [
"DepositConfirmed",
"Cancelled"
],
"progress": 0,
"canCancel": true,
"isTerminal": false,
"version": 1,
"customerId": "cmoabcde000001ny11aabbcc0",
"marketerId": "cmoabcde000002ny22aabbcc0",
"tenantId": "cmoabcde000003ny33aabbcc0",
"carDetails": {
"makeEn": "BMW",
"modelEn": "3 Series",
"year": 2023,
"price": 25000
},
"totalAmount": 25000,
"currency": "USD",
"notes": null,
"inspectionDate": null,
"customer": {
"id": "cmoabcde000001ny11aabbcc0",
"name": "Ahmed Ali",
"email": "ahmed@example.com"
},
"marketer": {
"id": "cmoabcde000002ny22aabbcc0",
"name": "Sales Rep",
"email": "sales@example.com"
},
"createdAt": "2026-05-01T08:00:00.000Z",
"updatedAt": "2026-05-01T08:00:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 1,
"totalPages": 1
}
}

Unauthorized — missing or invalid API key

Media typeapplication/json
object
success
required
boolean
error
required
string
statusCode
required
integer
Example
{
"success": false
}

Forbidden — route not in this key’s allowedRoutes

Media typeapplication/json
object
success
required
boolean
error
required
string
statusCode
required
integer
Example
{
"success": false
}

Rate limit exceeded

Media typeapplication/json
object
success
required
boolean
error
required
string
statusCode
required
integer
Example
{
"success": false
}
Retry-After
integer

Seconds to wait before retrying