Klook · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Klook Open API (OCTO)
13 actions
13 updates
documentation
extends
openapi/klook-octo-openapi-original.json
Derived by API Evangelist
Built from the contracts Klook publishes. Klook did not publish this file.
What the actions change
descriptionoperationIdx-apievangelist-flowx-apievangelist-providerx-apievangelist-artifactsx-apievangelist-standardx-apievangelist-docsx-apievangelist-note
Targets 13
$.info
$.servers
$
$.components.securitySchemes.Auth
$.paths['/supplier'].get
$.paths['/products'].get
$.paths['/products/{id}'].get
$.paths['/availability'].post
$.paths['/availability/calendar'].post
$.paths['/bookings'].post
$.paths['/bookings/{uuid}/confirm'].post
$.paths['/bookings/{uuid}/cancel'].post
$.components
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Klook Open API (OCTO)
version: 1.0.0
extends: openapi/klook-octo-openapi-original.json
x-generated: '2026-07-19'
x-method: generated
x-source: >-
Enhancements derived from https://klook.gitbook.io/openapi and the repo
artifacts. Applies API Evangelist metadata, adds the operationIds the
published spec omits on five operations, applies the bearer security scheme
uniformly (the prose documentation requires authentication on every endpoint
while the spec applies it to only three), documents the required
Octo-Capabilities header, replaces the placeholder server, and marks the
documentation-deprecated Availability Calendar operation. The original spec is
never mutated.
actions:
- target: $.info
update:
x-apievangelist-provider: klook
x-apievangelist-artifacts: https://github.com/api-evangelist/klook
x-apievangelist-standard: OCTO 1.0
x-apievangelist-docs: https://klook.gitbook.io/openapi
x-apievangelist-note: >-
Published by OCTO Standards NP Inc and distributed by Klook as its Open
API contract. Supplier-implemented: Klook is the API consumer.
- target: $.servers
update:
- url: https://{supplier_endpoint}/octo
description: >-
Supplier-hosted OCTO endpoint. Each supplier provides Klook with their own
host during onboarding, in the documented form
https://{your endpoint name}/octo/{path}.
variables:
supplier_endpoint:
default: api.example.com
description: The supplier's own API hostname.
- target: $
update:
security:
- Auth: []
- target: $.components.securitySchemes.Auth
update:
description: >-
Supplier-issued API key presented as an HTTP Bearer token. Required on all
endpoints per https://klook.gitbook.io/openapi/getting-started/authentication.md.
Use a single unique API key per reseller-supplier relationship.
- target: $.paths['/supplier'].get
update:
operationId: getSupplier
tags:
- Supplier
description: >-
Returns a single Supplier and associated contact details for the
authenticated API key.
- target: $.paths['/products'].get
update:
operationId: getProducts
description: >-
Returns the list of Products available to the caller. No pagination is
defined; Klook syncs the full catalog on a configurable cadence.
- target: $.paths['/products/{id}'].get
update:
operationId: getProduct
description: Returns a single Product and associated details for a given Product ID.
- target: $.paths['/availability'].post
update:
operationId: checkAvailability
description: >-
Returns availability for a given Product and Option as one object per
start time (or day). Critical to the booking flow — this is the only way
to obtain the availabilityId required by Booking Reservation.
- target: $.paths['/availability/calendar'].post
update:
operationId: getAvailabilityCalendar
deprecated: true
description: >-
DEPRECATED. Struck through in Klook's documentation. Returns availability
as a single object per day, optimized for large date ranges and calendar
population. Use POST /availability (Availability Check) instead — it is
the only operation that returns an availabilityId.
- target: $.paths['/bookings'].post
update:
x-apievangelist-flow: >-
Phase 1 of the two-phase booking model. Creates a booking in ON_HOLD
status that reserves inventory while payment and contact details are
collected. Must be followed by POST /bookings/{uuid}/confirm before the
hold expires, or extended with POST /bookings/{uuid}/extend.
x-apievangelist-idempotency: >-
No idempotency key is defined. Retry safety comes from the expiring
ON_HOLD reservation rather than from request deduplication.
- target: $.paths['/bookings/{uuid}/confirm'].post
update:
x-apievangelist-flow: >-
Phase 2 of the two-phase booking model. Finalizes a previously reserved
booking. Returns INVALID_BOOKING_UUID if the reservation has already
expired.
- target: $.paths['/bookings/{uuid}/cancel'].post
update:
x-apievangelist-precondition: >-
Only permitted when booking.cancellable is TRUE and the request is within
the booking cancellation cut-off window. Otherwise returns
UNPROCESSABLE_ENTITY.
x-apievangelist-operationid-note: >-
The published spec names this operation "delete-bookings-:uuid" even
though it is a POST to /bookings/{uuid}/cancel. Left unchanged to preserve
referential integrity with the original document.
- target: $.components
update:
x-apievangelist-error-envelope:
description: >-
All error responses use the OCTO envelope, not RFC 9457 problem+json.
content_type: application/json
shape:
error: string — machine-readable error code
errorMessage: string — human readable, localized via Accept-Language
codes:
- INVALID_PRODUCT_ID
- INVALID_OPTION_ID
- INVALID_UNIT_ID
- INVALID_AVAILABILITY_ID
- INVALID_BOOKING_UUID
- BAD_REQUEST
- UNPROCESSABLE_ENTITY
- INTERNAL_SERVER_ERROR
- UNAUTHORIZED
- FORBIDDEN
catalog: errors/klook-error-codes.yml
x-apievangelist-required-headers:
Octo-Capabilities: >-
Required on every request. Comma-separated list of capability IDs to
activate, e.g. "octo/content, octo/pricing". A _capabilities query
parameter is available as a fallback. Echoed back on the response.
Content-Type: application/json on POST, PATCH and DELETE.
Accept-Language: Selects the language of errorMessage.
catalog: conventions/klook-conventions.yml
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/klook-octo-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.