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

# Get Availability

> Places left per timeslot and ticket type, calculated exactly like the shop does (test orders take no place; cancelled tickets free theirs). Without `from` or `until`, only timeslots that are not over yet are returned, earliest first. Unlike the shop, the real number of places left is always returned. Requires the `events.read` scope.



## OpenAPI

````yaml get /events/{id}/availability
openapi: 3.0.0
info:
  version: 1.0.0
  title: Tickable API
  description: >-
    The Tickable API provides programmatic access to events, orders, tickets,
    and webhooks for your organization.
  contact:
    name: Tickable
    url: https://tickable.nl
servers:
  - url: https://api.tickable.io
    description: Production
security:
  - Bearer: []
tags:
  - name: Events
    description: Manage events
  - name: Tickets
    description: View tickets
  - name: Orders
    description: View orders
  - name: Webhooks
    description: Manage webhook subscriptions
  - name: User
    description: Current user information
  - name: OAuth
    description: OAuth2 authorization and token endpoints
paths:
  /events/{id}/availability:
    get:
      tags:
        - Events
      summary: Get availability
      description: >-
        Places left per timeslot and ticket type, calculated exactly like the
        shop does (test orders take no place; cancelled tickets free theirs).
        Without `from` or `until`, only timeslots that are not over yet are
        returned, earliest first. Unlike the shop, the real number of places
        left is always returned. Requires the `events.read` scope.
      operationId: getAvailability
      parameters:
        - schema:
            type: string
            format: uuid
            description: Event ID
            example: 550e8400-e29b-41d4-a716-446655440000
          required: true
          description: Event ID
          name: id
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            description: Max results per page (default 25, max 100)
            example: 25
          required: false
          description: Max results per page (default 25, max 100)
          name: limit
          in: query
        - schema:
            type: integer
            nullable: true
            minimum: 0
            description: Number of results to skip
            example: 0
          required: false
          description: Number of results to skip
          name: offset
          in: query
        - schema:
            type: string
            description: Sort field and direction, e.g. `created_at:desc`
            example: created_at:desc
          required: false
          description: Sort field and direction, e.g. `created_at:desc`
          name: sort
          in: query
        - schema:
            type: string
            format: date-time
            description: Only timeslots starting at or after this date
            example: '2026-06-15T00:00:00Z'
          required: false
          description: Only timeslots starting at or after this date
          name: from
          in: query
        - schema:
            type: string
            format: date-time
            description: Only timeslots starting before this date
            example: '2026-06-16T00:00:00Z'
          required: false
          description: Only timeslots starting before this date
          name: until
          in: query
      responses:
        '200':
          description: Paginated availability per timeslot
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimeslotAvailability'
                  pagination:
                    type: object
                    properties:
                      total:
                        type: number
                        example: 142
                      limit:
                        type: number
                        example: 25
                      offset:
                        type: number
                        example: 0
                      has_more:
                        type: boolean
                        example: true
                    required:
                      - total
                      - limit
                      - offset
                      - has_more
                required:
                  - data
                  - pagination
        '404':
          description: Event not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - Bearer: []
components:
  schemas:
    TimeslotAvailability:
      type: object
      properties:
        timeslot_id:
          type: string
          format: uuid
          example: d4e5f6a7-8901-4b2c-3d4e-5f6a7b8c9d0e
        title:
          type: string
          nullable: true
          example: Morning Session
        starts_at:
          type: string
          example: '2026-06-15T10:00:00Z'
        ends_at:
          type: string
          nullable: true
          example: '2026-06-15T12:00:00Z'
        total_available:
          type: integer
          nullable: true
          description: Capacity of the timeslot, `null` = no limit
          example: 200
        remaining:
          type: integer
          nullable: true
          description: Places left on the timeslot as a whole, `null` = no limit
          example: 37
        sale_closes_at:
          type: string
          nullable: true
          description: When online sale for this timeslot ends
          example: '2026-06-15T12:00:00Z'
        on_sale:
          type: boolean
          description: At least one visible ticket type can be bought online right now
          example: true
        ticket_types:
          type: array
          items:
            $ref: '#/components/schemas/TicketTypeAvailability'
      required:
        - timeslot_id
        - title
        - starts_at
        - ends_at
        - total_available
        - remaining
        - sale_closes_at
        - on_sale
        - ticket_types
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - not_found_error
                - idempotency_error
                - api_error
              example: not_found_error
            code:
              type: string
              example: resource_missing
            message:
              type: string
              example: No such event.
            param:
              type: string
              description: The parameter the error relates to, if any
              example: event_id
            request_id:
              type: string
              description: Quote this when contacting support
              example: req_3f2a9c1b7d4e4f0a8b6c5d2e1f0a9b8c
          required:
            - type
            - code
            - message
            - request_id
      required:
        - error
    TicketTypeAvailability:
      type: object
      properties:
        ticket_type_id:
          type: string
          format: uuid
          example: b2c4e6a8-1234-4f5a-9c8d-0e1f2a3b4c5d
        name:
          type: string
          example: Early Bird
        price:
          type: integer
          description: Price in cents (EUR), including VAT
          example: 2500
        visibility:
          type: string
          enum:
            - visible
            - hidden
          description: >-
            `hidden` ticket types are only shown in the shop with a discount
            code
          example: visible
        remaining:
          type: integer
          nullable: true
          description: >-
            Places left for this ticket type on this timeslot: the tightest of
            its own limit, its group's and the timeslot's. `null` means no
            limit.
          example: 12
        sold_out:
          type: boolean
          description: Fewer places left than the minimum per order
          example: false
        on_sale:
          type: boolean
          description: >-
            Can be bought online right now: not sold out, inside its sale
            window, and the timeslot still open for sale
          example: true
        sale_opens_at:
          type: string
          nullable: true
          description: Start of the sale window, `null` = no limit
          example: null
        sale_closes_at:
          type: string
          nullable: true
          description: End of the sale window, `null` = no limit
          example: '2026-06-08T10:00:00Z'
      required:
        - ticket_type_id
        - name
        - price
        - visibility
        - remaining
        - sold_out
        - on_sale
        - sale_opens_at
        - sale_closes_at
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: >-
        Pass as `Authorization: Bearer {token}`. Accepts either an OAuth2 JWT
        access token or an API key (`tk_live_...`) created from the Tickable
        dashboard.

````

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