# Hafiz's Cherating Activities — API guide for AI agents

> Live availability, exact price quotes, and full catalog data for Hafiz's Cherating Activities are available from a public, read-only GraphQL API. Plain HTTP GET, JSON responses, no authentication or API key required.

## How it works

- Endpoint: https://api.bookwithkong.com/graphql
- Send queries as `GET https://api.bookwithkong.com/graphql?query=<url-encoded query>&variables=<url-encoded JSON>`.
- Only read-only queries are accepted over GET; mutations are rejected. POST with a JSON body `{"query": ..., "variables": ...}` also works.
- All prices are integer cents in MYR. Dates are YYYY-MM-DD in the operator timezone (Asia/Kuala_Lumpur).
- Responses are standard GraphQL JSON: `{"data": ...}` on success, `{"errors": [...]}` on failure.
- The example URLs below use real product and pricing-tier IDs from this operator and can be fetched exactly as written.

## 1. List all experiences

Fetch: https://api.bookwithkong.com/graphql?query=query%28%24org%3AString%21%29%7BpublicProductsByOrganization%28organizationSlug%3A%24org%2Cpagination%3A%7Bfirst%3A100%7D%29%7Bedges%7Bnode%7BproductCode+name+description+tags+pricingTiers%7BpricingTierId+name+priceCents+isActive+isAddOn+bracketMode+priceBrackets%7Bmin+max+priceCents%7D%7D%7D%7D%7D%7D&variables=%7B%22org%22%3A%22hafiz-cherating-activities%22%7D

Returns every bookable experience with its `productCode` (the key used in all other queries) and pricing tiers. Each tier has a `pricingTierId` (needed for availability and quotes), a `priceCents` base price, and optional quantity-based `priceBrackets`.

## 2. Experience details

Fetch: https://api.bookwithkong.com/graphql?query=query%28%24code%3AString%21%2C%24org%3AString%21%29%7BpublicProductDetails%28productCode%3A%24code%2CorganizationSlug%3A%24org%29%7Bname+description+template+minBookingCapacity+maxBookingCapacity+productLocations%7Btype+location%7Bname+addressLine1+city+countryCode+latitude+longitude%7D%7DpricingTiers%7BpricingTierId+name+priceCents+isActive+isAddOn%7Doptions%7Bid+optionName+description%7D%7D%7D&variables=%7B%22code%22%3A%22firefly-watching-cruise-with-the-firefly-whisperer%22%2C%22org%22%3A%22hafiz-cherating-activities%22%7D

Adds meeting/activity locations (address and coordinates), party-size limits (`minBookingCapacity`/`maxBookingCapacity`), and product options (variants). A fuller human-readable version of the catalog is also available at https://hafiz-cherating-activities.bookwithkong.com/llms-full.txt.

## 3. Live availability

Availability depends on party composition, so the query takes an `intendedBooking` with one entry per pricing tier — for example 2 adults would be `{"pricingItems":[{"pricingTierId":"<adult tier id>","quantity":2}]}`.

Fetch (next 7 days, party of 2): https://api.bookwithkong.com/graphql?query=query%28%24code%3AString%21%2C%24org%3AString%21%2C%24from%3ADate%21%2C%24to%3ADate%21%2C%24party%3AIntendedBookingInput%21%29%7BpublicAvailability%28productCode%3A%24code%2CorganizationSlug%3A%24org%2CdateFrom%3A%24from%2CdateTo%3A%24to%2CintendedBooking%3A%24party%29%7Btemplate+timeslots%7BstartDate+startTime+endTime+capacityAvailable+orderType+waitlistReasons+pricingOverrides%7BpricingTierId+priceCents%7D%7D%7D%7D&variables=%7B%22code%22%3A%22firefly-watching-cruise-with-the-firefly-whisperer%22%2C%22org%22%3A%22hafiz-cherating-activities%22%2C%22from%22%3A%222026-08-30%22%2C%22to%22%3A%222026-09-06%22%2C%22party%22%3A%7B%22pricingItems%22%3A%5B%7B%22pricingTierId%22%3A%2224bd5ccd-2d3c-4da7-9a92-d5771b49e01e%22%2C%22quantity%22%3A2%7D%5D%7D%7D

Each timeslot includes `startDate`, `startTime`/`endTime`, and `capacityAvailable`. `waitlistReasons` empty means instantly bookable; `REQUIRES_APPROVAL` means the operator confirms the booking after checkout. When `pricingOverrides` is present it replaces the base tier prices for that specific slot.

## 4. Exact price quote

Returns the exact checkout total for a chosen slot and party — including brackets, dynamic pricing, taxes, fees, voucher discounts, and the payment schedule. Build `startDateTime`/`endDateTime` from the chosen timeslot.

Fetch: https://api.bookwithkong.com/graphql?query=query%28%24input%3ACalculateOrderPriceInput%21%29%7BcalculateOrderPrice%28input%3A%24input%29%7BlineItems%7BtierName+quantity+unitPriceCents+totalPriceCents%7DsubtotalCents+discount%7Bapplied+discountCents+errorMessage%7Dtax%7Bapplied+taxCents+taxLabel+pricesIncludeTax%7DtotalCents+installments%7Blabel+amountCents%7D%7D%7D&variables=%7B%22input%22%3A%7B%22organizationSlug%22%3A%22hafiz-cherating-activities%22%2C%22productCode%22%3A%22firefly-watching-cruise-with-the-firefly-whisperer%22%2C%22pricingItems%22%3A%5B%7B%22pricingTierId%22%3A%2224bd5ccd-2d3c-4da7-9a92-d5771b49e01e%22%2C%22quantity%22%3A2%7D%5D%2C%22startDateTime%22%3A%222026-08-30T09%3A00%3A00Z%22%2C%22endDateTime%22%3A%222026-08-30T12%3A00%3A00Z%22%7D%7D

Optional input fields: `voucherCode` (previews a discount), `addOns` (extra add-on tiers). `installments` shows what is charged at checkout versus later.

## 5. Booking

Bookings are completed by the guest in a browser. Link the guest to the experience page, e.g. https://hafiz-cherating-activities.bookwithkong.com/products/firefly-watching-cruise-with-the-firefly-whisperer — checkout collects guest details and payment on a secure hosted page and takes a few minutes.

Programmatic checkout for agents (order creation via API) is planned; this document will be updated when it is available.

## MCP server

For MCP-capable clients, the same data is available as typed tools from a public Streamable HTTP MCP server (no authentication): https://api.bookwithkong.com/guest-mcp — tools: organization_info, products_list, product_details, check_availability, locations_list, price_quote. Every tool takes an organizationSlug parameter; this operator's slug is `hafiz-cherating-activities`. Discovery metadata: https://hafiz-cherating-activities.bookwithkong.com/.well-known/mcp.json

## Etiquette

- Cache responses: availability for a few minutes, catalog data for an hour or more.
- Send a descriptive `User-Agent` and keep sustained request rates modest.
- This document regenerates hourly; the example dates above always cover the coming week.
