> ## Documentation Index
> Fetch the complete documentation index at: https://docs.underpass.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Seat map of a published event

> The chart (zones with their ticket type, sections, seats with coordinates) plus the seats currently taken for the performance. 404 when the event has no numbered seating.



## OpenAPI

````yaml /api-reference/openapi.json get /api/events/public/{slug}/seating
openapi: 3.0.0
info:
  title: UnderPass Public API
  version: 1.3.0
  description: >-
    Public API for browsing events and selling tickets on the UnderPass
    platform. Build a custom event landing or checkout on your own domain: list
    events, reserve tickets at selection, sell numbered seats, run a waiting
    room, start a checkout and poll the order. Everything added since 1.0 is
    optional and opt-in per event; a storefront built against 1.0 keeps working.
  contact:
    name: UnderPass Engineering
    email: developers@underpass.com.co
    url: https://underpass.com.co
servers:
  - url: https://api.underpass.com.co
    description: Production
  - url: https://api-dev.underpass.com.co
    description: Development
security: []
paths:
  /api/events/public/{slug}/seating:
    get:
      tags:
        - Events
      summary: Seat map of a published event
      description: >-
        The chart (zones with their ticket type, sections, seats with
        coordinates) plus the seats currently taken for the performance. 404
        when the event has no numbered seating.
      operationId: getPublicSeating
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
        - name: performance_id
          in: query
          required: false
          schema:
            type: string
          description: Required on multi-date events.
      responses:
        '200':
          description: The plan and occupancy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSeatingDto'
        '404':
          description: '`EVENT_NOT_FOUND` / `SEATING_CHART_NOT_FOUND`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    PublicSeatingDto:
      type: object
      properties:
        chart:
          $ref: '#/components/schemas/SeatingChartDto'
        performance_id:
          type: string
        taken:
          type: object
          additionalProperties:
            type: string
            enum:
              - HELD
              - SOLD
              - BLOCKED
          description: '`seat_id` → status. Free seats are absent.'
        as_of:
          type: string
          format: date-time
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        code:
          type: string
          description: Stable identifier to match on.
        message:
          type: string
        detail:
          type: object
          additionalProperties: true
        timestamp:
          type: string
          format: date-time
    SeatingChartDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        venue_name:
          type: string
          nullable: true
        width:
          type: integer
        height:
          type: integer
        zones:
          type: array
          items:
            $ref: '#/components/schemas/SeatingZoneDto'
        sections:
          type: array
          items:
            $ref: '#/components/schemas/SeatingSectionDto'
        seats:
          type: array
          items:
            $ref: '#/components/schemas/SeatDto'
    SeatingZoneDto:
      type: object
      properties:
        id:
          type: string
        chart_id:
          type: string
        key:
          type: string
        name:
          type: string
        color:
          type: string
          description: Hex colour the organizer picked for the zone.
        ticket_type_id:
          type: string
          nullable: true
          description: The ticket type that sells this zone's seats.
    SeatingSectionDto:
      type: object
      properties:
        id:
          type: string
        chart_id:
          type: string
        name:
          type: string
        sort_order:
          type: integer
        zone_key:
          type: string
          nullable: true
        x:
          type: number
        'y':
          type: number
        rotation:
          type: number
          description: Degrees
        curve:
          type: number
        elevation:
          type: number
          description: For 3D renderings; ignore in 2D
        tilt:
          type: number
        rows_count:
          type: integer
        seats_per_row:
          type: integer
        row_labels:
          type: string
          enum:
            - alpha
            - numeric
        seat_numbering:
          type: string
          enum:
            - sequential
            - odd_even
        seat_spacing:
          type: number
        row_spacing:
          type: number
    SeatDto:
      type: object
      properties:
        id:
          type: string
        section_id:
          type: string
        row_label:
          type: string
        seat_label:
          type: string
        x:
          type: number
          description: Chart units on a width × height canvas
        'y':
          type: number
        zone_key:
          type: string
          nullable: true
          description: Overrides the section's zone when set.
        accessible:
          type: boolean
        restricted_view:
          type: boolean
        state:
          type: string
          enum:
            - AVAILABLE
            - BLOCKED
            - HOUSE

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.