# Kommunkartan Kommunkartan is a Swedish local news service and data provider. It geolocates news and events from municipalities and government bodies so people can follow the places and topics they care about. It is the largest and most comprehensive source for this material, with more than 1,000 sources and more than 300,000 events created so far. Every source is official and first-hand. Most people use the map at https://kommunkartan.se/karta/. The map is JavaScript on top of Google Maps. Events are placed as location markers, and users filter, explore, and open an event from a marker. They can also subscribe to locations, addresses, properties, and more, and get a notification or an email when something matches their interest. What makes Kommunkartan unique is that users choose which news they consume, by geolocation, by category, and by keyword and that we offer a high-quality and structured data through the API and MCP. This file is the entrypoint for agents. The home page at https://kommunkartan.se/ is HTML only and has no Markdown alias. ## Accounts and pricing Every user can create a free account. Free use is limited per month. A premium subscription gives unlimited access. Pricing is on the landing page: https://kommunkartan.se/ ## Programmatic access Kommunkartan offers programmatic access for richer data and for automated use. The product page, with prices and how to connect an agent, is https://kommunkartan.se/api-och-agenter/. Terms for that use are https://kommunkartan.se/api-villkor/. The access itself is described in the API and MCP sections below. ## Sources Kommunkartan covers every Swedish municipality and every Swedish region. The sources are: - Committee protocols and meeting minutes, except committees excluded for privacy reasons - Municipal noticeboards - Building permits (bygglov) - Municipal news - Ongoing and new zoning plans (detaljplaner) - News and events from the Police (Polisen) - Projects and road construction from the Swedish Transport Administration (Trafikverket) - Bankruptcies, with company data from the Swedish Companies Registration Office (Bolagsverket) ## How to request Markdown Pages listed below have a Markdown representation. Two ways reach it: - Add `.md` in place of the trailing slash. `https://kommunkartan.se/karta/strangnas-kommun/` is `https://kommunkartan.se/karta/strangnas-kommun.md`. The address stays on the `.md` URL. - Send `Accept: text/markdown` on the normal trailing-slash URL. Markdown is returned only when `text/markdown` outranks `text/html`. Any other `.md` URL, including `https://kommunkartan.se/index.md` and login or account pages, is a 404. On those pages, `Accept: text/markdown` still returns the HTML page. ## Pages available as Markdown Map Markdown is the latest 20 items for that place or source category. Geographical detail is on the map, or through the API. The interactive map itself is HTML only. A map URL has one or two slugs. A place slug and a source-category slug are different, and either order works when both are present. Each slug is looked up on its own: one must be a place, and the other must be a source category. Place slugs: - A municipality slug is the full Swedish name in lowercase ASCII, with spaces as hyphens. `å` and `ä` become `a`, and `ö` becomes `o`. The name ends in `-kommun`. Strängnäs kommun is `strangnas-kommun`. Håbo kommun is the exception: `haabo-kommun`. - A region slug is the county name (län) in the same ASCII form. Stockholms län is `stockholms-lan`. This is the place. It is not the source category `regioner`. Source-category slugs: - `bygglov` — building permits - `detaljplaner` — detailed plans - `kommuner` — municipal noticeboards and committee protocols - `regioner` — regional committee protocols - `polisen` — police news and events - `trafikverket` — projects and road construction - `bolagsverket` — bankruptcies, with company data from Bolagsverket Examples: - One place: https://kommunkartan.se/karta/strangnas-kommun.md - One source category, for the whole country: https://kommunkartan.se/karta/bygglov.md - A place and a source category: https://kommunkartan.se/karta/strangnas-kommun/bygglov.md or https://kommunkartan.se/karta/bygglov/strangnas-kommun.md - One event: https://kommunkartan.se/karta/strangnas-kommun/123.md, where `123` is the numeric `location_id` from a list link. The place slug is required. A source-category slug is optional: https://kommunkartan.se/karta/strangnas-kommun/bygglov/123.md - [Map](https://kommunkartan.se/karta.md): the latest 20 items in the current date window, with no place or source category selected. - [Election forecast index](https://kommunkartan.se/kommunvalet-2026.md): links to each municipality forecast. - [Municipal election forecast](https://kommunkartan.se/kommunvalet-2026/{municipality-slug}.md): latest 2026 forecast and the 2022 result. Use the municipality place slug, for example `strangnas-kommun`. Charts stay on the HTML page. - [Embeddable forecast graph](https://kommunkartan.se/kommunvalet-2026/{municipality-slug}/embed/{graph}.md): `graph` is `mandates`, `votes`, or `trend`. The Markdown body is the same numbers as the graph. ## HTML-only pages These pages have no Markdown body. Do not request them with `.md`. - Home: https://kommunkartan.se/ - API and MCP product page: https://kommunkartan.se/api-och-agenter/ - API terms: https://kommunkartan.se/api-villkor/ - Login and signup: https://kommunkartan.se/logga-in/ and https://kommunkartan.se/skapa-konto/ - Account, subscriptions, and payments: https://kommunkartan.se/min-sida/ and https://kommunkartan.se/bevakningar/ ## API The read API is the way to query the same events the map shows, with more of each record than the map card. Interactive docs are at https://kommunkartan.se/docs/ and the OpenAPI schema is at https://kommunkartan.se/api/schema/. No key is required. A search or a batch then returns at most 10 rows, and only items published more than 90 days ago. Paid access is a bearer token, `Authorization: Bearer kk_live_...` (or the header `X-API-Key`). A paid key removes the 10-row cap and the age limit. A wrong or revoked key is rejected. It is not treated as a free call. An item is one decision, publication, or event. A location is one place attached to that item. One item can have several locations. Coordinates are longitude, then latitude. Start with the catalog. These lists are the ids, names, and slugs a search accepts: - https://kommunkartan.se/api/source-categories/ - https://kommunkartan.se/api/labels/ - https://kommunkartan.se/api/municipalities/ - https://kommunkartan.se/api/counties/ Then search. Both `published_from_date` and `published_to_date` are required (`YYYY-MM-DD`). - `GET /api/items/search/` searches publications. It has no place filter. `GET /api/items//` returns one item, including `location_ids`. `POST /api/items/batch/` takes up to 100 item ids. - `GET /api/item-locations/search/` searches places. Filter with `municipality`, `county`, `source_category`, and `labels` (id, name, or slug), and with `search_query`. To search around a point, send `search_coordinate` as `longitude,latitude` and `search_radius_meters`. `GET /api/item-locations//` returns one place and its item. `POST /api/item-locations/batch/` takes up to 100 location ids. - `GET /api/properties/search/?q=`, `GET /api/addresses/search/?q=`, and `GET /api/points-of-interest/search/?q=` turn a designation, a street address, or a place name into a coordinate you can pass to the location search. Add `exclude_coordinate=true` on the property and address searches when the coordinate is not needed. A point-of-interest search can take `municipality` or `county` to bias the area. ## MCP Two MCP servers expose the same 13 tools as the read API. - https://kommunkartan.se/mcp-public is the free preview. No sign-in. Every caller is capped at 10 rows and only receives items published more than 90 days ago. - https://kommunkartan.se/mcp is the signed-in server. Connecting without a token starts OAuth sign-in (discovery is under `/.well-known/`). A free account on that login has the same 10-row cap and 90-day age limit. A paid account removes both. Developer tools can instead use a bearer token created for the account. Call `list_municipalities`, `list_counties`, `list_source_categories`, or `list_labels` before searching, and use those values as filters. Use `search_properties`, `search_addresses`, or `search_points_of_interest` to get a coordinate, then `search_item_locations` with that coordinate as `lng,lat` and a radius in meters. Item and item-location searches always require both publication dates. On a free call, set `published_to_date` at least 90 days before today. A newer item is omitted. The tools are `list_source_categories`, `list_labels`, `list_municipalities`, `list_counties`, `search_items`, `get_item`, `get_items_by_id`, `search_item_locations`, `get_item_location`, `get_item_locations_by_id`, `search_properties`, `search_addresses`, and `search_points_of_interest`.