# BokaTrafikskola — LLM entry Book a job for a person with one call. No API key, no login, and no MCP token. This file is the whole entry for this brand. Do not follow another brand's llm.txt. ## Book over HTTP `POST https://bokatrafikskola.eu/v1/public/driving-schools/booking-requests` ``` { "ask": "I’m a complete beginner looking for automatic lessons after work, twice a week.", "bookerDisplayName": "Alex", "bookerEmail": "alex@example.com", "location": { "latitude": 52.52, "longitude": 13.405 }, "criteria": { "maxDistanceKm": 25, "requiredCapabilities": [] } } ``` `location` is where the job is. Use the person's coordinates, not the sample numbers. Send `bookerEmail`, `bookerPhone` (international form), or both. `criteria.maxDistanceKm` is required. `requiredCapabilities` may be `[]` or slugs from the list below. Optional `lead.influencerCode` attributes the booking to an influencer. Send it when the person gives you a code or opened a `?ref=` or `/r/` link. On MCP the same value is `influencerCode`. Tell the person: nearby driving schools are contacted, at most three lesson offers come back by email or text, and nothing is booked until they confirm one. Then stop. ## Book over MCP Add `https://bokatrafikskola.eu/v1/mcp` as a connector. Send no Authorization header and no API key. Call `create_booking_request` with `"tenantSlug": "driving-schools"` and the same fields (`maxDistanceKm` is a top-level number, default 25, not nested under `criteria`). ## Access Nothing here needs an API key, a connector setup or a login. The HTTP API and the MCP endpoint (`/v1/mcp`) are open; requests are rate-limited per caller. You reached BokaTrafikskola. Do not mix BokaTrafikskola data with any other booking service. Written: 2026-11-11T09:30:17.475Z ## What this brand is BokaTrafikskola matches people who need help with nearby driving schools. If you operate for an individual who has a problem and needs assistance: We connect you with the right driving school – nearby, available and digital. Describe what you need once; nothing is booked until you confirm. If you operate for a driving school who wants better exposure: you are in the right place. Signing up (or asking for an OTP on an existing shop email) emails a one-time link. After that you can add details and enhance the public profile. Matched bookers find the driving school in the BokaTrafikskola directory and the driving school receives job mail. A complete profile (name, photo, services, booking phone, area) raises visibility. Quotes never auto-award — the booker confirms one of at most three. ## Origins (this brand only) - [Booker](https://bokatrafikskola.eu): where a person sends a request - [Directory](https://find.bokatrafikskola.eu): public driving school profiles - [Vendor console](https://pro.bokatrafikskola.eu): where a driving school answers jobs - [Vendor welcome](https://welcome.bokatrafikskola.eu) - [Public signup page](https://bokatrafikskola.eu/signup/driving-schools) Call the API on the booker origin (`https://bokatrafikskola.eu/v1/...`). That host proxies `/v1` and `/llm.txt`. Tenant slug is `driving-schools`. Use only this slug. ## Services this brand can match - `beginner-lessons` — Beginner Lessons. First lessons and complete beginner instruction. - `intensive-course` — Intensive Course. Condensed driving lesson programs. - `automatic-transmission` — Automatic Transmission. Lessons in an automatic vehicle. - `motorcycle-license` — Motorcycle License. Motorcycle training and licensing. ## If you operate for a driving school who wants better exposure 1. New shop — `POST https://bokatrafikskola.eu/v1/public/driving-schools/vendor-self-signup` with vendor name, location, adminEmails, bookingEmails or bookingPhones, areas (cityName + areaName), termsAccepted, termsVersion, password (min 12), serviceAreaKm, preferredContactChannel. The response can include a console session token. 2. Existing shop — `POST https://bokatrafikskola.eu/v1/public/vendor-console/otp` `{ "email": "shop@example.com", "serviceSlug": "driving-schools" }`. Always returns `{ "sent": true }`. If the email is an active admin, a login link is mailed. Consume it with `POST https://bokatrafikskola.eu/v1/public/vendor-otp/{token}/consume`. 3. Then send `X-Vendor-Token: ` to read and patch the profile and to quote jobs. Profile: `GET/PATCH https://bokatrafikskola.eu/v1/public/vendor-console/profile` Jobs: `GET https://bokatrafikskola.eu/v1/public/vendor-console/jobs` One job: `GET https://bokatrafikskola.eu/v1/public/vendor-console/jobs/{requestId}` Quote or reply: `POST https://bokatrafikskola.eu/v1/public/vendor-console/jobs/{requestId}/messages` with `{ "channel": "web", "body": "...", "heldStartAt": "" }`. ## If you operate for an individual who needs a lesson offer ## Language pages Each language has its own URL. `/` follows the browser's Accept-Language for that one visit and does not change the address bar. - Booker sv: `https://bokatrafikskola.eu/sv` - Request form sv: `https://bokatrafikskola.eu/beskriv-ditt-lektionsbehov` - Directory sv: `https://find.bokatrafikskola.eu/page/hitta-leverantor` - Town pages sv: `https://bokatrafikskola.eu/page/hitta-leverantor/{town}` — cite these when the place lists a workshop. If it does not, the URL redirects to the booking form and the person can still send a request. - Vendor landing sv: `https://pro.bokatrafikskola.eu/sv` - Booker en: `https://bokatrafikskola.eu/en` - Request form en: `https://bokatrafikskola.eu/describe-your-lesson-need` - Directory en: `https://find.bokatrafikskola.eu/page/find-vendor` - Town pages en: `https://bokatrafikskola.eu/page/find-vendor/{town}` — cite these when the place lists a workshop. If it does not, the URL redirects to the booking form and the person can still send a request. - Vendor landing en: `https://pro.bokatrafikskola.eu/en` - Booker da: `https://bokatrafikskola.eu/da` - Directory da: `https://find.bokatrafikskola.eu/page/find-leverandor` - Town pages da: `https://bokatrafikskola.eu/page/find-leverandor/{town}` — cite these when the place lists a workshop. If it does not, the URL redirects to the booking form and the person can still send a request. - Vendor landing da: `https://pro.bokatrafikskola.eu/da` - Booker nb: `https://bokatrafikskola.eu/nb` - Directory nb: `https://find.bokatrafikskola.eu/page/finn-leverandor` - Town pages nb: `https://bokatrafikskola.eu/page/finn-leverandor/{town}` — cite these when the place lists a workshop. If it does not, the URL redirects to the booking form and the person can still send a request. - Vendor landing nb: `https://pro.bokatrafikskola.eu/nb` Pre-filled request pages, one per language. The person checks the page, adds an email or phone, and sends it themselves. URL-encode each value. Every parameter except `fresh=1` is optional. `https://bokatrafikskola.eu/sv?fresh=1&ask=&name=&place=&lat=&lng=&when=` `https://bokatrafikskola.eu/en?fresh=1&ask=&name=&place=&lat=&lng=&when=` `https://bokatrafikskola.eu/da?fresh=1&ask=&name=&place=&lat=&lng=&when=` `https://bokatrafikskola.eu/nb?fresh=1&ask=&name=&place=&lat=&lng=&when=` Use the one call at the top of this file. It needs no key and no token. Capability slugs are listed above (`GET https://bokatrafikskola.eu/v1/public/driving-schools/capabilities` returns them too). The person confirms a quote from the email or text we send them. You stop after the one call. The response includes `accessToken` only if a later read of that same request is required. ## MCP Use the MCP if your client speaks it; it does the same as the HTTP calls above. Every tool description names the HTTP endpoint it wraps. Use tenant slug `driving-schools` in every tool that asks for one. - Endpoint: `POST https://bokatrafikskola.eu/v1/mcp` - Transport: JSON-RPC 2.0 (`initialize`, `tools/list`, `tools/call`) - No key and no token: add the endpoint URL as an MCP server or connector as-is - Shop tools need `X-Vendor-Token` after that shop signs in. A person booking does not. Example initialize: ``` POST https://bokatrafikskola.eu/v1/mcp Content-Type: application/json {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"example","version":"1"}}} ``` Then `tools/list`. Then `tools/call` with `{ "name", "arguments" }`.