Create Event
POST
/eventsCreate a new event within your organisation. Events are the top-level entity
that represents a ticketed experience - a concert, conference, sporting event,
or any occasion where you'll sell tickets.
After creating an event, you'll typically want to:
1. Add **occurrences** (specific dates and times)
2. Configure **price schemes** (ticket types and pricing)
3. Set the event status to `published` when ready to sell
When to use this
- Creating events programmatically from an external calendar or booking system
- Bulk importing events from a CSV or spreadsheet
- Building a custom event management interface
- Automating event creation based on venue schedules
Request Body
accountId*stringAccount ID that owns this event
name*stringEvent name
subtitlestringnullShort event subtitle / tagline
descriptionstringEvent description
shortDescriptionstringnullCard / listing summary
imageUrlstring,null (uri)Listing / card image URL
heroImageUrlstring,null (uri)Event-page hero image URL
presentationobjectnullEvent-level storefront design override
twoColumnSplitarray
buttonSize"small" | "medium" | "large"
status"draft" | "published" | "on_sale" | "sold_out" | "completed" | "cancelled"Event status
venueIdstringnullVenue ID (link to formal venue)
venueNamestringnullVenue name (text-only, alternative to venueId)
timezonestringEvent timezone
onSaleDatestring (date-time)When tickets go on sale
offSaleDatestring (date-time)When sales close
tagsstring[]Event tags
idstringTicket type ID (auto-generated if not provided)
name*stringTicket type name
descriptionstringTicket type description
displayOrder*integerDisplay order
venueLayoutTemplateIdstringSource venue layout template ID (if imported)
Response
Event created successfully
Notes
ℹ️Events must belong to a venue. Make sure to create the venue first if it doesn't exist.
💡Use a descriptive `slug` for SEO-friendly URLs. If not provided, one will be generated from the event name.
⚠️Events are created in `draft` status by default. Update the status to `published` when ready for ticket sales.
Code Samples
Create events using the TypeScript SDK:
import { BackstageClient } from '@ticketlayer/backstage';
const client = new BackstageClient({
organisationSlug: 'your-org',
});
client.setAccessToken('YOUR_ACCESS_TOKEN');
// Create a new event
const event = await client.events.create({
name: 'Summer Festival 2025',
slug: 'summer-festival-2025',
venueId: 'venue_abc123',
description: 'The biggest music festival of the summer!',
status: 'draft',
});
console.log(`Created event: ${event.id}`);
// Now add occurrences and price schemes...