Bokadirekt API and MCP server Let your AI agent run your Bokadirekt diary.

Bookings, free times, customers, the waitlist and messages for your Bokadirekt salon. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Bokadirekt
Bokadirekt logo Bokadirekt Cloud Browser

13 tools Read and write

Diary to customer

What can you automate in Bokadirekt? Use an AI agent, a workflow or a script.

  • Move a day of bookings when staff are out

  • Text tomorrow's customers a custom note

  • Fill cancelled slots from the waitlist

  • Follow up no-shows and late cancellations

  • Count bookings and new customers per week

  • Book a customer who asks by chat

API reads only

Does Bokadirekt have an MCP server or an API? An API, but read-only. No MCP server.

Bokadirekt has a Merchant API that reads bookings, customers, sales, staff and services, but it cannot create, move or cancel a booking (checked 31 Oct 2026). It costs 399 kr per month excl. VAT and Bokadirekt support switches it on. There is no official MCP server. Cotlet runs 13 Bokadirekt tools hosted, over MCP for agents and REST for scripts.

  • Bokadirekt's own help article: the API cannot create or change a booking, customer, product or user. The only update is the stock of a product.
  • Webhooks send booking events: created, changed, cancelled, no-show and payment. The API package includes them; the standalone module is 199 kr per month.
  • Zapier and n8n list no Bokadirekt app. No open-source Bokadirekt MCP server turned up on GitHub.
Bokadirekt's Merchant API, doing it by hand and Cotlet compared
What you need Merchant APIBy hand in the portalCotlet
Read bookings, customers and staff Yes, 399 kr a month Yes Yes
Create a booking No Yes Yes, after your OK
Move or cancel a booking No Yes Yes, after your OK
Text a booked customer No Yes Yes, after your OK
Runs by itself on a schedule Reads, if you write code No Yes
Allowed by Bokadirekt's terms Yes, official Yes Uses the web portal, see Terms

Checked 31 Oct 2026. Sources: Bokadirekt Merchant API reference · Bokadirekt help: Bokadirekts API · Bokadirekt: API & Webhooks · Bokadirekt: Webhooks

Set up once

How does Cotlet connect to Bokadirekt? One account, two ways to connect.

  1. 1Sign in to Bokadirekt

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your Bokadirekt password, and no move, cancellation or message reaches a customer until you approve it. Who can see your session

Any MCP client

Connect Bokadirekt to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Enable Bokadirekt for agents. Sign up, log in to Bokadirekt in its Cloud Browser, then press Enable for agents.

  2. 2

    Add the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 3

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, https://cotlet.dev/mcp/v1, also carries Bokadirekt next to your other apps. If you enable Bokadirekt after connecting, refresh the connector so the new tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-bokadirekt \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-bokadirekt": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-bokadirekt]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: bokadirekt_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: bokadirekt_write
Scripts and HTTP

How to use the Bokadirekt REST API

Create your Cotlet API key

Create a Cotlet API key with access to Bokadirekt and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Connect Bokadirekt in Cotlet and enable it for agents. Account access: Your own Bokadirekt business user (what it can do depends on the permissions your account owner gave it).

Make your first Bokadirekt API request

REST
curl "https://cotlet.dev/api/v1/bokadirekt/bookings?from=2026-11-06&to=2026-11-06&type=all" \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read bookings and keep their ids

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "bokadirekt",
  "tool": "list_bookings",
  "result": {
    "bookings": [
      {
        "booking_id": "bk_5501",
        "customer": "Anna Ek",
        "service": "Klippning dam",
        "staff": "Elin Berg",
        "start": "2026-11-06T09:00:00+01:00",
        "price": 595,
        "status": "booked",
        "source": "bokadirekt.se"
      },
      {
        "booking_id": "bk_5502",
        "customer": "Maja Holm",
        "service": "Färg och klipp",
        "staff": "Elin Berg",
        "start": "2026-11-06T11:00:00+01:00",
        "price": 1490,
        "status": "booked",
        "source": "internal"
      }
    ]
  }
}

Returns the bookings the Lista view shows for the dates you pick, in start order, with cancelled ones marked cancelled.

Pass type to narrow the list the way the portal's Filter panel does: cancelled, no_show, new_customer, last_minute, internal or online.

Keep each booking_id. get_booking, move_booking and cancel_booking take it.

Compare changed values as well as ids when refreshing your destination: a booking can be moved to another time or staff member.

Bokadirekt workflows for agents and automations

