Skip to main content

Get Orders

Retrieve a list of orders from your store.

Orders of every status are returned by default, newest first. Narrow the list with the optional filters below — for example status=completed to return only paid orders. All filters combine with AND.

Request

GET /orders

Query Parameters

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number for pagination
statusstringNoFilter by order status. One of created, awaiting_payment, processing, completed, canceled, refunded.
created_fromstringNoOnly orders created on or after this date (inclusive), YYYY-MM-DD.
created_tostringNoOnly orders created on or before this date (inclusive), YYYY-MM-DD.
customerstringNoFilter by customer UUID.
productstringNoFilter by primary product UUID. Order bumps are not matched.

Omitting a filter or passing it empty means "no filter on that field". Passing a non-empty but unparseable value — an unknown status, a malformed date, or a non-UUID customer / product — returns a 400 (see Bad Request).

Example Request

curl -X GET "https://cart.easy.tools/api/v1/orders?status=completed&page=1" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response

Success Response (200)

Returns a paginated list of orders.

{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"amount": 4900,
"currency": "pln",
"quantity": 1,
"product_name": "Premium Course",
"customer_email": "buyer@example.com",
"created_at": "2026-05-27T10:15:30+00:00"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"status": "awaiting_payment",
"amount": 1999,
"currency": "eur",
"quantity": 2,
"product_name": "Organic Tea Selection",
"customer_email": null,
"created_at": "2026-05-26T08:00:00+00:00"
}
],
"pagination": {
"current_page": 1,
"total_pages": 5
}
}

Response Fields

FieldTypeNullableDescription
idstringNoUnique identifier for the order (UUID)
statusstringYesOrder status (see the status filter for possible values). Null for legacy orders without a status.
amountintegerNoOrder total in minor units (e.g. cents/grosze)
currencystringNoLowercase ISO currency code (e.g. "pln", "eur")
quantityintegerNoQuantity of the primary product
product_namestringNoPrimary product name, cached at purchase time
customer_emailstringYesCustomer email. Null when the customer account is missing (e.g. a deleted user).
created_atstringNoWhen the order was created (ISO 8601 format)

To read line items, transactions, refunds, invoices, or full customer details for an order, call Get Order with the include parameter.

Error Responses

Bad Request (400)

Returned when a filter has a non-empty but unparseable value. The message names the offending field and the value received.

{
"message": "Invalid value for 'status': 'actve'"
}

Unauthorized (401)

{
"message": "Unauthenticated."
}