> ## 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.

# Join (or return to) an event's waiting room

> Admits on the spot when the doors are open and the minute's budget allows; otherwise returns the place in line. The entry id is the pass to send as `queue_pass` once ADMITTED. An expired or left entry re-joins at the back.



## OpenAPI

````yaml /api-reference/openapi.json post /api/checkout/queue
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/checkout/queue:
    post:
      tags:
        - Checkout
      summary: Join (or return to) an event's waiting room
      description: >-
        Admits on the spot when the doors are open and the minute's budget
        allows; otherwise returns the place in line. The entry id is the pass to
        send as `queue_pass` once ADMITTED. An expired or left entry re-joins at
        the back.
      operationId: joinQueue
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JoinQueueDto'
      responses:
        '201':
          description: In line, or admitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueEntryDto'
        '400':
          description: '`QUEUE_NOT_ENABLED`: the event has no waiting room'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
        '404':
          description: '`EVENT_NOT_FOUND`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    JoinQueueDto:
      type: object
      required:
        - event_id
        - session_key
      properties:
        event_id:
          type: string
        session_key:
          type: string
          description: Same session key as the holds.
          minLength: 8
          maxLength: 128
    QueueEntryDto:
      type: object
      properties:
        id:
          type: string
          description: 'The pass: send as `queue_pass` once `status` is ADMITTED.'
        event_id:
          type: string
        status:
          type: string
          enum:
            - WAITING
            - ADMITTED
            - EXPIRED
            - LEFT
        position:
          type: integer
          nullable: true
          description: >-
            1-based place in line; null while pre-queuing (drawn at opening) or
            not waiting.
        waiting_ahead:
          type: integer
          nullable: true
        estimated_minutes:
          type: integer
          nullable: true
        open:
          type: boolean
          description: Doors open (admission running)?
        opens_at:
          type: string
          format: date-time
          nullable: true
        admitted_at:
          type: string
          format: date-time
          nullable: true
        pass_expires_at:
          type: string
          format: date-time
          nullable: true
        rate:
          type: integer
          description: Admissions per minute.
    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

````

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