TableCheck calendar API

The calendar API from TableCheck — 1 operation(s) for calendar.

Documentation

Specifications

Other Resources

OpenAPI Specification

tablecheck-calendar-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: TableCheck API - V1 availability calendar API
  description: The Availability API is used to obtain near real-time table availability for online reservation booking.
  termsOfService: https://tablecheck.atlassian.net/wiki/spaces/API/pages/61571353/TableCheck+API+Terms+of+Service
servers:
- url: https://api.tablecheck.com/api/availability/v1/
  description: Production (uses live data)
security:
- ApiKeyAuth: []
tags:
- name: calendar
paths:
  /calendar/{shop_id}:
    get:
      summary: Fetch availability calendar of a specific shop.
      operationId: showCalendarByShopId
      tags:
      - calendar
      parameters:
      - name: shop_id
        in: path
        required: true
        description: The id or slug of the shop calendar to retrieve
        schema:
          type: string
      - name: pax
        in: query
        description: Desired number of guests for which to search for availability.
        required: false
        example: 2
        schema:
          type: number
          format: integer
      - name: datetime
        in: query
        description: Desired datetime around which to search for availability.
        required: false
        example: '2026-07-06T17:00:00.000Z'
        schema:
          type: string
          format: date-time
      - name: datetime_min
        in: query
        description: Lower-bound datetime for range query.
        required: false
        example: '2026-07-06T16:00:00.000Z'
        schema:
          type: string
          format: date-time
      - name: datetime_max
        in: query
        description: Upper-bound datetime for range query.
        required: false
        example: '2026-07-06T16:00:00.000Z'
        schema:
          type: string
          format: date-time
      - name: date
        in: query
        description: Desired date in which to search availability.
        required: false
        example: '2026-07-06'
        schema:
          type: string
          format: date
      - name: date_min
        in: query
        description: Lower-bound date for range query.
        required: false
        example: '2026-07-06'
        schema:
          type: string
          format: date
      - name: date_max
        in: query
        description: Upper-bound date for range query.
        required: false
        example: '2026-07-08'
        schema:
          type: string
          format: date
      - name: time
        in: query
        description: Desired time of day in which to search availability. Can be specified as time string or integer seconds.
        required: false
        example: '17:00'
        schema:
          type: string
          format: time-of-day
      - name: time_min
        in: query
        description: Lower-bound time of day for range query. Can be specified as time string or integer seconds.
        required: false
        example: '15:00'
        schema:
          type: string
          format: time-of-day
      - name: time_max
        in: query
        description: Upper-bound time of day for range query. Can be specified as time string or integer seconds.
        required: false
        example: '20:00'
        schema:
          type: string
          format: time-of-day
      - name: seat_types
        in: query
        description: Filters availability by the type of seating, e.g. table, counter, private room, etc. (array or comma-separated list)
        required: false
        schema:
          type: string
          enum:
          - open
          - counter
          - outside
          - curtain
          - private
          - tatami
      - name: smoking
        in: query
        description: Filters availability by whether the seating allows smoking or not. If unspecified, both smoking and non-smoking are allowed.
        required: false
        schema:
          type: string
          enum:
          - smoking
          - non_smoking
      - name: service_category_id
        in: query
        required: false
        description: The id of the service category
        schema:
          type: string
      - $ref: '#/components/parameters/IncludeFields'
      - $ref: '#/components/parameters/ExcludeFields'
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarShowResponse'
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    ExcludeFields:
      name: exclude_fields
      in: query
      description: Comma-separated list of fields to exclude from the response (blacklist). All fields except the given ones will be returned. Supports dot notation for nested fields.
      required: false
      schema:
        type: string
      example: created_at,socials.username
    IncludeFields:
      name: include_fields
      in: query
      description: Comma-separated list of fields to include in the response (whitelist). If specified, only the listed fields will be returned. Supports dot notation for nested fields.
      required: false
      schema:
        type: string
      example: id,name,addresses.city
  schemas:
    Error:
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                example: not_found
              message:
                type: string
                example: Item not found
    CalendarShowResponse:
      type: object
      properties:
        calendar:
          type: object
          properties:
            id:
              type: string
              format: bson-id
              example: ae5355ca1fd337ed5d6893e2
            slug:
              type: string
              example: my-shop-slug
            availability:
              type: array
              items:
                format: date
              example:
              - '2018-11-10'
              - '2018-11-11'
              - '2018-11-13'
            availability_cached_at:
              type: string
              format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: AUTHORIZATION
externalDocs:
  description: Implementation Guide
  url: https://tablecheck.atlassian.net/wiki/spaces/API/pages/46301274/Availability+v1