Skip to content
Core API
Esc
navigateopen⌘Jpreview

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&currency=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.

Last updated on August 21, 2026