Skip to main content
GET
/
api
/
public
/
events
/
{id}
{
  "Event": {},
  "AttendeeCount": 123,
  "Attendees": [
    {}
  ],
  "Categories": [
    {}
  ],
  "RelatedEvents": [
    {}
  ],
  "Comment": {},
  "Event.Comments[].Id": 123,
  "Event.Comments[].Text": {},
  "Event.Comments[].Rating": {},
  "Event.Comments[].Published": true,
  "Event.Comments[].PostedBy": {},
  "Event.Comments[].CreatedOn": "<string>",
  "Event.Comments[].CreatedOnUtc": "<string>",
  "404 Not Found": {}
}

Get Event Details

Returns complete information for a single published event, including all ticket products, a list of recent attendees, related events, and customer comments. Used on the event detail page and in the basket preview.

Authentication

No authentication required.

Path Parameters

id
number
required
The integer ID of the event. Obtained as Id from GET /api/public/events or GET /api/public/events/my.

Query Parameters

_shape
string
Comma-separated list of field paths to include in the response. When provided, only the specified fields are returned — useful for reducing payload size. Supports nested paths using dot notation. Example: _shape=Event.Name,Event.StartDateUtc,Event.EventProducts,RelatedEvents.

Response

Returns an EventDetails object.

Core Fields

Event
CalendarEvent
required
Full event object. See the field descriptions in List Events for the complete CalendarEvent schema.
AttendeeCount
number
Total number of tickets sold across all ticket products.
Attendees
Coworker[]
Full Coworker objects for event attendees — used for social proof displays (“X people are going”).
Categories
EventCategory[]
All event categories available at this location — useful for populating a “Browse by category” navigation without an additional request.
A list of other events from the same location or category, used for the “You might also like” section.
Comment
EventComment | null
Template object for a new comment submission. Use the newComment endpoint to post a comment.

EventComment Fields

Event.Comments[].Id
number
Unique identifier for the comment.
Event.Comments[].Text
string | null
Comment body text.
Event.Comments[].Rating
number | null
Optional numeric rating (e.g. 1–5) submitted alongside the comment.
Event.Comments[].Published
boolean
When true, the comment is visible to all customers.
Event.Comments[].PostedBy
User
The customer who posted the comment, including Id and FullName.
Event.Comments[].CreatedOn
string
Local datetime the comment was posted (ISO 8601).
Event.Comments[].CreatedOnUtc
string
UTC datetime the comment was posted (ISO 8601).

Examples

Fetch event details (full payload)

GET /api/public/events/412
{
  "AttendeeCount": 7,
  "Attendees": [{ "Id": 201, "FullName": "Maria Garcia", "Email": "maria@example.com" }],
  "Categories": [
    {
      "Id": 3,
      "Title": "Workshops",
      "UniqueId": "a1b2c3d4-...",
      "IdString": "3",
      "IsNull": false,
      "CreatedOn": "2024-01-10T10:00:00",
      "UpdatedOn": "2024-01-10T10:00:00",
      "CreatedOnUtc": "2024-01-10T10:00:00Z",
      "UpdatedOnUtc": "2024-01-10T10:00:00Z"
    }
  ],
  "RelatedEvents": [
    {
      "Id": 415,
      "Name": "Afternoon Pilates",
      "ShortDescription": "A refreshing end-of-day stretch session.",
      "StartDateUtc": "2026-03-24T17:00:00Z",
      "EndDateUtc": "2026-03-24T18:00:00Z",
      "Business": { "Id": 5, "Name": "Downtown Coworking Hub" },
      "EventCategories": [{ "Id": 3, "Title": "Workshops" }]
    }
  ],
  "Comment": null,
  "Event": {
    "Id": 412,
    "Name": "Morning Yoga & Mindfulness",
    "ShortDescription": "Start your week with a guided yoga session open to all levels.",
    "LongDescription": "<p>Join us every Monday for a 45-minute yoga session led by certified instructor Sarah Chen...</p>",
    "HostFullName": "Sarah Chen",
    "Location": "Studio Room B",
    "VenueAddress": null,
    "StartDate": "2026-03-23T07:30:00",
    "EndDate": "2026-03-23T08:15:00",
    "StartDateUtc": "2026-03-23T07:30:00Z",
    "EndDateUtc": "2026-03-23T08:15:00Z",
    "MultipleDays": false,
    "HasTickets": true,
    "SoldOut": false,
    "ChepeastPrice": 0,
    "MostExpensivePrice": 12.0,
    "Allocation": 20,
    "Sales": 7,
    "EnableWaitList": false,
    "AllowComments": true,
    "HasLargeImage": true,
    "HasSmallImage": true,
    "HasAddress": true,
    "HasResource": false,
    "Resource": null,
    "EventProducts": [
      {
        "Id": 88,
        "Name": "Free Entry",
        "Description": "Community member free pass",
        "Price": 0,
        "PriceCurrencyCode": "GBP",
        "PriceFormatted": "£0.00",
        "TicketsLeft": 13,
        "SoldOut": false,
        "IsAvailableNow": true,
        "MaxTicketsPerAttendee": null,
        "LastFew": false,
        "Future": false,
        "Expired": false,
        "DisplayOrder": 1,
        "StartDate": "2026-01-01T00:00:00",
        "EndDate": "2026-03-23T08:15:00",
        "Quantity": 1
      }
    ],
    "EventCategories": [{ "Id": 3, "Title": "Workshops" }],
    "Business": { "Id": 5, "Name": "Downtown Coworking Hub", "WebAddress": "https://downtown.example.com" },
    "Comments": [
      {
        "Id": 77,
        "Text": "Fantastic session, highly recommend!",
        "Rating": 5,
        "Published": true,
        "PostedBy": { "Id": 201, "FullName": "Maria Garcia" },
        "CreatedOn": "2026-02-10T09:15:00",
        "CreatedOnUtc": "2026-02-10T09:15:00Z"
      }
    ],
    "UniqueId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "IdString": "412",
    "CreatedOn": "2025-11-01T09:00:00",
    "UpdatedOn": "2026-03-01T12:00:00",
    "CreatedOnUtc": "2025-11-01T09:00:00Z",
    "UpdatedOnUtc": "2026-03-01T12:00:00Z",
    "IsNull": false
  }
}