Bokadirekt workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead tomorrow's bookings every afternoon. Use list_bookings in your configured reminder flow.
MakeHTTP > Make a requestRead the waitlist and post it to a channel for your OK. Use list_waitlist in your configured scenario.
Python or Node.jsREST APILook up a customer's history before a call. Use get_customer in your configured script.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Bokadirekt; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

9 read, 4 write

Bokadirekt API endpoints and MCP tools

Locations, staff and services3

Read only. These return the ids the other tools take.

  • list_locations Locations (platser) of your Bokadirekt account. read

    Returns the locations of your business with the name Bokadirekt shows. Use location as the filter on the other tools when your account has more than one. A business with one location gets a list of one.

    MCP callbokadirekt_read → list_locations

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/locations

    Parameters

    No parameters.

    Example response

    {
      "locations": [
        {
          "location": "Salong Eira Södermalm",
          "city": "Stockholm"
        }
      ]
    }
  • list_staff Users (utövare) who take bookings, with the location they work at. read

    Returns the users of your account who can be booked. Use staff_id to filter bookings and available times.

    MCP callbokadirekt_read → list_staff

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/staffs

    Parameters

    Parameters: list_staff
    NameTypeDescription
    location string string Only staff of this location.

    Example response

    {
      "staff": [
        {
          "staff_id": "st_101",
          "name": "Elin Berg",
          "location": "Salong Eira Södermalm"
        },
        {
          "staff_id": "st_102",
          "name": "Sara Lind",
          "location": "Salong Eira Södermalm"
        }
      ]
    }
  • list_services Services (tjänster) with duration and price. read

    Returns the bookable services of your account with their length in minutes and price. Use service_id in find_available_times and create_booking.

    MCP callbokadirekt_read → list_services

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/services

    Parameters

    Parameters: list_services
    NameTypeDescription
    location string string Only services offered at this location.

    Example response

    {
      "services": [
        {
          "service_id": "sv_21",
          "name": "Klippning dam",
          "minutes": 45,
          "price": 595
        },
        {
          "service_id": "sv_22",
          "name": "Färg och klipp",
          "minutes": 120,
          "price": 1490
        }
      ]
    }

Bookings and free times6

