Swedish property data: fastighet, byggnad and belägenhetsadress
Most property-data bugs are not bugs. They are a wrong mental model: treating a designation as a key, an address as a place, or a building as a property.

Four objects, not one
The register is not a table of houses. It is four related objects, and almost every integration mistake comes from collapsing them:
- Registerenhet (fastighet) — the legal property. Carries the designation, e.g. STOCKHOLM SVEA 1:1.
- Parcel geometry — a property can consist of several separate pieces of land. A property is not one polygon.
- Byggnad — a building footprint. A property may have none, one or many, and a building can sit across more than one property.
- Belägenhetsadress — the official address point. Buildings have addresses; properties frequently do not.
A designation is not a key
Designations change. Properties are split and merged, and municipalities reorganise their traktnamn. The same text can also exist in more than one kommun, which is why a full designation names the municipality first.
Store the stable id, display the designation, and look up by designation only when a human typed it: /v1/properties/by-beteckning/{beteckning}. A system keyed on the printed name will silently point at the wrong parcel after the next avstyckning.
Coordinates: SWEREF 99 TM in, WGS84 out
The source data is projected in SWEREF 99 TM (EPSG:3006) — metres on a plane, not degrees. We return WGS84 longitude/latitude so geometry drops straight into a web map, and geometry comes back as GeoJSON.
If you compute area or distance, do it in the projected system. A degree is not a unit of length, and the error grows as you go north — which, in Sweden, is most of the country.
Walking address → property → building → registered
The whole point of one store is that this is four calls and no joins on your side.
# 1 — resolve what the user typed curl -s "https://mantal.eu/v1/addresses/search?q=Sveavagen+44" -H "Authorization: Bearer $KEY" # 2 — who is registered at that address curl -s "https://mantal.eu/v1/addresses/<addressId>/registered" -H "Authorization: Bearer $KEY" # 3 — the property, with its parcels curl -s "https://mantal.eu/v1/properties/<propertyId>" -H "Authorization: Bearer $KEY" # 4 — the buildings standing on it curl -s "https://mantal.eu/v1/properties/<propertyId>/buildings" -H "Authorization: Bearer $KEY"
Where this data comes from, and your three options
Lantmäteriet direct is the authority. You sign an agreement, you get the Direkt services and the authority’s own field names. Correct for regulated use, and heavy for one lookup inside a signup flow.
Resellers sit in between: established, enterprise-priced, generally not self-serve.
The third option is one key with both shapes — curated for building a product, and the passthrough under /v1/lantmateriet/* when someone needs the source document verbatim. The full surface is in the API reference.
Questions
- What is a registerbeteckning?
- A property’s official designation — municipality, traktnamn and block/unit numbers, e.g. STOCKHOLM SVEA 1:1. It identifies the property in the register, but it is a name, not a permanent key.
- Are owners and mortgages included?
- Not today. Ownership and mortgages sit in the inskrivningsdel of the register, which is not part of what we serve. Everything described here is the property, building and address side.
- Can I get parcel polygons?
- Yes. A property lookup returns its parcels as GeoJSON, and building footprints are available per property or for a map viewport by bounding box.
- Do all buildings have an address?
- No, and assuming so is a common source of empty fields. Barns, technical buildings and outbuildings exist in quantity with no address point at all.