# Klook API and MCP server

> Klook has no API for your own traveler account (checked 11 Oct 2026). Its Open API specification is written for merchants, reservation systems and channel managers that connect products to Klook, so a traveler cannot use it to search, book or manage bookings, vouchers or KlookCash. Klook has no official MCP server.

Travel booking platform for tours, attraction tickets, experiences, transport passes and eSIMs, strongest in Asia.

## What is the Klook API?

Cotlet's Klook API exposes 10 endpoints for your own Klook account: search activities, get activity, check availability, list activity reviews, list bookings, get booking, get KlookCash balance, book activity, amend booking and cancel booking. The search_activities endpoint returns tours, tickets and experiences by keyword or destination, with price, rating and cancellation type. Each endpoint takes simple JSON inputs like activity_id, date or limit and works both as an MCP tool for agents and as a REST call for scripts.

- **Category:** [Travel](https://cotlet.dev/integrations/category/travel)
- **Endpoints:** 10 (7 read, 3 write)
- **Updated:** 2026-10-11

Klook has no API for your own traveler account (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Klook with 10 endpoints (7 read, 3 write): your AI agent signs in as you and does the work.

## Does Klook have an official API?

Klook has no API for your own traveler account (checked 11 Oct 2026). Its Open API specification is written for merchants, reservation systems and channel managers that connect products to Klook, so a traveler cannot use it to search, book or manage bookings, vouchers or KlookCash. Klook has no official MCP server.

| Task | Klook official | Cotlet |
|---|---|---|
| Search activities in a city | Partly: Product content and pricing through the partner Open API only | Yes |
| Check dates, slots and prices | Partly: Availability through the partner Open API only | Yes |
| Book an activity on your account | No: The partner API books for the connected partner, not your traveler account | Yes |
| List your bookings and vouchers | No | Yes |
| Change the date or contact info of a booking | No | Yes |
| Cancel and apply for a refund | No | Yes |
| Check your KlookCash balance and expiry | No | Yes |

Sources: [Klook Open API specification](https://klook.gitbook.io/openapi), [Klook Help: cancel a booking and apply for a refund](https://www.klook.com/en-US/faq/category-61-question-934/), [Klook Help: amend your booking](https://www.klook.com/en-US/faq/category-60-question-930/), [Klook Help: how do I use my KlookCash?](https://www.klook.com/en-US/faq/category-14-question-949/)

## For AI agents

```text
Klook has no API for your own traveler account (checked 11 Oct 2026). Its Open API specification is written for merchants, reservation systems and channel managers that connect products to Klook, so a traveler cannot use it to search, book or manage bookings, vouchers or KlookCash. Klook has no official MCP server.
Cotlet provides a hosted MCP server and REST API for Klook: 10 tools (7 read, 3 write).
Access       Request access at https://cotlet.dev/app/signup?app=klook; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/klook
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        search_activities, get_activity, check_availability, list_activity_reviews, list_bookings, get_booking, get_klookcash_balance, book_activity, amend_booking, cancel_booking
Confirm      book_activity, amend_booking, cancel_booking (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/klook-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=klook (Klook is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Klook once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Klook server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Klook in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Klook's terms; Cotlet is not affiliated with Klook.
```

## What can an AI agent do in Klook?

Cotlet is best for frequent travelers and trip planners who want an AI agent to search, book and change Klook activities without running or fixing a server.

- **Compare tours and tickets by price and rating**: "Compare the top 3 Mount Fuji day tours from Tokyo on 14 Nov by price, rating and cancellation policy." → `search_activities`, `get_activity`, `list_activity_reviews`
- **[Find and book an activity with KlookCash](https://cotlet.dev/integrations/klook-api-mcp-server/book-activity-with-klookcash)**: "Find a Mount Fuji day tour from Tokyo for 14 Nov with free cancellation and a rating above 4.5, book the 08:00 slot for 2 adults and apply my KlookCash at checkout." → `search_activities`, `get_activity`, `check_availability`, `get_klookcash_balance`, `book_activity`
- **List your upcoming bookings and vouchers** (runs: weekly): "List my upcoming Klook bookings for the Seoul trip with dates, times and voucher links." → `list_bookings`, `get_booking`
- **[Reschedule bookings after a flight change](https://cotlet.dev/integrations/klook-api-mcp-server/reschedule-a-booking)**: "Our flight to Seoul moved a day later. Check every Klook booking between 20 and 24 Nov and move what Klook allows by one day; tell me what cannot be moved." → `list_bookings`, `get_booking`, `check_availability`, `amend_booking`
- **[Cancel a booking and apply for a refund](https://cotlet.dev/integrations/klook-api-mcp-server/cancel-booking-refund)**: "Cancel one of the two adult tickets on the Bangkok food tour, tell me how much comes back and whether my KlookCash is returned." → `list_bookings`, `get_booking`, `cancel_booking`
- **Check KlookCash before it expires** (runs: weekly): "Every Monday, tell me my KlookCash balance and what expires in the next 60 days." → `get_klookcash_balance`

## Can Klook automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Klook connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to list your upcoming bookings and vouchers, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

| Where | How to connect | How to schedule |
|---|---|---|
| Your AI agent | Add https://cotlet.dev/mcp/v1 with your API key. | A scheduled agent run, for example a Claude Code routine. |
| n8n | MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/klook/{tool}. | Schedule Trigger node. |
| Make | HTTP module: POST https://cotlet.dev/api/v1/klook/{tool} with an Authorization: Bearer header and a JSON body. | Scenario schedule. |
| Zapier | Webhooks by Zapier: POST https://cotlet.dev/api/v1/klook/{tool} with the same header and body. | Schedule by Zapier trigger. |
| Your own script | POST https://cotlet.dev/api/v1/klook/{tool} with your API key. | cron or GitHub Actions. |

## Tools

**For AI agents:** Every endpoint and its schema is public. The 10 endpoints on this page, with parameters and example responses, can be listed without an account. Calling one returns 403 until the account has an API key with access to Klook.

### search_activities

Tours, tickets and experiences by keyword or destination, with price, rating and cancellation type. Access: read. REST: `POST /api/v1/klook/search_activities`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | yes | Keyword or destination, e.g. "Mount Fuji day tour" or "Bangkok". |
| `date` | date | no | Only activities available on this date. |
| `sort` | enum | no | popular, price_low, price_high or rating. Default: popular. |
| `currency` | string | no | ISO 4217 code, e.g. USD. Default: your account currency. |
| `limit` | integer | no | 1 to 50. Default: 20. |

Returns activities that match a keyword or destination, in the order set by sort. A date keeps only activities available that day. Each item has the lowest price, rating and review count, and the cancellation type: free, conditional or none. Use get_activity for packages and details.

Example response:

```json
{
  "activities": [
    {
      "activity_id": "41528",
      "title": "Mount Fuji One Day Tour from Tokyo",
      "city": "Tokyo",
      "price_from": {
        "amount": 93.2,
        "currency": "USD"
      },
      "rating": 4.7,
      "reviews": 3120,
      "cancellation": "free"
    },
    {
      "activity_id": "30977",
      "title": "Mt. Fuji and Hakone Day Trip with Lake Cruise",
      "city": "Tokyo",
      "price_from": {
        "amount": 98.5,
        "currency": "USD"
      },
      "rating": 4.6,
      "reviews": 1844,
      "cancellation": "free"
    },
    {
      "activity_id": "52204",
      "title": "Private Mount Fuji Tour with English Driver",
      "city": "Tokyo",
      "price_from": {
        "amount": 112,
        "currency": "USD"
      },
      "rating": 4.8,
      "reviews": 402,
      "cancellation": "none"
    }
  ]
}
```

### get_activity

Packages with prices, what is included, meeting point and cancellation policy of one activity. Access: read. REST: `POST /api/v1/klook/get_activity`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `activity_id` | string | yes | Activity ID from search_activities. |

Returns one activity with its packages, each with its own package_id and lowest price. It also returns what is included, the meeting point and the cancellation policy shown on the activity page. Use package_id with check_availability and book_activity.

Example response:

```json
{
  "activity_id": "41528",
  "title": "Mount Fuji One Day Tour from Tokyo",
  "packages": [
    {
      "package_id": "98731",
      "name": "Departure from Shinjuku, English guide",
      "price_from": {
        "adult": 93.2,
        "child": 80
      },
      "currency": "USD"
    },
    {
      "package_id": "98740",
      "name": "Departure from Tokyo Station, English guide",
      "price_from": {
        "adult": 96.5,
        "child": 83
      },
      "currency": "USD"
    }
  ],
  "includes": [
    "Round-trip bus",
    "English-speaking guide",
    "Lunch"
  ],
  "meeting_point": "Shinjuku Station West Exit",
  "cancellation": {
    "type": "free",
    "policy": "Free cancellation up to 24 hours before the start time"
  }
}
```

### check_availability

Open dates and time slots for a package, with the price per unit (adult, child). Access: read. REST: `POST /api/v1/klook/check_availability`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `activity_id` | string | yes | Activity ID from search_activities. |
| `package_id` | string | no | Package from get_activity. Default: all packages. |
| `from` | date | yes | First date to check. |
| `to` | date | no | Last date to check. Default: same as from. |

Returns the open dates and time slots of one package in a date range, with the price per unit type. Dates with no slots are left out. Run it before book_activity or amend_booking so you only ask for a slot that exists.

Example response:

```json
{
  "activity_id": "41528",
  "package_id": "98731",
  "availability": [
    {
      "date": "2026-11-14",
      "slots": [
        "08:00",
        "09:30"
      ],
      "price": {
        "adult": 93.2,
        "child": 80
      },
      "currency": "USD"
    },
    {
      "date": "2026-11-15",
      "slots": [
        "08:00"
      ],
      "price": {
        "adult": 93.2,
        "child": 80
      },
      "currency": "USD"
    }
  ]
}
```

### list_activity_reviews

Traveler reviews of an activity with rating, date and text. Access: read. REST: `POST /api/v1/klook/list_activity_reviews`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `activity_id` | string | yes | Activity ID from search_activities. |
| `sort` | enum | no | recent or rating. Default: recent. |
| `limit` | integer | no | 1 to 50. Default: 20. |

Returns reviews of one activity, newest first by default, each with the rating, date and text. Set sort to rating to see the best rated first. Use it to check what travelers say before you book.

Example response:

```json
{
  "activity_id": "41528",
  "reviews": [
    {
      "rating": 5,
      "date": "2026-10-02",
      "text": "Clear views of Fuji and a guide who kept to the schedule."
    },
    {
      "rating": 4,
      "date": "2026-09-28",
      "text": "Long day, but the lunch stop was good."
    }
  ],
  "next_cursor": null
}
```

### list_bookings

Bookings on your account with Booking Reference ID, activity, date and status. Access: read. REST: `POST /api/v1/klook/list_bookings`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | upcoming, completed, cancelled or all. Default: upcoming. |
| `limit` | integer | no | 1 to 100. Default: 20. |

Returns the bookings shown on the Bookings page of your account, with the Booking Reference ID, activity, participation date and status. Filter by upcoming, completed or cancelled. Pass booking_ref to get_booking, amend_booking or cancel_booking.

Example response:

```json
{
  "bookings": [
    {
      "booking_ref": "KPR834512",
      "activity": "Mount Fuji One Day Tour from Tokyo",
      "date": "2026-11-14",
      "status": "upcoming"
    },
    {
      "booking_ref": "NJT204518",
      "activity": "Nami Island and Petite France Day Tour from Seoul",
      "date": "2026-11-21",
      "status": "upcoming"
    },
    {
      "booking_ref": "BKK771903",
      "activity": "Bangkok Street Food Evening Tour",
      "date": "2026-12-02",
      "status": "upcoming"
    }
  ]
}
```

### get_booking

One booking with participants, cancellation policy, amend option and voucher link. Access: read. REST: `POST /api/v1/klook/get_booking`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `booking_ref` | string | yes | Booking Reference ID from list_bookings, e.g. ABC123456. |

Returns one booking with its date, time, participants and voucher link. The cancellation policy says whether the booking is free to cancel, conditional or not cancellable, and whether Amend booking is available. Check it before amend_booking or cancel_booking.

Example response:

```json
{
  "booking_ref": "BKK771903",
  "activity": "Bangkok Street Food Evening Tour",
  "date": "2026-12-02",
  "time": "17:30",
  "status": "upcoming",
  "units": {
    "adult": 2
  },
  "total": {
    "amount": 64,
    "currency": "USD"
  },
  "cancellation": {
    "type": "free",
    "policy": "Free cancellation up to 24 hours before the start time"
  },
  "can_amend": true,
  "voucher_url": "https://www.klook.com/en-US/bookings/"
}
```

### get_klookcash_balance

KlookCash on your account with the expiry date of each part. Access: read. REST: `POST /api/v1/klook/get_klookcash_balance`.

No parameters.

Returns your KlookCash balance and the entries it is made of, each with its expiry date, like the Klookcash page in your profile. Klook lets you use KlookCash only with at least 10 KlookCash, which usable shows. It takes no parameters.

Example response:

```json
{
  "klookcash": 1850,
  "usable": true,
  "entries": [
    {
      "amount": 300,
      "expires_on": "2026-11-30"
    },
    {
      "amount": 1550,
      "expires_on": "2027-06-12"
    }
  ]
}
```

### book_activity

Book a package of an activity for a date. You see the total before anything is paid. Access: write, asks the user first. REST: `POST /api/v1/klook/book_activity`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `activity_id` | string | yes | Activity ID from search_activities. |
| `package_id` | string | yes | Package from get_activity. |
| `date` | date | yes | Participation date. |
| `time_slot` | string | no | Time from check_availability, if the package has slots. |
| `units` | object | yes | Quantity per unit type, e.g. { "adult": 2, "child": 1 }. |
| `use_klookcash` | boolean | no | Apply KlookCash at checkout where Klook allows it. Default: false. |

Books one package for a date and time slot through Klook checkout and returns the Booking Reference ID. With use_klookcash set, it ticks KlookCash in the Discount section, which works only with at least 10 KlookCash and not on Klook Passes, e-Gift Cards, Travel Insurance, Stay+ packages or selected events. If checkout asks for extra authentication, the call stops and returns a link for you to finish it. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "booking_ref": "KPR834512",
  "status": "confirmed",
  "activity": "Mount Fuji One Day Tour from Tokyo",
  "date": "2026-11-14",
  "time_slot": "08:00",
  "units": {
    "adult": 2
  },
  "subtotal": {
    "amount": 186.4,
    "currency": "USD"
  },
  "klookcash_discount": {
    "amount": 12,
    "currency": "USD"
  },
  "total_paid": {
    "amount": 174.4,
    "currency": "USD"
  }
}
```

### amend_booking

Change the participation date or contact info of a booking that allows Amend booking. Access: write, asks the user first. REST: `POST /api/v1/klook/amend_booking`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `booking_ref` | string | yes | Booking Reference ID from list_bookings, e.g. ABC123456. |
| `date` | date | no | New participation date. |
| `contact` | object | no | Traveler contact info to change, as the Amend booking form shows it. |

Changes the participation date, the traveler contact info or both. It works only on bookings where Klook offers Amend booking: not with a No cancellation or Conditional cancellation policy, and not for vouchers whose codes do not begin with KLK. Klook then emails a booking change confirmation and an updated voucher. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "booking_ref": "NJT204518",
  "status": "amended",
  "activity": "Nami Island and Petite France Day Tour from Seoul",
  "old_date": "2026-11-21",
  "date": "2026-11-22"
}
```

### cancel_booking

Cancel a booking and apply for a refund, where it has free cancellation. Access: write, asks the user first. REST: `POST /api/v1/klook/cancel_booking`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `booking_ref` | string | yes | Booking Reference ID from list_bookings, e.g. ABC123456. |
| `quantity` | integer | no | Units to cancel. Default: all. |
| `reason` | string | no | Reason for the refund form. |

Applies for a refund on a booking within the free cancellation period stated on the booking, for all units or for the quantity you set. Klook emails a cancellation confirmation, and the previous voucher can no longer be used. For conditional cancellation Klook asks you to contact Klook Customer Support, and the tool stops and says so; with No cancellation there is no refund. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "booking_ref": "BKK771903",
  "status": "refund_requested",
  "quantity_cancelled": 2,
  "reason": "Change of plans",
  "refund": {
    "amount": 64,
    "currency": "USD"
  }
}
```

## How do I connect Klook to Claude Code, Codex or Cursor?

Connecting Klook takes three steps: request access, sign in to Klook once, then add one MCP server or call the REST API with the same key.

### Connect Klook to your agent.

1. **Create an account** Sign up and add Klook in the console. Your API key is there too.

2. **Sign in to Klook once** Open the connect page from the console and sign in to Klook the way you always do. We keep the session, never your password, and you can revoke it anytime.

3. **Add Cotlet to your agent** Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

   Claude Code:

```
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

   Cursor:

```
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${COTLET_API_KEY}"
      }
    }
  }
}
```

   Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

4. **Ask your agent** Ask in plain words. Your agent finds the Klook tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

```
Compare the top 3 Mount Fuji day tours from Tokyo on 14 Nov by price, rating and cancellation policy.
```

### Call Klook from your scripts.

1. **Export your API key** Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

```
export COTLET_API_KEY="cotlet_..."
```

2. **Call a tool** Every tool is a POST endpoint at /api/v1/klook/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

```
curl https://cotlet.dev/api/v1/klook/book_activity \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"activity_id":"41528","package_id":"98731","date":"2026-11-14","time_slot":"08:00","units":{"adult":2},"use_klookcash":true}'
```

3. **Read the result** You get plain JSON back, ready for your script. A failed call costs nothing.

```
{
  "booking_ref": "KPR834512",
  "status": "confirmed",
  "activity": "Mount Fuji One Day Tour from Tokyo",
  "date": "2026-11-14",
  "time_slot": "08:00",
  "units": {
    "adult": 2
  },
  "subtotal": {
    "amount": 186.4,
    "currency": "USD"
  },
  "klookcash_discount": {
    "amount": 12,
    "currency": "USD"
  },
  "total_paid": {
    "amount": 174.4,
    "currency": "USD"
  }
}
```

## Why use Cotlet for Klook?

**Built for agents**

- One MCP server for every app you connect.
- The same tools as a REST API for scripts and cron jobs.
- Works with Claude Code, Codex and Cursor.

**Your login stays yours**

- You sign in to Klook yourself. We keep only the session, encrypted with AES-256.
- The model never sees a login.
- No stored passwords, no CAPTCHA solving, no MFA bypass.

**You stay in control**

- Pick read only, or read and write.
- Anything that reaches other people waits for your OK, unless you switch it off per tool.
- Revoke access in one click.

**Kept working for you**

- We test every integration daily.
- When Klook changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is there a Klook MCP server on GitHub?

Yes. Hosted scrapers and MCP servers exist that read public Klook listings, prices and reviews. They do not sign in to your account, so they cannot book or show your bookings. Cotlet works in your own Klook account, and our team keeps it working.

|  | Scraper MCP server | Cotlet |
|---|---|---|
| Setup | Account with the scraper host and an API token, no Klook login | Request access, sign in to Klook once, add one MCP server or API key |
| Your bookings | Not reachable: public listings only | Bookings, vouchers, date changes, refunds and KlookCash |
| Booking and cancelling | Read-only | Book, amend and cancel, each confirmed by you |
| Your Klook session | None kept, because there is no login | Encrypted in an EU vault, limited to the actions you allow, revoked in one click |
| When the session expires | No session to expire | If Klook logs you out, your agent gets a link to sign in again |
| When Klook changes | Wait for the scraper author | Our team tests it daily and fixes it for you; failed calls are free |
| Price | Usually pay per result or per call, free for small use | Free 7-day trial with 5,000 credits, then credits per call |

### Which one fits you

**Pick Cotlet if**

- you are not a developer, or you do not want to maintain a server
- you need it to keep working when Klook changes, without checking it yourself
- your agent or a script should run it on a schedule, also while your computer is off

**Pick an open-source server if**

- you are comfortable installing, updating and fixing it yourself
- you want the session to stay on your own computer
- you only need it now and then, from one MCP client

## How much does the Klook API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Klook API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

| Size | Price | Credits / month | Per credit |
|---|---|---|---|
| Solo | $29/mo | 3,000 | about $0.0097 |
| Pro | $99/mo | 12,000 | about $0.0083 |
| Agency | $299/mo | 40,000 | $0.0075 |

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the `Authorization: Bearer` header. [See full pricing](https://cotlet.dev/pricing)

## How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Klook account.

- **Company details:** The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. [Terms](https://cotlet.dev/terms)
- **Your session:** You sign in to Klook yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Klook tool you allowed. When it expires, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security)
- **Revoking access:** Disconnect Klook in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
- **What we never do:** Store passwords, solve CAPTCHAs or bypass MFA.
- **Klook's terms:** You use your own Klook account and stay responsible for following Klook's terms. Cotlet is independent and not affiliated with Klook. [Terms](https://cotlet.dev/terms)
- **Contact:** Questions about the company, security or an app: [contact@cotlet.dev](mailto:contact@cotlet.dev)

## Frequently asked questions

**How do I get access?**

Request access and pick Klook. Cotlet reviews each request and emails you your API key.

**Do I need to be technical?**

No. You sign in to Klook once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

**Is a hosted server safe? My Klook session would leave my computer.**

Cotlet keeps your Klook session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

**Do I need a partner or supplier account?**

No. Cotlet works in your own traveler account on Klook. The Open API is for merchants, reservation systems and channel managers that connect products to Klook, and you do not need it.

**Can my agent cancel any booking?**

Only bookings with free cancellation, within the period stated on the booking. Conditional cancellation needs a message to Klook Customer Support, and activities marked No cancellation have no refund.

**Can it use KlookCash on every activity?**

No. KlookCash needs a balance of at least 10 KlookCash, and Klook does not allow it on Klook Passes, e-Gift Cards, Travel Insurance, Stay+ packages and selected events.

**Can my agent post or send messages in Klook without asking me?**

No. Every call to book_activity, amend_booking or cancel_booking waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals.

**Can I use the Klook API in n8n?**

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/klook/{tool} from the HTTP Request node.