Create, move and cancel work as the booking card does. Booking and cancellation margins do not apply to a signed-in business user.

  • find_available_times Free times for a service, as the calendar suggests them. read

    Returns the free start times Bokadirekt proposes for one service when you pick it in the calendar, in the time order of the calendar. The length of the service and any gap after it are respected. Pick staff_id to see one person only.

    MCP callbokadirekt_read → find_available_times

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/services/{service_id}/available-times/find

    Parameters

    Parameters: find_available_times
    NameTypeDescription
    service_id string required string Service from list_services.
    date date required date First day to search.
    staff_id string string Only this staff member.

    Example input

    {
      "service_id": "service_8c41d2",
      "date": "2026-10-01"
    }

    Example response

    {
      "times": [
        {
          "staff_id": "st_102",
          "start": "2026-11-06T10:00:00+01:00"
        },
        {
          "staff_id": "st_102",
          "start": "2026-11-06T13:30:00+01:00"
        }
      ]
    }
  • list_bookings Bookings in a date range from the booking list, with customer, service, staff and status. read

    Returns the bookings the Lista view shows for the dates you pick, with cancelled ones marked. type narrows the list the way the Filter panel does. Results come in start order. Use booking_id with get_booking, move_booking and cancel_booking.

    MCP callbokadirekt_read → list_bookings

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/bookings

    Parameters

    Parameters: list_bookings
    NameTypeDescription
    from date required date First day.
    to date required date Last day.
    type enum enum all, cancelled, no_show, new_customer, last_minute, internal or online (made on Bokadirekt.se). Default: all.
    staff_id string string Only this staff member.
    service_id string string Only this service.

    Example input

    {
      "from": "2026-10-01",
      "to": "2026-10-01"
    }

    Example response

    {
      "bookings": [
        {
          "booking_id": "bk_5501",
          "customer": "Anna Ek",
          "service": "Klippning dam",
          "staff": "Elin Berg",
          "start": "2026-11-06T09:00:00+01:00",
          "price": 595,
          "status": "booked",
          "source": "bokadirekt.se"
        },
        {
          "booking_id": "bk_5502",
          "customer": "Maja Holm",
          "service": "Färg och klipp",
          "staff": "Elin Berg",
          "start": "2026-11-06T11:00:00+01:00",
          "price": 1490,
          "status": "booked",
          "source": "internal"
        }
      ]
    }
  • get_booking One booking with its note, customer, service and payment status. read

    Returns the details of one booking as the booking card shows them, including the booking note and whether the customer paid online. A booking with several services returns one line per service.

    MCP callbokadirekt_read → get_booking

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/bookings/{booking_id}

    Parameters

    Parameters: get_booking
    NameTypeDescription
    booking_id string required string Booking from list_bookings.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_5501",
      "customer": "Anna Ek",
      "customer_id": "cu_880",
      "service": "Klippning dam",
      "staff": "Elin Berg",
      "start": "2026-11-06T09:00:00+01:00",
      "minutes": 45,
      "price": 595,
      "status": "booked",
      "note": "Vill ha kortare lugg"
    }
  • create_booking Book a customer on a service at a time, as Ny bokning does. writeasks first

    Creates a booking for an existing customer on one service with one staff member. The booking is made from your signed-in user, so the booking margin does not apply. Bokadirekt sends the customer a confirmation according to your settings. By default you confirm each call; you can switch that off for this tool.

    MCP callbokadirekt_write → create_booking

    REST endpointPOST https://cotlet.dev/api/v1/bokadirekt/customers/{customer_id}/bookings

    Parameters

    Parameters: create_booking
    NameTypeDescription
    customer_id string required string Customer from list_customers.
    service_id string required string Service from list_services.
    staff_id string required string Staff member from list_staff.
    start datetime required datetime Start time, ISO 8601, from find_available_times.

    Example input

    {
      "customer_id": "cu_912",
      "service_id": "sv_21",
      "staff_id": "st_102",
      "start": "2026-11-06T10:00:00+01:00"
    }

    Example response

    {
      "booking_id": "bk_5530",
      "status": "booked",
      "start": "2026-11-06T10:00:00+01:00",
      "customer": "Maja Holm",
      "service": "Klippning dam",
      "staff": "Sara Lind"
    }
  • move_booking Change the time or the staff member of a booking. writeasks first

    Changes the start time, the staff member or both on an existing booking, as the booking card does. The original booking does not stay behind. It changes a customer's appointment, so you confirm it. By default you confirm each call; you can switch that off for this tool.

    MCP callbokadirekt_write → move_booking

    REST endpointPOST https://cotlet.dev/api/v1/bokadirekt/bookings/{booking_id}/move

    Parameters

    Parameters: move_booking
    NameTypeDescription
    booking_id string required string Booking from list_bookings.
    start datetime datetime New start time, ISO 8601.
    staff_id string string New staff member.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_5502",
      "status": "booked",
      "start": "2026-11-07T11:00:00+01:00",
      "staff": "Sara Lind"
    }
  • cancel_booking Cancel a customer's booking (Avboka). writeasks first

    Cancels one booking as Avboka does. Bokadirekt confirms the cancellation to the customer according to your settings. The cancellation margin does not apply to your own user. A cancelled booking stays in list_bookings with status cancelled. By default you confirm each call; you can switch that off for this tool.

    MCP callbokadirekt_write → cancel_booking

    REST endpointPOST https://cotlet.dev/api/v1/bokadirekt/bookings/{booking_id}/cancel

    Parameters

    Parameters: cancel_booking
    NameTypeDescription
    booking_id string required string Booking from list_bookings.

    Example input

    {
      "booking_id": "booking_8c41d2"
    }

    Example response

    {
      "booking_id": "bk_5502",
      "status": "cancelled"
    }

Customers, waitlist and messages4

