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