Fetch event with a minimal field set

GET /api/public/events/412?_shape=Event.Id,Event.Name,Event.StartDateUtc,Event.EventProducts.Id,Event.EventProducts.Price,Event.EventProducts.TicketsLeft,RelatedEvents.Id,RelatedEvents.Name
{
  "Event": {
    "Id": 412,
    "Name": "Morning Yoga & Mindfulness",
    "StartDateUtc": "2026-03-23T07:30:00Z",
    "EventProducts": [{ "Id": 88, "Price": 0, "TicketsLeft": 13 }]
  },
  "RelatedEvents": [{ "Id": 415, "Name": "Afternoon Pilates" }]
}

TypeScript Integration

import endpoints from '@/api/endpoints'
import { EventDetails } from '@/types/endpoints/EventDetails'
import { createShape } from '@/helpers/shape-helper'
import { useData } from '@/api/fetchData'

const endpoint = endpoints.events.details(412)
const shape = createShape<typeof endpoint.type>()([
  'Event.Id',
  'Event.Name',
  'Event.StartDateUtc',
  'Event.EndDateUtc',
  'Event.ShortDescription',
  'Event.LongDescription',
  'Event.HasLargeImage',
  'Event.EnableWaitList',
  'Event.HasTickets',
  'Event.AllowComments',
  'Event.EventProducts.Id',
  'Event.EventProducts.Name',
  'Event.EventProducts.Price',
  'Event.EventProducts.TicketsLeft',
  'Event.EventProducts.IsAvailableNow',
  'RelatedEvents.Id',
  'RelatedEvents.Name',
  'RelatedEvents.StartDateUtc',
  'Event.Comments.Id',
  'Event.Comments.Text',
  'Event.Comments.PostedBy.FullName',
  'Event.Comments.CreatedOnUtc',
  'Event.Comments.Rating',
])

const { resource: event } = useData<typeof shape.type>(httpClient, endpoint.url, {
  shape: shape.fields,
})

Usage in Portal

ContextSource file
Event detail page (/events/{id})src/views/events/details/data.ts
Basket item preview (event ticket in basket)src/components/Basket/items/EventBasketItemRow.tsx
Event checkout page (/checkout/event)src/views/public/checkout/event/useEventCheckoutData.ts

Error Responses

404 Not Found
error
No published event exists with the specified ID.
MethodEndpointDescription
GET/api/public/eventsPaginated list of published events
GET/api/public/events/{eventId}/product/{productId}Detail for a specific ticket product
POST/api/public/events/{id}/joinWaitingListJoin the waiting list for a sold-out event
GET/api/public/events/myEvents the authenticated customer has tickets for
POST/en/events/newCommentPost a comment on an event