Summary event reports
This endpoint does not belong to the priority lane. Do not use it within your ticket sales flow.
Summary reports are a summarized version of the detailed event reports. They indicate how many objects are in a certain status, category or section.
They also allow you to drill down into the numbers: how many booked seats are there in category A? how many free seats are left in section B?
If your account was created before July 12th 2022, the summary reports count tables that are bookable as a whole as 1 object. So if your event has 5 tables that are bookable as a whole, their count in the reports is 5.
For newer accounts, the reports contain the sum of the seats at the tables. 5 tables of 6 seats count as 30. Get in touch if you would like to enable that behavior on an old account.
Limiting the scope of season reports
By default, reports for seasons and partial seasons include objects that have been booked directly on events in the season as well as at the season level. The same is true for reports of events in a season - they contain both bookings at the season level and objects booked directly on them.
If you want a season report to only include objects booked at the season level, you can add a query parameter seasonBookingsPropagated to limit the scope,
e.g. /reports/events/season34/byStatus/booked?seasonBookingsPropagated=false. This can be applied to any season, partial season, or an event in a season.
In an example in which a season has 400 bookings at the top-level season level, and 50 bookings directly on one of the events, the report would change depending
on if you use the seasonBookingsPropagated query parameter.
| Value | Target | Number of bookings |
|---|---|---|
| Omitted | Top-level season | 450 |
| Omitted | Event in season | 450 |
false | Top-level season | 400 |
false | Event in season | 50 |
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byAvailabilityReason?seasonBookingsPropagated=false
$withoutPropagation = $this->seatsioClient->eventReports->withSeasonBookingsNotPropagated();
$withoutPropagation->byAvailabilityReason("season34");
$withoutPropagation->byAvailabilityReason("season34", "available");
$withoutPropagation->byAvailabilityReason("eventInSeason34", "booked");
var withoutPropagation = Client.EventReports.WithSeasonBookingsNotPropagated();
await withoutPropagation.ByAvailabilityReasonAsync("season34");
await withoutPropagation.ByAvailabilityReasonAsync("season34", "available");
await withoutPropagation.ByAvailabilityReasonAsync("eventInSeason34", "booked");
EventReports withoutPropagation = client.eventReports.withSeasonBookingsNotPropagated();
withoutPropagation.byAvailabilityReason("season34");
withoutPropagation.byAvailabilityReason("season34", "available");
withoutPropagation.byAvailabilityReason("eventInSeason34", "booked");
without_propagation = self.client.events.reports.with_season_bookings_not_propagated()
without_propagation.by_availability_reason("season34")
without_propagation.by_availability_reason("season34", status="available")
without_propagation.by_availability_reason("eventInSeason34", status="booked")
without_propagation = @seatsio.event_reports.with_season_bookings_not_propagated
without_propagation.by_availability_reason("season34")
without_propagation.by_availability_reason("season34", "available")
without_propagation.by_availability_reason("eventInSeason34", "booked")
const withoutPropagation = client.eventReports.withSeasonBookingsNotPropagated()
await withoutPropagation.byAvailabilityReason('season34');
await withoutPropagation.byAvailabilityReason('season34', 'available');
await withoutPropagation.byAvailabilityReason('eventInSeason34', 'booked');
withoutPropagation := client.EventReports.WithSeasonBookingsNotPropagated()
report, err := withoutPropagation.ByAvailabilityReason("season34")
items, err := withoutPropagation.BySpecificAvailabilityReason("season34", reports.Available)
items, err := withoutPropagation.BySpecificAvailabilityReason("eventInSeason34", reports.Booked)
Summary report by availability reason
This report allows you to figure out how many objects are still available, and how many are not - including the reason why they're not available.
That reason can be:
available(object is available, i.e. it's selectable for ticket buyers)booked(object is booked)reservedByToken(object is held)not_for_sale(object is marked as not for sale)- a custom status (object is assigned a custom status)
Objects that have a non-free status AND are marked as not for sale get that custom status as availability reason (instead of not_for_sale).
- Text
- PHP
- C#
- Java
- Ruby
- Python
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byAvailabilityReason/summary
$seatsioClient->eventReports->summaryByAvailabilityReason("event34");
await Client.EventReports.SummaryByAvailabilityReasonAsync("event34");
client.eventReports.summaryByAvailabilityReason("event34");
client.event_reports.summary_by_availability_reason("event34")
client.events.reports.summary_by_availability_reason("event34")
await client.eventReports.summaryByAvailabilityReason('eventKey');
report, err := client.EventReports.SummaryByAvailabilityReason("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byAvailabilityReason/summary -u aSecretKey:
{
"available": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byStatus": {
"free": 34
},
"byChannel": {
"NO_CHANNEL": 34
},
"byAvailability": {
"available": 34
}
},
"booked": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byStatus": {
"booked": 80
},
"byChannel": {
"NO_CHANNEL": 80
},
"byAvailability": {
"not_available": 80
}
},
"reservedByToken": {
"count": 0,
"bySection": {},
"byCategoryLabel": {},
"byCategoryKey": {},
"byStatus": {},
"byChannel": {},
"byAvailability": {}
},
"not_for_sale": {
"count": 0,
"bySection": {},
"byCategoryLabel": {},
"byCategoryKey": {},
"byStatus": {},
"byChannel": {},
"byAvailability": {}
}
}
Summary report by availability
This report allows you to distinguish between available and non-available objects. An object is considered available if:
- Its status equals
free - It's for sale:
forSale: true
Available objects can be found under the available key, non-available objects under not_available.
- Text
- PHP
- C#
- Java
- Ruby
- Python
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byAvailability/summary
$seatsioClient->eventReports->summaryByAvailability("event34");
await Client.EventReports.SummaryByAvailabilityAsync("event34");
client.eventReports.summaryByAvailability("event34");
client.event_reports.summary_by_availability("event34")
client.events.reports.summary_by_availability("event34")
await client.eventReports.summaryByAvailability('eventKey');
report, err := client.EventReports.SummaryByAvailability("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byAvailability/summary -u aSecretKey:
{
"available": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byStatus": {
"free": 34
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"not_available": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byStatus": {
"booked": 80
},
"byChannel": {
"NO_CHANNEL": 80
}
}
}
Summary report by status
Most likely you'll want to use the summary report by availability reason instead of the one by status.
The availability reason gives detailed info on why an object is not available: either because it has a non-free status, or because it's not for sale. In the report by status, objects that are not for sale are considered free (since technically that is their status).
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byStatus/summary
$seatsioClient->eventReports->summaryByStatus("event34");
await Client.EventReports.SummaryByStatusAsync("event34");
client.eventReports.summaryByStatus("event34");
client.events.reports.summary_by_status("event34")
client.event_reports.summary_by_status("event34")
await client.eventReports.summaryByStatus('eventKey');
report, err := client.EventReports.SummaryByStatus("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byStatus/summary -u aSecretKey:
Example response
{
"booked": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byAvailability": {
"not_available": 34
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"free": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
}
}
}
Summary report by category label
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byCategoryLabel/summary
$seatsioClient->eventReports->summaryByCategoryLabel("event34");
await Client.EventReports.SummaryByCategoryLabelAsync("event34");
client.eventReports.summaryByCategoryLabel("event34");
client.events.reports.summary_by_category_label("event34")
client.event_reports.summary_by_category_label("event34")
await client.eventReports.summaryByCategoryLabel('eventKey');
report, err := client.EventReports.SummaryByCategoryLabel("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byCategoryLabel/summary -u aSecretKey:
{
"premium": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byStatus": {
"free": 10,
"booked": 24
},
"byAvailability": {
"available": 10
"not_available": 24
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"standard": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byStatus": {
"free": 2,
"booked": 78
},
"byAvailability": {
"available": 2
"not_available": 78
},
"byChannel": {
"NO_CHANNEL": 80
}
},
"NO_CATEGORY": {
"count": 0,
"bySection": {},
"byStatus": {},
"byAvailability": {},
"byChannel": {}
}
}
Summary report by category key
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byCategoryKey/summary
$seatsioClient->eventReports->summaryByCategoryKey("event34");
await Client.EventReports.SummaryByCategoryKeyAsync("event34");
client.eventReports.summaryByCategoryKey("event34");
client.events.reports.summary_by_category_key("event34")
client.event_reports.summary_by_category_key("event34")
await client.eventReports.summaryByCategoryKey('eventKey');
report, err := client.EventReports.SummaryByCategoryKey("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byCategoryKey/summary -u aSecretKey:
{
"1": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byStatus": {
"free": 10,
"booked": 24
},
"byAvailability": {
"available": 10,
"not_available": 24
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"2": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byStatus": {
"free": 2,
"booked": 78
},
"byAvailability": {
"available": 2,
"not_available": 78
},
"byChannel": {
"NO_CHANNEL": 80
}
},
"NO_CATEGORY": {
"count": 0,
"bySection": {},
"byStatus": {},
"byChannel": {}
}
}
Summary report by section
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/bySection/summary
$seatsioClient->eventReports->summaryBySection("event34");
await Client.EventReports.SummaryBySectionAsync("event34");
client.eventReports.summaryBySection("event34");
client.events.reports.summary_by_section("event34")
client.event_reports.summary_by_section("event34")
await client.eventReports.summaryBySection('eventKey');
report, err := client.EventReports.SummaryBySection("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/bySection/summary -u aSecretKey:
{
"Floor": {
"count": 34,
"byStatus": {
"booked": 12,
"free": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byAvailability": {
"available": 22,
"not_available": 12
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"Balcony": {
"count": 80,
"byStatus": {
"free": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
}
},
"NO_SECTION": {
"count": 0,
"byStatus": {},
"byCategoryLabel": {},
"byCategoryKey": {},
"byChannel": {}
}
}
Summary report by channel
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byChannel/summary
$seatsioClient->eventReports->summaryByChannel("event34");
await Client.EventReports.SummaryByChannelAsync("event34");
client.eventReports.summaryByChannel("event34");
client.events.reports.summary_by_channel("event34")
client.event_reports.summary_by_channel("event34")
await client.eventReports.summaryByChannel('eventKey');
report, err := client.EventReports.SummaryByChannel("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byChannel/summary -u aSecretKey:
{
"channel1": {
"count": 34,
"byStatus": {
"booked": 12,
"free": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byAvailability": {
"available": 22,
"not_available": 12
}
},
"channel2": {
"count": 80,
"byStatus": {
"free": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
}
},
"NO_CHANNEL": {
"count": 0,
"byStatus": {},
"byCategoryLabel": {},
"byCategoryKey": {}
}
}
Summary report by object type
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byObjectType/summary
$seatsioClient->eventReports->summaryByObjectType("event34");
await Client.EventReports.SummaryByObjectTypeAsync("event34");
client.eventReports.summaryByObjectType("event34");
client.events.reports.summary_by_object_type("event34")
client.event_reports.summary_by_object_type("event34")
await client.eventReports.summaryByObjectType('eventKey');
report, err := client.EventReports.SummaryByObjectType("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byObjectType/summary -u aSecretKey:
Example response
{
"seat": {
"count": 34,
"bySection": {
"Floor": 12,
"Balcony": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byAvailability": {
"not_available": 34
},
"byChannel": {
"NO_CHANNEL": 34
},
"byStatus": {
"free": 34
}
},
"generalAdmission": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
},
"byStatus": {
"free": 80
}
},
"booth": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
},
"byStatus": {
"free": 80
}
},
"table": {
"count": 80,
"bySection": {
"Balcony": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
},
"byStatus": {
"free": 80
}
}
}
Summary report by zone
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
GET https://api-{region}.seatsio.net/reports/events/{eventKey}/byZone/summary
$seatsioClient->eventReports->summaryByZone("event34");
await Client.EventReports.SummaryByZoneAsync("event34");
client.eventReports.summaryByZone("event34");
client.events.reports.summary_by_zone("event34")
client.event_reports.summary_by_zone("event34")
await client.eventReports.summaryByZone('eventKey');
report, err := client.EventReports.SummaryByZone("eventKey")
curl https://api-{region}.seatsio.net/reports/events/event34/byZone/summary -u aSecretKey:
{
"Zone 1": {
"count": 34,
"byStatus": {
"booked": 12,
"free": 22
},
"byCategoryLabel": {
"premium": 10,
"standard": 24
},
"byCategoryKey": {
"1": 10,
"2": 24
},
"byAvailability": {
"available": 22,
"not_available": 12
},
"byChannel": {
"NO_CHANNEL": 34
}
},
"Zone 2": {
"count": 80,
"byStatus": {
"free": 80
},
"byCategoryLabel": {
"premium": 2,
"standard": 78
},
"byCategoryKey": {
"1": 2,
"2": 78
},
"byAvailability": {
"available": 80
},
"byChannel": {
"NO_CHANNEL": 80
}
},
"NO_ZONE": {
"count": 0,
"byStatus": {},
"byCategoryLabel": {},
"byCategoryKey": {},
"byChannel": {}
}
}