# List Event Availability

Get availability for events of an experience.
Use this when you need availability for many events at once — for example, when rendering a
calendar. For a single event, prefer `GET /v1/event-availabilities/{eventId}`. The response is paginated;
pass the returned `next` cursor on subsequent calls to continue.

Endpoint: GET /v1/event-availabilities
Security: OAuth2

## Security:

  - `OAuth2` (unknown)
    oauth2 scopes: event.read

## Query parameters:

  - `experienceId` (string, required)
    The unique identifier of the experience to query events for.

  - `from` (string)
    Filter events with a session starting on or after this local date-time (inclusive).
ISO 8601 date-time without timezone (e.g., `2025-10-09T08:00:00`).
The value is matched against each session's local start time;
an event is returned when any of its sessions starts within the requested window.

  - `to` (string)
    Filter events with a session starting before this local date-time (exclusive).
ISO 8601 date-time without timezone (e.g., `2025-10-10T18:00:00`).
The value is matched against each session's local start time;
an event is returned when any of its sessions starts within the requested window.

  - `cursor` (string)
    Pagination cursor for fetching the next page of results.
Omit or pass an empty string to start from the beginning of the list.

  - `limit` (integer)
    Maximum number of items to return per page.
Defaults to 50, maximum 100.

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `items` (array, required)
    Availability information for events matching the query.

  - `items.event_id` (string, required)
    The unique identifier of the event whose availability is described.

  - `items.available` (boolean, required)
    Whether the event is currently bookable.
`false` if any constraint in `constraints` reports `available: false`.

  - `items.constraints` (array, required)
    Every constraint that applies to this event, in no particular order.
Both passing (`available: true`) and failing constraints are included.

  - `items.constraints.type` (string, required)
    Discriminator value identifying this as the event-state constraint.
    Enum: "EVENT_STATE"

  - `items.constraints.available` (boolean, required)
    Whether this constraint allows booking right now.

  - `items.constraints.state` (string, required)
    The current lifecycle state of the event.
The values map 1:1 to `Event.state` in the Events API.

  - `items.constraints.type` (string, required)
    Discriminator value identifying this as the event-seats-limit constraint.
    Enum: "EVENT_SEATS_LIMIT"

  - `items.constraints.remaining` (integer, required)
    The number of seats still available for booking.

  - `items.constraints.type` (string, required)
    Discriminator value identifying this as the booking-limit constraint.
    Enum: "BOOKING_LIMIT"

  - `items.constraints.remaining` (integer, required)
    The largest number of seats a single new booking may still request.

  - `items.constraints.type` (string, required)
    Discriminator value identifying this as the booking-cutoff-time constraint.
    Enum: "BOOKING_CUTOFF_TIME"

  - `items.constraints.cutoff_time` (string, required)
    The instant (UTC) at which booking closes for this event.
Bookings created after this time will be rejected.

  - `items.constraints.type` (string, required)
    Discriminator value identifying this as the ticket-limit constraint.
    Enum: "TICKET_LIMIT"

  - `items.constraints.remaining` (integer, required)
    The smallest remaining count across all ticket variants tied to this event.

  - `next` (string)
    Cursor for the next page of results.
An empty string or absent value indicates the end of the list.

## Response 400:

  - `400` (unknown)
    Bad request - validation failed.

## Response 400 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 403:

  - `403` (unknown)
    Forbidden - insufficient permissions.

## Response 403 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response default:

  - `default` (unknown)
    Unexpected error.
This will be a 5XX status code.

## Response default fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

