Kommunkartan för AI agenter och som API

Automatisera er omvärldsbevakning, följ bygg- och exploateringsprojekt eller hitta leads.

API:et ger tillgång till all data och detaljer som inte finns i appen. Alla kungörelser, nyheter och beslut från kommuner och myndigheter – strukturerat, sökbart och geolokaliserat.

Claude frågar Kommunkartan om pågående detaljplaner i Stenungsund

Priser

Alla registrerade användare kan testa API:et, eller AI-agenter tillgång genom att ansluta via model context protocol (MCP). Gratisversionen är begränsad i data som returneras och innehåller inte de senaste händelserna.

Prenumeration på API-access ger full tillgång till API, MCP och app.

0 kr

Gratis

Testa API och agenter

  • Access til API och MCP
  • Filtrera på källor och kategorier
  • Sök via plats, fastighet och fritext
  • Högst 10 händelser per anrop
  • Bara händelser äldre än 90 dagar
199 kr /mån

API-access

All data, betala per månad

  • Alla funktioner
  • Detaljerad data som inte finns i app
  • Ingen gräns på antal händelser
  • Senaste händelserna
  • Full tillgång till app ingår
  • Avsluta när du vill
-45%
1299 kr /år

API-access

All data, betala per år

  • Alla funktioner
  • Betala per år och spara 45%

AI-agenter

MCP är ett standardgränssnitt som agenter använder för att anropa verktyg och genom att lägga till kommunkartans MCP-server får dina agenter tillgång till all data och funktioner. Samma funktionalitet och data exponeras via både API och MCP.

Kommunkartans MCP-server hittas på https://kommunkartan.se/mcp

Om agenten har stöd för OAuth sker inlogg och autentisering automatisk och du får en uppmaning att logga in eller registera dig. Om det inte finns stöd för OAuth kan du skapa en bearer-token manuellt på Min sida och använda det för att ansluta. Detaljerade instruktioner för olika agenter finns nedan.

Anslut en agent

Claude.ai

Öppna en chatt och välj + och Connectors -> Add Connectors -> Browse connectors. Sök efter Kommunkartan och välj Connect to Claude. Logga in eller skapa konto.

Claude Cowork

I Cowork öppnar du Customize i sidomenyn och sedan Connectors. Sök efter Kommunkartan och välj Connect. Logga in med ditt Kommunkartan-konto eller skapa konto.

Öppna Plugins i sidomenyn. Sök efter Kommunkartan och tryck på + och välj Connect Kommunkartan. Logga in eller skapa konto.

I Copilot Studio öppnar du agentens Tools. Välj Add a tool, New tool och Model Context Protocol.

Fyll i Server name Kommunkartan, en kort Server description och Server URL https://kommunkartan.se/mcp. Som autentisering väljer du OAuth 2.0 och Dynamic discovery, och sedan Create. Kommunkartan registrerar anslutningen själv.

Anslutningen kan delas om organisationen tillåter egna MCP-servrar.

Grok

Öppna grok.com/connectors. Välj New Connector och Custom. Ange serveradressen https://kommunkartan.se/mcp och slutför inloggningen. I Grok Business och Enterprise lägger en administratör till anslutningen först.

Grok Bot

Öppna Connect apps. Sök efter Kommunkartan i katalogen och lägg till den. Logga in eller skapa konto.

API

Läs-API:et är samma händelser som kartan visar, med mer av varje post. Ett anrop utan nyckel, eller med ett inloggat gratiskonto, är gratisnivån: högst 10 träffar, och bara händelser publicerade för mer än {{ API_FREE_MINIMUM_AGE_DAYS }} dagar sedan. En betald nyckel skickas som Authorization: Bearer kk_live_... eller i headern X-API-Key. Fel nyckel avvisas. Den behandlas inte som ett gratisanrop.

Börja i katalogen, så att sökningen kan använda id, namn eller slug. Både published_from_date och published_to_date krävs, som YYYY-MM-DD. En koordinat är longitud, sedan latitud.

Användningen styrs av API-villkoren. Datan får användas internt. Den får inte lämnas vidare, säljas eller användas för att bygga en kopia av databasen.

