Ticket sales analytics
Ticket sales analytics: available fields, filters, associations, and API operations.
Path: ticket-sales-analytics at organization level
Methods: GET collection/record only.
Each record represents one event inside the token’s event selection.
- Fields:
event-id,metric-version,generated-at,time-zone,draft-purchases-count,invoiced-purchases-count,completed-purchases-count,failed-purchases-count,currency-totals,tickets,discount-codes,purchases-by-type,purchases-by-source. - Filters:
event_id,created_at_from,created_at_to,purchase_completed_from,purchase_completed_to,currency,ticket_id,ticket_type_id,discount_code_id,purchase_type,purchase_source. - Associations: none.
GET /api/core/organizations/30/ticket-sales-analytics?event_id=319986&purchase_completed_from=2026-01-01T00:00:00Z¤cy=EUR
Creation-time filters affect status counts and the type/source breakdowns. Completion-time filters affect completed purchase, money, ticket, and discount-code aggregates. Currency and amount values use the currency’s minor units; for EUR, 1250 means EUR 12.50.
Nested response structures:
{
"currency-totals": [
{
"currency": "EUR",
"completed-purchases-count": 25,
"tickets-sold-count": 31,
"subtotal-amount-minor": 325000,
"discount-amount-minor": 15000,
"total-amount-minor": 310000,
"average-order-value-minor": 12400
}
],
"tickets": [
{
"ticket-id": 501,
"ticket-name": "Standard",
"ticket-type-id": 301,
"currency": "EUR",
"quantity-sold": 20,
"gross-amount-minor": 200000,
"discount-amount-minor": 10000,
"net-amount-minor": 190000
}
],
"discount-codes": [
{
"discount-code-id": 601,
"code": "EARLY10",
"currency": "EUR",
"completed-purchases-count": 8,
"tickets-sold-count": 10,
"discount-amount-minor": 10000
}
],
"purchases-by-type": [
{ "purchase-type": "checkout", "count": 18 }
],
"purchases-by-source": [
{ "purchase-source": "ticketing", "count": 18 }
]
}
Ticket identity is resolved from the current ticket record while monetary amounts use the captured historical ticket price. If a request would materialize more than 100,000 historical ticket rows, the API returns 422; narrow it with event, date, currency, or ticket filters.