When to use these routes
Use them when a user needs an independent inspection of a building or of construction work in Sweden, and the agent must read prices, match a service, or submit a quote request.
Do not use them to hire a contractor, to take a side in a dispute, or to fetch private customer files. Tower and inspector tools stay on app.besiktningsman.se and are out of this contract.
OpenAPI
Machine-readable contract (OpenAPI 3.1): https://www.besiktningsman.se/openapi.json and https://www.besiktningsman.se/openapi.yaml. JSON index of the same routes: https://www.besiktningsman.se/api.
Each operation has a unique operationId, a description, typed parameters, and JSON error schemas.
Endpoints
GET https://www.besiktningsman.se/api/knowledge — legal entity, cities, services, hub prices, and the regulatory knowledge index.
POST https://www.besiktningsman.se/api/assistant/quote-estimate — JSON body with serviceIdentifier (and optional segment privat|brf). Returns a published estimate when the row exists. Not a binding offer.
POST https://www.besiktningsman.se/api/lead-form/submit — quote lead. JSON fields: email, phone, address, besiktningEllerKundtjanst. Optional name and description. Multipart is allowed for a file attachment.
GET https://www.besiktningsman.se/api/markdown/{slug} or GET the HTML path with Accept: text/markdown — markdown copy of the public page. Example: https://www.besiktningsman.se/priser.md.
JSON errors
Unknown /api/* paths return HTTP 404 with JSON, not an HTML app shell. The body is { ok: false, code, message, hint, error: { code, message, hint } }.
Example: GET /api/v1/unknown → 404 JSON. GET /api/knowledge with POST → 405 JSON. Empty quote POST → 400 JSON with a hint.
NAP
Besiktningsman.se / Besiktningsmannen i Stockholm AB, org. nr 556599-8423. Heleneborgsgatan 54, 117 32 Stockholm. Phone 010-165 40 00. info@besiktningsman.se. Canonical site: https://www.besiktningsman.se.
Example error
GET /api/v1/unknown returns JSON 404. Contract: /openapi.json.
{
"ok": false,
"code": "not_found",
"message": "This API path does not exist.",
"hint": "GET /openapi.json"
}