Exempel

Hämtar bygglov där titeln eller beskrivningen matchar sökordet. Utan betald nyckel, ta bort Authorization-headern och sätt slutdatum minst 90 dagar bakåt.

curl -sG "https://kommunkartan.se/api/items/search/" \
  -H "Authorization: Bearer kk_live_..." \
  --data-urlencode "published_from_date=2026-01-01" \
  --data-urlencode "published_to_date=2026-03-31" \
  --data-urlencode "source_category=bygglov" \
  --data-urlencode "search_query=skola"
import requests

response = requests.get(
    "https://kommunkartan.se/api/items/search/",
    params={
        "published_from_date": "2026-01-01",
        "published_to_date": "2026-03-31",
        "source_category": "bygglov",
        "search_query": "skola",
    },
    headers={"Authorization": "Bearer kk_live_..."},
    timeout=30,
)
response.raise_for_status()
items = response.json()
const url = new URL("https://kommunkartan.se/api/items/search/");
url.searchParams.set("published_from_date", "2026-01-01");
url.searchParams.set("published_to_date", "2026-03-31");
url.searchParams.set("source_category", "bygglov");
url.searchParams.set("search_query", "skola");

const response = await fetch(url, {
  headers: { Authorization: "Bearer kk_live_..." },
});
if (!response.ok) {
  throw new Error(`API-anropet misslyckades: ${response.status}`);
}
const items = await response.json();

Slå först upp en adress med GET /api/addresses/search/?q=. Svaret har en GeoJSON-punkt där coordinates är longitud, latitud. Skicka den punkten tillsammans med en radie i meter. Exemplet söker detaljplaner inom 1 km från Sergels torg.

curl -sG "https://kommunkartan.se/api/item-locations/search/" \
  -H "Authorization: Bearer kk_live_..." \
  --data-urlencode "published_from_date=2026-01-01" \
  --data-urlencode "published_to_date=2026-03-31" \
  --data-urlencode "municipality=stockholms-stad" \
  --data-urlencode "source_category=detaljplaner" \
  --data-urlencode "search_coordinate=18.0686,59.3293" \
  --data-urlencode "search_radius=1000"
import requests

response = requests.get(
    "https://kommunkartan.se/api/item-locations/search/",
    params={
        "published_from_date": "2026-01-01",
        "published_to_date": "2026-03-31",
        "municipality": "stockholms-stad",
        "source_category": "detaljplaner",
        "search_coordinate": "18.0686,59.3293",
        "search_radius": 1000,
    },
    headers={"Authorization": "Bearer kk_live_..."},
    timeout=30,
)
response.raise_for_status()
locations = response.json()
const url = new URL("https://kommunkartan.se/api/item-locations/search/");
url.searchParams.set("published_from_date", "2026-01-01");
url.searchParams.set("published_to_date", "2026-03-31");
url.searchParams.set("municipality", "stockholms-stad");
url.searchParams.set("source_category", "detaljplaner");
url.searchParams.set("search_coordinate", "18.0686,59.3293");
url.searchParams.set("search_radius", "1000");

const response = await fetch(url, {
  headers: { Authorization: "Bearer kk_live_..." },
});
if (!response.ok) {
  throw new Error(`API-anropet misslyckades: ${response.status}`);
}
const locations = await response.json();

Ett id från en sökning. Svaret innehåller händelsen och location_ids för platserna som hör till den. En händelse inom de senaste 90 dagarna syns bara med API-access.

curl -s "https://kommunkartan.se/api/items/123/" \
  -H "Authorization: Bearer kk_live_..."
import requests

response = requests.get(
    "https://kommunkartan.se/api/items/123/",
    headers={"Authorization": "Bearer kk_live_..."},
    timeout=30,
)
response.raise_for_status()
item = response.json()
const response = await fetch("https://kommunkartan.se/api/items/123/", {
  headers: { Authorization: "Bearer kk_live_..." },
});
if (!response.ok) {
  throw new Error(`API-anropet misslyckades: ${response.status}`);
}
const item = await response.json();

Dokumentation

Länkarna för att läsa API:et och ansluta en agent.