Skip to main content

Create Venue Layout

POST/venues/{id}/layouts
Set up a seating layout for a venue. Layouts define how a venue is configured for ticket sales. A theatre might have a "Full House" layout with all seats, and a "Cabaret" layout with tables. A stadium might have different layouts for concerts vs football matches. After creating a layout, you'll add areas (like "Stalls" or "Circle") and then seats within those areas.

When to use this

  • Setting up seating for a new venue
  • Creating different configurations for the same space
  • Defining reserved seating vs general admission areas

Parameters

idpathrequired
string

Venue ID

Request Body

name*stringLayout name
descriptionstringLayout description
status"active" | "archived"Layout status
totalCapacitynumberTotal capacity (denormalized sum of all area capacities)
floorsobject[]Floors for multi-level venues
idstringFloor ID (auto-generated if not provided)
name*stringFloor name
displayOrder*numberDisplay order (0 = ground, higher = upper floors)
descriptionstringFloor description
categoriesobject[]Pricing categories/zones
idstringCategory ID (auto-generated if not provided)
name*stringCategory name
descriptionstringCategory description
displayOrder*numberDisplay order in UI
colorstringHex color for visual distinction
areasobject[]Venue areas (GA and allocated)
idstringArea ID (auto-generated if not provided)
name*stringArea name
descriptionstringArea description
type*"unallocated" | "allocated"Area type (unallocated = GA, allocated = assigned seating)
status"active" | "inactive"
floorIdstringFloor ID (for multi-level venues)
capacity*numberTotal capacity
displayOrder*numberDisplay order in UI
colorstringHex color for visual distinction
sectionsobject[]Optional subdivisions within the area
positionobjectVisual positioning for GA areas on map
seatsobject[]Seats array (only for allocated seating areas)
decorationsobject[]Visual elements (stages, pillars, labels, etc.)
idstringDecoration ID (auto-generated if not provided)
type*"stage" | "pillar" | "barrier" | "aisle" | "wall" | "exit" | "entrance" | "bar" | "restroom" | "label" | "custom"Decoration type
namestringDecoration name
position*objectPosition and dimensions
labelstringDisplay label text
styleobjectVisual styling
tagsstring[]Layout tags

Response

Venue layout created successfully

Notes

ℹ️After creating the layout, use `addAreaToVenueLayout` to add seating areas.
💡Give layouts clear names like "Full Capacity" or "Reduced COVID Layout" so staff can easily pick the right one.
Code Samples

Create Venue Layout using the TypeScript SDK:

import { BackstageClient } from '@ticketlayer/backstage';

const client = new BackstageClient({
organisationSlug: 'your-org',
});
client.setAccessToken('YOUR_ACCESS_TOKEN');

// Create venuelayout
const venuelayout = await client.venuelayout.create({
name: 'New VenueLayout',
// Add other required fields
});

console.log(`Created venuelayout with ID: ${venuelayout.id}`);

Try It

Path Parameters
Venue ID
Request Body
Layout name
Layout description
Layout status
Total capacity (denormalized sum of all area capacities)
Floors for multi-level venues
Pricing categories/zones
Venue areas (GA and allocated)
Visual elements (stages, pillars, labels, etc.)
Layout tags

Related