Skip to main content

Get Checkout Sessions

Retrieve a list of checkout sessions from your store.

Sessions of every status and every currency are returned by default, newest first. Narrow the list with the optional filters below. All filters combine with AND.

Request​

GET /checkout-sessions

Query Parameters​

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number for pagination.
per_pageintegerNo10Items per page (min: 1, max: 100).
sortstringNo-created_atSort field: created_at. Prefix with - for descending.
statusstringNononeOne status: opened, errored, finalized, recovering, recovered, or help_requested.
created_fromstringNononeOnly sessions created on or after this date (inclusive), YYYY-MM-DD. No date window when omitted.
created_tostringNononeOnly sessions created on or before this date (inclusive), YYYY-MM-DD. No date window when omitted.
customerstringNononeFilter by customer UUID.
productstringNononeFilter by product UUID. A UUID that does not belong to this store matches nothing.
querystringNononeSearch term. Matched as an exact session email when it is a valid email address, otherwise as a partial match on the buyer name.
currencystringNononeLowercase ISO-4217 code (e.g. usd). Omit it to return every currency. Each item still carries its own amount and currency.

Omitting a filter or passing it empty means no filter on that field. A present but unparseable value returns 400 (see Bad Request). That includes an unknown status, a malformed date, a non-UUID customer or product, a currency that is not a 3-letter code, an out-of-range per_page, or an unknown sort field. The query search term is free text and is always accepted.

Ordering: Sessions default to created_at descending (newest first) unless sort is supplied.

Counting matches: every response includes the filtered total in pagination.total. To get only a count, request per_page=1 with your filters and read pagination.total.

Example Request​

curl -X GET "https://cart.easy.tools/api/v1/checkout-sessions?per_page=1" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response​

Success Response (200)​

Returns a paginated list of checkout sessions. The example requests one item.

{
"items": [
{
"id": "dc39545d-3cfa-45d6-82cd-1f227cae763a",
"status": "opened",
"amount": 3900,
"currency": "usd",
"quantity": 1,
"product_name": "Starter Workshop",
"customer_email": "buyer@example.com",
"full_name": "Jane Doe",
"created_at": "2026-09-09T10:07:20+02:00"
}
],
"pagination": {
"current_page": 1,
"total_pages": 3215,
"per_page": 1,
"total": 3215
}
}

Response Fields​

The list item is a subset of the Checkout Session object. amount is an integer in minor units (e.g. cents), or null.

FieldTypeNullableDescription
idstringNoSession UUID.
statusstringNoSession status (see Status).
amountintegerYesCart total in minor units (e.g. cents). Null when the cart has no price yet.
currencystringYesLowercase ISO-4217 code (e.g. usd). Null on older sessions that stored none.
quantityintegerNoQuantity in the cart.
product_namestringYesProduct name. Null when the product no longer exists.
customer_emailstringYesEmail stored on the session. Null when the cart has no email yet.
full_namestringYesBuyer name. Null when the cart has no name yet.
created_atstringNoWhen the session was created (ISO 8601).

To read recovery timestamps, terms, or the linked customer, product, and order, call Get Checkout Session with include.

Pagination Object​

FieldTypeDescription
current_pageintegerCurrent page number.
total_pagesintegerTotal number of pages.
per_pageintegerEffective page size (echoes the per_page request parameter).
totalintegerTotal number of sessions matching the applied filters, across all pages.

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': 'opned'"
}

Unauthorized Error (401)​

{
"message": "Unauthenticated."
}

Forbidden Error (403)​

Returned when your API key has not been granted access to the requested store.

{
"message": "You do not have API access to the requested store."
}

Rate Limit Error (429 Too Many Requests)​

Returned when you exceed the rate limit. The Retry-After response header gives the number of seconds to wait.

{
"message": "Too many requests. Please retry after 60 seconds."
}