# Wanderlog API and MCP server

> Wanderlog has no public API and no developer docs (checked 11 Oct 2026). Trips, places, reservations and expenses are edited in its web and mobile apps; bookings come in by forwarding confirmation emails or connecting Gmail.

Trip planner for the web, iOS and Android: day-by-day itineraries on a map, real-time collaboration with tripmates, reservations imported from email, checklists and expense tracking.

## What is the Wanderlog API?

Cotlet's Wanderlog API exposes 14 endpoints for your own Wanderlog account: list trips, get trip, search places, list expenses, get booking import address, create trip, add place, remove place, add hotel, add note, add checklist, add expense, optimize day route and invite tripmate. The list_trips endpoint returns your trips and trips shared with you, with destination, dates and tripmates. Each endpoint takes simple JSON inputs like trip_id, day 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:** 14 (5 read, 9 write)
- **Updated:** 2026-10-11

Wanderlog has no public API and no developer docs (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Wanderlog with 14 endpoints (5 read, 9 write): your AI agent signs in as you and does the work.

## Does Wanderlog have an official API?

Wanderlog has no public API and no developer docs (checked 11 Oct 2026). Trips, places, reservations and expenses are edited in its web and mobile apps; bookings come in by forwarding confirmation emails or connecting Gmail.

| Task | Wanderlog official | Cotlet |
|---|---|---|
| List your trips and read an itinerary | No | Yes |
| Create a trip with dates | No | Yes |
| Add places, hotels and notes to a day | No | Yes |
| Add a checklist to a trip | No | Yes |
| Log and read trip expenses | No | Yes |
| Import a flight or hotel booking | Partly: Only by forwarding the confirmation email or connecting Gmail in the app | Yes |
| Optimize the route for a day | No: Pro members run Optimize route per day in the app | Yes |
| Invite a tripmate | No | Yes |

Sources: [Wanderlog trip planner (vendor site)](https://wanderlog.com/), [Wanderlog budgeting and expense splitting (vendor)](https://wanderlog.com/travel-budget-expense-splitting-app), [Wanderlog on the App Store (vendor listing)](https://apps.apple.com/us/app/wanderlog/id1476732439), [Wanderlog Help: Optimize route](https://help.wanderlog.com/hc/en-us/articles/13545624787867-Optimize-route), [Wanderlog Help: Add flight, hotel, and rental car details by forwarding an email](https://help.wanderlog.com/hc/en-us/articles/4625693334811-Add-flight-hotel-and-rental-car-details-by-forwarding-an-email), [Wanderlog Travel Planning AI Assistant (vendor)](https://wanderlog.com/trip-plan-assistant)

## For AI agents

```text
Wanderlog has no public API and no developer docs (checked 11 Oct 2026). Trips, places, reservations and expenses are edited in its web and mobile apps; bookings come in by forwarding confirmation emails or connecting Gmail.
Cotlet provides a hosted MCP server and REST API for Wanderlog: 14 tools (5 read, 9 write).
Access       Request access at https://cotlet.dev/app/signup?app=wanderlog; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/wanderlog
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_trips, get_trip, search_places, list_expenses, get_trip_forwarding_email, create_trip, add_place, remove_place, add_hotel, add_note, add_checklist, add_expense, optimize_day_route, invite_tripmate
Confirm      add_expense, invite_tripmate (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/wanderlog-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=wanderlog (Wanderlog is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Wanderlog 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 Wanderlog server that someone else maintains, including non-developers. Developers who prefer to run and fix code on their own computer can use an open-source Wanderlog MCP server instead.

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 Wanderlog 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 Wanderlog's terms; Cotlet is not affiliated with Wanderlog.
```

## What can an AI agent do in Wanderlog?

Cotlet is best for travellers and trip planners who want their AI agent to build itineraries, add bookings and track expenses in Wanderlog without running or fixing a server.

- **[Plan a trip itinerary with AI](https://cotlet.dev/integrations/wanderlog-api-mcp-server/plan-trip-itinerary)**: "Plan 4 days in Lisbon from May 12 for two: museums, food markets and a day trip to Sintra. Put these saved spots on the right days and keep each day walkable." → `list_trips`, `create_trip`, `search_places`, `add_place`, `add_note`, `optimize_day_route`, `get_trip`, `remove_place`
- **Add hotel and flight bookings to a trip**: "Add our hotel in Porto, check-in May 16, check-out May 19, to the Portugal trip, and tell me where to forward the flight confirmation." → `list_trips`, `add_hotel`, `get_trip_forwarding_email`
- **[Track and split trip expenses](https://cotlet.dev/integrations/wanderlog-api-mcp-server/track-trip-expenses)** (runs: daily): "Log today's receipts in the Portugal trip, split the dinners with Maya and Tom, and tell me where we stand against our 2,000 EUR budget." → `list_trips`, `list_expenses`, `add_expense`
- **Create packing checklists and invite tripmates**: "Add a packing checklist for a rainy week in Scotland and invite friend@example.com to the trip." → `add_checklist`, `invite_tripmate`
- **Rearrange a crowded day in a trip**: "Day 3 is overloaded. Move the castle to day 4 and reorder day 3 for less walking." → `get_trip`, `remove_place`, `add_place`, `optimize_day_route`

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

Yes. Cotlet does not replace your automation platform: it gives it a Wanderlog 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 track and split trip expenses, 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/wanderlog/{tool}. | Schedule Trigger node. |
| Make | HTTP module: POST https://cotlet.dev/api/v1/wanderlog/{tool} with an Authorization: Bearer header and a JSON body. | Scenario schedule. |
| Zapier | Webhooks by Zapier: POST https://cotlet.dev/api/v1/wanderlog/{tool} with the same header and body. | Schedule by Zapier trigger. |
| Your own script | POST https://cotlet.dev/api/v1/wanderlog/{tool} with your API key. | cron or GitHub Actions. |

## Tools

**For AI agents:** Every endpoint and its schema is public. The 14 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 Wanderlog.

### list_trips

Your trips and trips shared with you, with destination, dates and tripmates. Access: read. REST: `POST /api/v1/wanderlog/list_trips`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `when` | enum | no | upcoming, past or all. Default: upcoming. |
| `limit` | integer | no | 1 to 50. Default: 20. |

Returns trips you own and trips shared with you, soonest first. Use trip_id from each item in the other tools. Tripmates are listed by name and ID.

Example response:

```json
{
  "trips": [
    {
      "trip_id": "tr_8kQ2mZ",
      "title": "Portugal 2027",
      "destination": "Portugal",
      "start_date": "2027-05-12",
      "end_date": "2027-05-19",
      "tripmates": [
        {
          "tripmate_id": "tm_41a",
          "name": "Maya Novak"
        }
      ],
      "url": "https://wanderlog.com/plan/tr_8kQ2mZ"
    }
  ]
}
```

### get_trip

Full itinerary: days, places with times and notes, hotels, reservations, lists and checklists. Access: read. REST: `POST /api/v1/wanderlog/get_trip`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `day` | date | no | Return only this day. |

Returns the itinerary day by day, with places in the order they appear. Each place has a block_id for remove_place. Pass day to return one day only.

Example response:

```json
{
  "trip_id": "tr_8kQ2mZ",
  "title": "Portugal 2027",
  "days": [
    {
      "date": "2027-05-12",
      "places": [
        {
          "block_id": "blk_1a20",
          "name": "Belem Tower",
          "start_time": "10:00",
          "note": "Buy tickets online"
        },
        {
          "block_id": "blk_1a21",
          "name": "Pasteis de Belem",
          "start_time": "12:30",
          "note": null
        }
      ]
    }
  ],
  "hotels": [],
  "checklists": []
}
```

### search_places

Find attractions, restaurants and hotels near the trip destination, with rating and address. Access: read. REST: `POST /api/v1/wanderlog/search_places`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `query` | string | yes | What to find, e.g. "seafood restaurant" or "Belem Tower". |
| `limit` | integer | no | 1 to 20. Default: 10. |

Searches near the trip destination and returns up to the limit, best match first, with a place_id for add_place and add_hotel. Nothing is added to the trip.

Example response:

```json
{
  "places": [
    {
      "place_id": "pl_91c0",
      "name": "Time Out Market Lisboa",
      "category": "restaurant",
      "rating": 4.4,
      "address": "Av. 24 de Julho 49, Lisboa"
    }
  ]
}
```

### list_expenses

Trip expenses with amount, currency, category and date, plus totals by category. Access: read. REST: `POST /api/v1/wanderlog/list_expenses`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `category` | string | no | Only this category, e.g. food or lodging. |

Returns the expenses logged on the trip, newest first, with the currency each was paid in. Totals by category are in the trip's home currency, as the app shows them.

Example response:

```json
{
  "expenses": [
    {
      "expense_id": "ex_72d1",
      "amount": "64.50",
      "currency": "EUR",
      "category": "food",
      "description": "Dinner at Time Out Market",
      "date": "2027-05-13"
    }
  ],
  "totals_by_category": [
    {
      "category": "food",
      "amount": "64.50",
      "currency": "EUR"
    }
  ]
}
```

### get_trip_forwarding_email

The address to forward flight, hotel and car confirmations to for this trip. Access: read. REST: `POST /api/v1/wanderlog/get_trip_forwarding_email`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |

Returns the address Wanderlog shows for forwarding confirmation emails to this trip. Forward a confirmation from your mail client and Wanderlog fills in dates and times. Cotlet does not read your mailbox.

Example response:

```json
{
  "trip_id": "tr_8kQ2mZ",
  "forwarding_email": "<your trip's forwarding address>"
}
```

### create_trip

New trip plan for a destination and date range. Private until you invite someone. Access: write. REST: `POST /api/v1/wanderlog/create_trip`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `destination` | string | yes | City, region or country. |
| `start_date` | date | yes | First day of the trip. |
| `end_date` | date | yes | Last day of the trip. |
| `title` | string | no | Trip name. Default: "Trip to {destination}". |

Creates a trip with one day per date between start and end. The trip is visible only to you until invite_tripmate. It reaches no one and you can delete it in the app, so it runs without asking.

Example response:

```json
{
  "trip_id": "tr_5nT7pL",
  "title": "Lisbon long weekend",
  "destination": "Lisbon, Portugal",
  "start_date": "2027-05-12",
  "end_date": "2027-05-15",
  "days": 4,
  "url": "https://wanderlog.com/plan/tr_5nT7pL"
}
```

### add_place

Add a place to a day of the itinerary or to a list such as "Places to visit". Access: write. REST: `POST /api/v1/wanderlog/add_place`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `place` | string | yes | Place ID from search_places, or a name to look up. |
| `day` | date | no | Day of the trip. Omit to use the trip-level list or notes instead. |
| `list` | string | no | List heading when no day is given. Default: Places to visit. |
| `start_time` | string | no | HH:MM, local time. |
| `note` | string | no | Note shown under the place. |

Adds the place at the end of the day, or of the list when no day is given. On a shared trip, tripmates see it as the app syncs in real time. It runs without asking, because it is undone with remove_place.

Example response:

```json
{
  "block_id": "blk_2c07",
  "trip_id": "tr_8kQ2mZ",
  "name": "Castelo de S. Jorge",
  "day": "2027-05-13",
  "start_time": "10:00"
}
```

### remove_place

Remove a place from a day or list. Access: write. REST: `POST /api/v1/wanderlog/remove_place`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `block_id` | string | yes | Place entry ID from get_trip. |

Removes one entry from the itinerary. Use block_id from get_trip. It runs without asking, because add_place puts it back.

Example response:

```json
{
  "block_id": "blk_2c07",
  "status": "removed"
}
```

### add_hotel

Add lodging with check-in and check-out dates and an optional confirmation number. Access: write. REST: `POST /api/v1/wanderlog/add_hotel`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `place` | string | yes | Hotel place ID or name. |
| `check_in` | date | yes | Check-in date. |
| `check_out` | date | yes | Check-out date. |
| `confirmation` | string | no | Booking confirmation number. |

Adds a lodging entry with the dates you pass and returns the number of nights. It runs without asking, because it reaches no one outside the trip and is removed with remove_place.

Example response:

```json
{
  "block_id": "blk_31f9a0",
  "trip_id": "tr_8kQ2mZ",
  "type": "hotel",
  "name": "Hotel Infante Sagres",
  "check_in": "2027-05-16",
  "check_out": "2027-05-19",
  "nights": 3,
  "url": "https://wanderlog.com/plan/tr_8kQ2mZ"
}
```

### add_note

Free-text note on a day or the trip: transit tips, opening hours, booking details. Access: write. REST: `POST /api/v1/wanderlog/add_note`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `text` | string | yes | Note text. |
| `day` | date | no | Day of the trip. Omit to use the trip-level list or notes instead. |

Adds a note to the day you name, or to the trip when no day is given. It runs without asking, because it reaches no one outside the trip and is removed with remove_place.

Example response:

```json
{
  "block_id": "blk_4b12",
  "trip_id": "tr_8kQ2mZ",
  "status": "added"
}
```

### add_checklist

Checklist for packing, to-dos or shopping, for the whole trip or one day. Access: write. REST: `POST /api/v1/wanderlog/add_checklist`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `title` | string | yes | Checklist heading, e.g. Packing. |
| `items` | string[] | yes | Checklist items, unchecked. |
| `day` | date | no | Day of the trip. Omit to use the trip-level list or notes instead. |

Creates a checklist with the items you pass, all unchecked. It runs without asking, because it reaches no one outside the trip and you can delete it in the app.

Example response:

```json
{
  "checklist_id": "cl_66e2",
  "trip_id": "tr_8kQ2mZ",
  "title": "Packing",
  "items": 4,
  "checked": 0
}
```

### add_expense

Log an expense in the currency you paid in, optionally split between tripmates. Access: write, asks the user first. REST: `POST /api/v1/wanderlog/add_expense`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `amount` | string | yes | Decimal amount, e.g. "64.50". |
| `currency` | string | yes | ISO 4217 code, e.g. EUR. |
| `category` | string | yes | Expense category, e.g. food or lodging. |
| `description` | string | no | What it was. |
| `date` | date | no | Default: today. |
| `split_with` | string[] | no | Tripmate IDs from list_trips. Default: not split. |

Logs the expense with its category and date (today by default). With split_with, the app shows who owes whom, so this reaches tripmates. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "expense_id": "ex_72d1",
  "trip_id": "tr_8kQ2mZ",
  "amount": "64.50",
  "currency": "EUR",
  "category": "food",
  "date": "2027-05-13",
  "split_with": []
}
```

### optimize_day_route

Reorder the places of one day for a shorter route, as the app's route optimization does. Access: write. REST: `POST /api/v1/wanderlog/optimize_day_route`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `day` | date | yes | Day to reorder. |

Reorders the places of one day and returns the new order. It runs without asking, because the old order is in the response and you can restore it with remove_place and add_place.

Example response:

```json
{
  "trip_id": "tr_8kQ2mZ",
  "day": "2027-05-14",
  "order": [
    "Castelo de S. Jorge",
    "Alfama walk",
    "Time Out Market Lisboa"
  ]
}
```

### invite_tripmate

Invite someone by email to collaborate on the trip. Access: write, asks the user first. REST: `POST /api/v1/wanderlog/invite_tripmate`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `trip_id` | string | yes | Trip ID from list_trips. |
| `email` | string | yes | Their email. |

Sends the invitation for the trip to the email you pass. The person sees the itinerary once they accept. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "trip_id": "tr_8kQ2mZ",
  "email": "friend@example.com",
  "status": "invited"
}
```

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

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

### Connect Wanderlog to your agent.

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

2. **Sign in to Wanderlog once** Open the connect page from the console and sign in to Wanderlog 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 Wanderlog 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.

```
Plan 4 days in Lisbon from May 12 for two: museums, food markets and a day trip to Sintra. Put these saved spots on the right days and keep each day walkable.
```

### Call Wanderlog 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/wanderlog/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

```
curl https://cotlet.dev/api/v1/wanderlog/add_hotel \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"trip_id":"tr_8kQ2mZ","place":"Hotel Infante Sagres, Porto","check_in":"2027-05-16","check_out":"2027-05-19","confirmation":"HB-4471902"}'
```

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

```
{
  "block_id": "blk_31f9a0",
  "trip_id": "tr_8kQ2mZ",
  "type": "hotel",
  "name": "Hotel Infante Sagres",
  "check_in": "2027-05-16",
  "check_out": "2027-05-19",
  "nights": 3,
  "url": "https://wanderlog.com/plan/tr_8kQ2mZ"
}
```

## Why use Cotlet for Wanderlog?

**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 Wanderlog 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 Wanderlog changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is there a Wanderlog MCP server on GitHub?

Yes. Community Wanderlog MCP servers exist on GitHub, usually maintained by one person. You install one on your own computer, sign it in to Wanderlog, and keep it running yourself; when Wanderlog changes its site, it stops working until you or the maintainer fix it. Cotlet hosts the same kind of server for you, and our team keeps it working.

|  | GitHub MCP server | Cotlet |
|---|---|---|
| Setup | Clone the repo, install it, sign it in to Wanderlog, add it to each MCP client | Request access, sign in to Wanderlog once, add one MCP server or API key |
| When Wanderlog changes | It breaks until you or the maintainer fix it | Our team tests it daily and fixes it for you; failed calls are free |
| Your Wanderlog session | In a file on your computer, readable by any program you run | Encrypted in an EU vault, limited to the actions you allow, revoked in one click |
| When the session expires | Tools fail until you sign in again by hand | If Wanderlog logs you out, your agent gets a link to sign in again |
| Upkeep | You update, monitor and debug it yourself | Nothing to host or update |
| Where it runs | Your computer, while it is on | Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule |
| Price | Free, paid for with your time | 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 Wanderlog 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 Wanderlog API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Wanderlog 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 Wanderlog 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 Wanderlog 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 Wanderlog tool you allowed. When it expires, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security)
- **Revoking access:** Disconnect Wanderlog 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.
- **Wanderlog's terms:** You use your own Wanderlog account and stay responsible for following Wanderlog's terms. Cotlet is independent and not affiliated with Wanderlog. [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 Wanderlog. Cotlet reviews each request and emails you your API key.

**Do I need to be technical?**

No. You sign in to Wanderlog 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 Wanderlog session would leave my computer.**

Cotlet keeps your Wanderlog 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.

**Can my agent import a booking from my email?**

Indirectly. get_trip_forwarding_email returns the address Wanderlog uses for forwarding confirmations, and Wanderlog then fills in dates and times itself. Cotlet does not read your mailbox. Wanderlog also offers connecting Gmail in the app, which its App Store listing describes as a Pro feature.

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

No. Every call to add_expense or invite_tripmate waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. create_trip, add_place, remove_place, add_hotel, add_note, add_checklist, optimize_day_route runs without asking, because it sends nothing to anyone and one call undoes it.

**Can I use the Wanderlog 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/wanderlog/{tool} from the HTTP Request node.