Customers appear in the register when they book. An SMS costs extra in Bokadirekt; email is free.

  • list_customers Customers (kundregister), searchable by name, email or phone. read

    Searches the customer register, which is shared by all locations and users. Returns name, contact details and the date of the latest booking. Customers appear automatically when they book, so the register is also a list of everyone who has booked.

    MCP callbokadirekt_read → list_customers

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/customers

    Parameters

    Parameters: list_customers
    NameTypeDescription
    query string string Part of a name, email or phone number.

    Example response

    {
      "customers": [
        {
          "customer_id": "cu_880",
          "name": "Anna Ek",
          "email": "anna@example.com",
          "last_booking": "2026-10-14"
        }
      ]
    }
  • get_customer A customer card: details, booking history and notes. read

    Returns what the customer card shows: contact details, past and future bookings and the notes you saved. Also says whether the customer is blocked from booking online.

    MCP callbokadirekt_read → get_customer

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/customers/{customer_id}

    Parameters

    Parameters: get_customer
    NameTypeDescription
    customer_id string required string Customer from list_customers.

    Example input

    {
      "customer_id": "customer_8c41d2"
    }

    Example response

    {
      "customer_id": "cu_880",
      "name": "Anna Ek",
      "email": "anna@example.com",
      "blocked_online": false,
      "bookings": [
        {
          "booking_id": "bk_5501",
          "start": "2026-11-06T09:00:00+01:00",
          "service": "Klippning dam"
        }
      ],
      "notes": [
        "Allergisk mot ammoniak"
      ]
    }
  • list_waitlist Customers on the waitlist (väntelista) with the service and dates they want. read

    Returns the customers on your waitlist with the service, the staff member if one was chosen and the date range they gave. The calendar shows the same count for the dates in view.

    MCP callbokadirekt_read → list_waitlist

    REST endpointGET https://cotlet.dev/api/v1/bokadirekt/waitlists

    Parameters

    No parameters.

    Example response

    {
      "waitlist": [
        {
          "customer": "Maja Holm",
          "customer_id": "cu_912",
          "service": "Klippning dam",
          "from": "2026-11-05",
          "to": "2026-11-09"
        }
      ]
    }
  • send_booking_message Send an SMS or email to the customer of a booking. writeasks first

    Sends a confirmation, a reminder or your own text to the customer of one booking, as the SMS and Mail buttons on the booking card do. SMS costs extra in Bokadirekt; email is free. By default you confirm each call; you can switch that off for this tool.

    MCP callbokadirekt_write → send_booking_message

    REST endpointPOST https://cotlet.dev/api/v1/bokadirekt/bookings/{booking_id}/message

    Parameters

    Parameters: send_booking_message
    NameTypeDescription
    booking_id string required string Booking from list_bookings.
    channel enum required enum sms or email.
    kind enum required enum confirmation, reminder or custom.
    text string string The message, only for kind custom.

    Example input

    {
      "booking_id": "booking_8c41d2",
      "channel": "sms",
      "kind": "confirmation"
    }

    Example response

    {
      "booking_id": "bk_5501",
      "channel": "sms",
      "status": "sent"
    }
Encrypted, revocable

Who can see my Bokadirekt session, and how do I revoke it?

  • What we store

    Your logged-in Bokadirekt profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 13 Bokadirekt tools. Never the cookie.

  • What the session sees

    What your user sees: the diary, customers with their contact details and booking history.

  • What no tool touches

    Payments, the point of sale, payouts, subscription, password and deleting.

  • If Bokadirekt asks to sign in

    Your agent gets a link to sign in again. You do it, we never do.

  • How to cut access

    Disable for agents in the console, reset the browser, or change your Bokadirekt password.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet. Customer names, phone numbers and notes pass through your agent, so check that your use is covered by your own privacy notice.

Account risk

Is it against Bokadirekt's terms? Account safety Their business terms limit automated tools.

"The Customer agrees, among other things, not to: use the Business System for illegal purposes, attempt to gain unauthorized access, use automated tools to extract data, or copy and reproduce parts of the Business System."
Bokadirekt, terms for the business system, section 3.3 (Swedish original, translated here), checked 31 Oct 2026

The clause does not name AI agents or bots. It does ban automated tools that extract data, and an agent that reads your diary can be read that way. Section 3.4 also says not to hand your login details to a third party; Cotlet never receives your password, you sign in yourself in the Cloud Browser. We found no public case of a Bokadirekt account closed for automation (checked 31 Oct 2026). If you want no risk at all, the official Merchant API reads the same bookings and customers for 399 kr a month, and it is the right choice when you only need reads.

How we keep your account looking like you

  • Your own Bokadirekt user, logged in by you
  • One Cloud Browser with its own IP and cookies, so no new-device check on every call
  • Moves, cancellations and messages wait for your OK
  • No tool deletes a customer or touches payments
  • If Bokadirekt objects, we pause the Bokadirekt tools for everyone within 24 h

Read in short runs and avoid pulling the whole customer register at once. Bokadirekt's API help asks for a reasonable call rate and caching, and the same courtesy applies here.

Tested every 12 h

What happens when Bokadirekt changes? We repair the tool; your prompts stay the same.

between tests of the Bokadirekt reads
12 h
for a call to a Bokadirekt tool paused for repair
$0

When Bokadirekt moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

4 tools ask first

Approvals, undo and mistakes Customers hear nothing until you say so.

  1. 01 Reads the diary Bookings, free times and the customer card.
  2. 02 Plans the change Which bookings move, to whom and when.
  3. 03 Waits for your OK Each move, booking or message shows up in your Cotlet console first.
  4. 04 Reports the result Booking ids, new times and which messages went out.
Which Bokadirekt actions can be undone
ActionUndo
Create a bookingCancel it; the customer already got a confirmation
Move a bookingMove it back; the customer sees both changes
Cancel a bookingBook the time again if it is still free; the customer was told
Send an SMS or emailNo, the message is out

