SeatBuilderSeatBuilder Docs

Get event status

Returns one entry per non-free object of an event. Objects absent from the response are `free` (lazy initialization); expired holds count as free. This is the endpoint the SDK polls to render the live seat map. Seat entries: `{ objectLabel, objectType: "seat", status, categoryKey, holdExpiresAt? }`. General-admission areas are ONE aggregated entry per area (emitted once anything is held or booked): `{ objectLabel, objectType: "generalAdmission", status, categoryKey, capacity, held, booked, remaining }` where `status` is `free` while `remaining > 0`, `booked` when bookings fill the capacity, otherwise `held`. `categoryKey` comes from the published chart. Hold tokens are never returned. Pass `?holdToken=<your token>` to have your own live holds flagged: `mine: true` on seats, `mineQuantity` on GA areas (a token that matches nothing simply adds no flags). `extraData` is included for secret-key callers only. Pass `?labels=A-12,A-13` to narrow to specific objects (free objects are still omitted — see /objects for the full layout).

GET/api/v1/events/{eventKey}/status

Path Parameters

eventKeystring

Query Parameters

holdToken?unknown

Your holdToken (max 255 chars); flags your own live holds with mine / mineQuantity.

labels?unknown

Comma-separated object labels to narrow the response (max 200).

Response Body

curl -X GET "https://seatbuilder.org/api/v1/events/string/status?holdToken=7f6c3a91-b1ef-4d0a-9c84-3f12a8e0b5d2&labels=A-12%2CA-13"

{
  "eventKey": "evt_q3-2026-jazz-night",
  "objects": [
    {
      "objectLabel": "A-12",
      "objectType": "seat",
      "status": "held",
      "categoryKey": "premium",
      "holdExpiresAt": "2026-10-02T18:55:00.000Z",
      "mine": true
    },
    {
      "objectLabel": "A-13",
      "objectType": "seat",
      "status": "booked",
      "categoryKey": "premium"
    },
    {
      "objectLabel": "GA-LAWN",
      "objectType": "generalAdmission",
      "status": "free",
      "categoryKey": "lawn",
      "capacity": 500,
      "held": 12,
      "booked": 40,
      "remaining": 448,
      "mineQuantity": 2
    }
  ]
}

{
  "statusCode": 0,
  "error": "string",
  "message": "string",
  "code": "validation_failed",
  "failed": [
    {
      "objectLabel": "string",
      "reason": "string",
      "eventKey": "string",
      "environment": "string",
      "booked": 0,
      "held": 0
    }
  ],
  "errors": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  }
}
{
  "statusCode": 0,
  "error": "string",
  "message": "string",
  "code": "validation_failed",
  "failed": [
    {
      "objectLabel": "string",
      "reason": "string",
      "eventKey": "string",
      "environment": "string",
      "booked": 0,
      "held": 0
    }
  ],
  "errors": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  }
}
{
  "statusCode": 0,
  "error": "string",
  "message": "string",
  "code": "validation_failed",
  "failed": [
    {
      "objectLabel": "string",
      "reason": "string",
      "eventKey": "string",
      "environment": "string",
      "booked": 0,
      "held": 0
    }
  ],
  "errors": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  }
}
{
  "statusCode": 0,
  "error": "string",
  "message": "string",
  "code": "validation_failed",
  "failed": [
    {
      "objectLabel": "string",
      "reason": "string",
      "eventKey": "string",
      "environment": "string",
      "booked": 0,
      "held": 0
    }
  ],
  "errors": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  }
}
Get event status — SeatBuilder Docs