Skip to content
Docs
Operation

Add Area to Layout

POST/venues/{id}/layouts/{layoutId}/areas
Create a new seating area within a venue layout. Areas group seats together-think "Stalls", "Circle", "Balcony", or "GA Floor". Each area can have its own capacity, either as assigned seats or general admission. After creating an area, you'll typically add seats to it using the seat endpoints or the bulk generation tools.

When to use this

  • Setting up a new seating section in a venue
  • Creating a general admission standing area
  • Adding accessible seating sections

Path parameters

idstringRequired
Venue ID
layoutIdstringRequired
Layout ID

Headers

Idempotency-KeystringOptional
Makes the write safe to retry. The first request with a key does the work and its response is stored for 24 hours; a repeat with the same key and the same request (method, path, query, X-Ticketlayer-Channel, TL-Version and body) gets that stored status and body back, marked `Idempotent-Replay: true`, without running again. The key is scoped to your organisation and your credential. The same key with a different request is 422 IDEMPOTENCY_KEY_REUSED; a repeat while the first is still running waits for it, then answers 409 IDEMPOTENT_REQUEST_IN_PROGRESS if it has not finished. Only a 2xx is stored: after an error the key is free again. Omit the header and the request behaves as it always has.

Body

name*stringArea name
descriptionstringArea description
type*"unallocated" | "allocated"Area type (unallocated for GA, allocated for assigned seating)
status"active" | "inactive"Area status
capacity*numberTotal capacity for this area
displayOrdernumberDisplay order in UI (auto-assigned if not provided)
colorstringHex color for visual distinction
seatsany[]Seats array (only for allocated seating areas, leave empty for GA)
▼positionobjectVisual positioning for GA areas on seating map
x*number
y*number
width*number
height*number
categoryIdstringCategory ID for pricing (especially for GA areas)

Returns

Area added successfully

Errors

400
Bad Request - Invalid input
401
Unauthorized - Authentication required
403
Forbidden - Insufficient permissions
404
Not Found - Resource not found
500
Internal Server Error

Every error names its code and links to it. All error codes

Notes

Note
Areas are containers for seats-create the area first, then add seats to it.
Tip
Give areas clear names that match what's printed on physical signage at the venue.

Related

import { BackstageClient } from '@ticketlayer/backstage';const client = new BackstageClient({  organisationSlug: 'your-org',});client.setAccessToken('YOUR_ACCESS_TOKEN');// Add Area To Venue Layoutconst result = await client.areatovenuelayout.addAreaToVenueLayout('{{ID}}', { /* request body */ });console.log('Operation completed:', result);
Response 201
{
  "area": {
    "id": "vla_abc123",
    "name": "Main Floor",
    "description": "General admission area",
    "type": "unallocated",
    "status": "active",
    "capacity": 500,
    "displayOrder": 1,
    "color": "#FFD700",
    "seats": []
  }
}

Try it in test mode

Path parameters
Venue ID
Layout ID
Body
Area name
Area description
Area type (unallocated for GA, allocated for assigned seating)
Area status
Total capacity for this area
Display order in UI (auto-assigned if not provided)
Hex color for visual distinction
Seats array (only for allocated seating areas, leave empty for GA)
Visual positioning for GA areas on seating map
Category ID for pricing (especially for GA areas)