swarmtix_orders_list
Lists the orders placed for an event, newest first, with buyer name, totals and checkout answers
swarmtix_orders_list
Lists the orders placed for one event, newest first, one page at a time. Each entry carries the order id, the buyer's name, the number of tickets, the total paid with the event's currency code, when it was placed, how the order was taken, and whether it is still active.
When you would reach for it
- To see recent sales without opening the dashboard.
- To find an order id for
swarmtix_orders_get. - To read the answers buyers gave to your checkout questions, which ride along on each order.
Scope
orders:read
This scope exposes your buyers' personal details by design. Each order carries the buyer's name, and the all-dates listing also carries their email address. The consent page says so in those words before you approve it.
Ticket barcodes and security codes are never returned, by this tool or any other.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
event | string | Yes | — | The event's id (a GUID) or its URL slug. |
eventDate | string | No | every date | Limit the results to one scheduled date, by its id from swarmtix_event_dates_list. |
limit | integer | No | 50 | How many orders to return. 1 to 200. |
cursor | string | No | — | The cursor from the end of a previous page. Omit to start at the beginning. |
buyerEmail is only populated when eventDate is omitted. Narrowing to a single date reads a different query, and that query does not select the buyer's email address — the field comes back empty. If you need the email, list across all dates, or read the order with swarmtix_orders_get, which always carries it.
Example call
{
"name": "swarmtix_orders_list",
"arguments": { "event": "spring-summit-2026", "limit": 2 }
}What comes back
[
{
"orderId": 184149,
"eventId": "8f14e45f-ceea-467a-9c3d-1b2a5f6e7d80",
"buyerName": "Sarah Meyer",
"buyerEmail": "[email protected]",
"ticketCount": 2,
"totalAmount": 91.7,
"currency": "EUR",
"currencySymbol": "€",
"placedAt": "2026-10-28T14:22:09",
"active": true,
"orderType": "online",
"checkoutAnswers": "Any dietary requirements: Vegetarian"
},
{
"orderId": 184148,
"eventId": "8f14e45f-ceea-467a-9c3d-1b2a5f6e7d80",
"buyerName": "Tomás Ribeiro",
"buyerEmail": "[email protected]",
"ticketCount": 1,
"totalAmount": 46.35,
"currency": "EUR",
"currencySymbol": "€",
"placedAt": "2026-10-28T11:04:51",
"active": true,
"orderType": "door"
}
]
Showing 2 of 312. Call again with cursor "MDAwMmNmNTUtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw" for the rest.| Field | What it is |
|---|---|
orderId | The order's numeric id — what swarmtix_orders_get takes |
eventId | The event the order belongs to |
buyerName | The buyer's full name, as one string |
buyerEmail | The buyer's email address. Only populated when eventDate is omitted — see above. |
ticketCount | How many tickets are in the order |
totalAmount | What was paid, including fees |
currency | The event's currency as its ISO 4217 code — "EUR", "USD" |
currencySymbol | The symbol that renders it — "€", "$" |
placedAt | When the order was placed |
active | Whether the order is still live rather than cancelled |
orderType | How the order was taken, as a word — see below |
checkoutAnswers | The buyer's answers to the event's custom checkout questions, as one string |
currency and currencySymbol are two fields on purpose. The code is what identifies the currency — "$" is four different ones, so totalling figures across events on the symbol is not safe. The symbol is there for rendering a number to a reader and nothing else.
orderType is a word, not a number:
| Value | Meaning |
|---|---|
"online" | Bought through the public checkout. This is what an ordinary web purchase is. |
"imported" | Added from a guest list |
"complimentary" | Issued free by the organiser |
"door" | Taken at the door |
orderType can also be null, and an unrecognised stored value renders as "unrecognised". The column is nullable, so an order that records nothing is reported as recording nothing rather than being assumed to be an online sale — and a value the product has no meaning for is named as such rather than guessed at. Handle both rather than assuming one of the four words.
buyerName is one field rather than two on purpose. On this read path the first and last name are packed together into a single value and the surname field is left empty, so publishing two fields would put a blank surname next to a full name.
checkoutAnswers can contain whatever a buyer typed into a custom question. Treat it as personal data.
What happens when you call it
- The event identifier is resolved and the ownership checks run.
limitis checked, andeventDateis parsed if given. AneventDatethat is not an id is refused rather than ignored — treating it as "all dates" would answer a wider question than you asked with a number that looks like the answer to yours.- Every order for the event — or for that one date — is fetched in one unbounded list.
- The list is sorted newest first, with the order id breaking ties between orders placed in the same instant.
- One page is cut, projected to the fields above, and serialized.
Troubleshooting
buyerEmail is missing from every row
You passed eventDate. Remove it and list across all dates, or read the order with swarmtix_orders_get.
"eventDate is not valid: it is not an id. Expected an event date id (a GUID) from the event dates tool, or nothing for every date."
eventDate must be a date id from swarmtix_event_dates_list, not a calendar date like 2026-11-04.
"Event not found, or this connection does not have access to it."
The event does not exist, or it belongs to a different organisation than this connection covers.
"cursor is not valid: the order it points at is no longer in this list."
The order named by the cursor is no longer in the result set — often because it was cancelled, or because a different eventDate was passed on the second call. Keep the arguments identical between pages, or start again.
"This connection is not authorized for orders:read. Reconnect and grant it to use this tool."
Reconnect and approve orders:read. Bear in mind what it grants: your buyers' names and email addresses. If you only want sales figures, analytics:read answers most of those questions without any personal data — see swarmtix_analytics_event.
The list is longer than one page
That is normal, and it is not an error. Pass the cursor from the continuation line back as cursor, or narrow the question to one date.
Use cases
- "What sold today?" — the newest orders are first, so the first page is the answer
- Support lookups — find an order by buyer name, then read it in full
- Dietary and accessibility rollups —
checkoutAnswersacross a page of orders - Reconciliation — order totals against the revenue on
swarmtix_analytics_event