4 of 13 tools ask first: create_booking, move_booking, cancel_booking and send_booking_message, the four that change a customer's appointment or message them. The reads run at once. Switch the wait off per tool for a scheduled run.

An SMS costs extra in Bokadirekt according to your price list, so a daily text job adds to your Bokadirekt bill.

MCP call
{
  "name": "create_booking",
  "arguments": {
    "customer_id": "cu_912",
    "service_id": "sv_21",
    "staff_id": "st_102",
    "start": "2026-11-06T10:00:00+01:00"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/bokadirekt/customers/cu_912/bookings \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service_id":"sv_21","staff_id":"st_102","start":"2026-11-06T10:00:00+01:00"}'
Tool output
{
  "booking_id": "bk_5530",
  "status": "booked",
  "start": "2026-11-06T10:00:00+01:00",
  "customer": "Maja Holm",
  "service": "Klippning dam",
  "staff": "Sara Lind"
}

Scripts and cron jobs reach the same tools over REST at /api/v1/bokadirekt, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the Bokadirekt MCP server cost?

About $34 a monthfor a small salon running five jobs, 5,800 credits. Your Bokadirekt plan is billed by Bokadirekt as before.

A month of Bokadirekt jobs for one small salon, in credits
JobCallsCredits
Text tomorrow's customers, daily11 × 222,420
Fill free slots from the waitlist, daily5 × 221,100
Move a sick day's bookings19 × 2380
Follow up no-shows, weekly7 × 4280
Weekly bookings report3 × 4120
Cloud Browser, 30 days1,500
Total5,800
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works in your own Bokadirekt account

The month is our example: three stylists, about 10 customers texted a day over 22 working days. Bokadirekt publishes no figure for a typical account. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Bokadirekt MCP server, the official API or by hand: which to use No other MCP server found.

Other ways to automate Bokadirekt, checked 31 Oct 2026
OptionWhat it doesWhere it stops
Bokadirekt Merchant APIOfficial reads of bookings, customers, sales, staff and services, plus webhooks. 399 kr a month excl. VAT.Read-only, needs a developer, no create, move or cancel.
Zapier and n8nNo Bokadirekt app listed on either.Nothing to connect except the official API by hand.
Scrapers of public profilesCollect public salon pages from Bokadirekt.se.Your own diary is behind your login, so they do not reach it.
By hand in the portalEverything, with your own clicks.Every repeat job costs time each day.

We found no Bokadirekt MCP server on GitHub and no hosted one besides ours. The official API is the safer pick for reports and dashboards. Cotlet is for the jobs it cannot do: rebooking, cancelling, filling gaps and texting customers.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Bokadirekt tools.

Bokadirekt API and MCP: questions

How do I get access?

Create a free account at https://cotlet.dev, open Bokadirekt under Integrations in the console and log in to Bokadirekt in its Cloud Browser. The trial starts with your first app, no card asked.

How do I connect Bokadirekt to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Bokadirekt once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Bokadirekt account through Cotlet, in their phone apps too.

What can ChatGPT do in Bokadirekt?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Bokadirekt: move a day of bookings when staff are out; text tomorrow\; fill cancelled slots from the waitlist. You ask in plain words, and anything that reaches other people waits for your OK first.

Do I need the paid Bokadirekt API?

No. Cotlet works in your own signed-in portal and does not use the Merchant API, which costs 399 kr per month excl. VAT and is switched on through Bokadirekt support (checked 31 Oct 2026). What your agent can do still depends on the permissions of your own user.

Can the agent create a customer or change a service?

Not yet. The tools read services, staff and customers and book customers who already exist. New customers appear when a booking is made through the portal or the booking page, and services, prices and opening hours stay in Bokadirekt.

Does Bokadirekt have webhooks?

Yes, with the API package or as a 199 kr a month module (checked 31 Oct 2026). They push booking events: created, changed, cancelled, no-show and payment. Cotlet does not receive them. Run your agent on a schedule instead, for example a daily list_bookings pass.

Is the Bokadirekt portal only in Swedish?

The portal and help center are in Swedish. Tool names and inputs are in English, and customer names, services and notes come back as they are in your diary.

Is the MCP server different from the REST API?

Only the door is different. Both expose the same 13 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Bokadirekt?

No. Cotlet is independent and not affiliated with Bokadirekt i Stockholm AB.

Can I use the Bokadirekt API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

Give your agent access to Bokadirekt.

Free 7-day trial with 2,000 credits, no card needed.