SeatPublic

Seat maps and live seat booking for ticketing companies

Interactive seating charts your buyers can pick from, real-time holds that never double-sell, and a staff screen for the box office. Venue charts are shared and improved by the community, so you rarely start from scratch.

Talk to usSee the API
StallsPremiumIn a checkoutSold

Everything between a floor plan and a sold seat

You keep your checkout, payments and customers. We handle the seats.

Seat map for buyers

Fast, accessible map that works on phones: zoom, pick seats, see prices by category, wheelchair and companion seats, no single orphan seats left behind.

Live holds, no double-selling

Seats are held atomically while a buyer checks out and released when the timer runs out. Every open map updates within a moment.

Chart editor

Draw rows, arcs, tables and standing areas, or start from a template or your venue's floor plan. Checks for overlaps and missing labels as you go.

Box office seat manager

Staff block seats, name holds such as "Press", change categories and undo, while your system keeps every sale and refund.

Community venue charts

Charts are shared across ticketing companies and improved through reviewed edits. Seat ids stay the same from one version to the next.

Ratings and view-from-seat photos

Verified attendees rate their seat and share the view, so the next buyer knows what they are getting.

Built for developers

A small REST API, real-time updates over WebSockets, signed webhooks and a zero-dependency browser SDK.

  • Test and live keys: publishable keys in the browser, secret keys on your server only.
  • Webhooks with signatures and retries for holds, sales and cancellations.
  • Open chart format in JSON, documented with a schema.
  • Works with any stack: your server talks to the API, the SDK draws the map.
import { LiveEvent } from '@seatpublic/seatmap';

const live = await LiveEvent.connect(el, {
  apiBase: 'https://api.seatpublic.com',
  publicKey: 'pk_live_…',
  eventId: 'ev_123',
  maxSelectable: 6,
});

// buyer picked seats: hold them for checkout
const hold = await live.holdSelection();
// your server confirms the sale with its secret key

Selling reserved seating?

We are working with our first ticketing partners now. Tell us about your venues and events.

hello@seatpublic.com