Skip to content

List orders

GET/v1/ordersorders:read

Returns your orders, newest first, cursor-paginated.

Name Type Default Notes
limit integer 50 Maximum 200
cursor string — next_cursor from the previous page
Terminal window
curl 'https://partner-api.esimfo.com/v1/orders?limit=100' \
-H 'Authorization: Bearer esf_live_at_...'
Field Type Notes
data[] array Order summaries — every field from Get an order except items and esims
next_cursor string | null Pass as cursor for the next page
has_more boolean Whether another page exists
{
"data": [
{
"id": "ord_4b21c9e7",
"order_number": "ESF-2026-0004821",
"status": "COMPLETED",
"payment_mode": "BALANCE",
"subtotal": "8.40",
"commission_amount": "0.00",
"total": "8.40",
"currency": "EUR",
"client_reference": "cart-4821",
"created_at": "2026-08-22T09:14:03.512Z"
},
{
"id": "ord_4b21c9a2",
"order_number": "ESF-2026-0004820",
"status": "PARTIALLY_FAILED",
"payment_mode": "BALANCE",
"subtotal": "12.60",
"commission_amount": "0.00",
"total": "12.60",
"currency": "EUR",
"client_reference": null,
"created_at": "2026-08-22T08:51:44.108Z"
}
],
"next_cursor": "ord_4b21c9a2",
"has_more": true
}

Follow next_cursor while has_more is true:

Terminal window
curl 'https://partner-api.esimfo.com/v1/orders?limit=200&cursor=ord_4b21c9a2' \
-H 'Authorization: Bearer esf_live_at_...'

Cursors are opaque — pass back exactly what you received and never construct one. Prefer large pages: 200 records in one call costs a single request against your rate limit, while the same data in pages of 25 costs eight.

Only your own orders appear here. An API key sees the account it belongs to. Orders placed by your sub-partners are not included.

Status Code Cause
403 insufficient_scope Key lacks orders:read
429 rate_limited Over the per-minute allowance