Use case · trip logs

Addresses for trip logs

A körjournal is the Swedish trip log for a company car, and Skatteverket asks for an address for each trip. Kartpunkt turns the vehicle's GPS position at a trip's start and end into the nearest official address from Lantmäteriet's register, and names the road the vehicle is on, with its speed limit.

The call

Request

curl -X POST https://api.kartpunkt.se/v1/reverse-geocode \
  -H "Authorization: Bearer $KARTPUNKT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"point":{"lat":59.8599,"lon":17.6443},"radius_m":5000,"distinct":"street","limit":3}'

Answer

{
  "results": [
    {
      "id": "se.syn.syn-0000uvt",
      "type": "address",
      "label": "Järngatan 2, 755 41 Uppsala",
      "street": "Järngatan",
      "number": 2,
      "letter": null,
      "postcode": "75541",
      "locality": "Uppsala",
      "municipality_code": "0380",
      "municipality": "Uppsala",
      "county_code": "03",
      "county": "Uppsala län",
      "district_code": "903802",
      "district": "Uppsala södra",
      "point": {
        "lat": 59.859903789196885,
        "lon": 17.64433171466342
      },
      "position_type": "driveway",
      "match_type": null,
      "score": 1,
      "distance_m": 1.83
    },
    {
      "id": "se.syn.syn-0000taj",
      "type": "address",
      "label": "Bredstigen 11, 756 46 Uppsala",
      "street": "Bredstigen",
      "number": 11,
      "letter": null,
      "postcode": "75646",
      "locality": "Uppsala",
      "municipality_code": "0380",
      "municipality": "Uppsala",
      "county_code": "03",
      "county": "Uppsala län",
      "district_code": "903805",
      "district": "Uppsala landsbygd",
      "point": {
        "lat": 59.85826774209593,
        "lon": 17.64290149051346
      },
      "position_type": "driveway",
      "match_type": null,
      "score": 1,
      "distance_m": 198.02
    },
    {
      "id": "se.syn.syn-0000t9s",
      "type": "address",
      "label": "Örnvägen 2, 753 45 Uppsala",
      "street": "Örnvägen",
      "number": 2,
      "letter": null,
      "postcode": "75345",
      "locality": "Uppsala",
      "municipality_code": "0380",
      "municipality": "Uppsala",
      "county_code": "03",
      "county": "Uppsala län",
      "district_code": "903804",
      "district": "Uppsala västra",
      "point": {
        "lat": 59.86256320677179,
        "lon": 17.645462724134184
      },
      "position_type": "building",
      "match_type": null,
      "score": 1,
      "distance_m": 303.78
    }
  ],
  "road": {
    "name": "Järngatan",
    "road_number": null,
    "road_class": 8,
    "speed_limit_kmh": 30,
    "speed_limit_varies": false,
    "owner": "municipal",
    "surface": "paved",
    "municipality_code": "0380",
    "distance_m": 1.83,
    "fallback": false
  },
  "provenance": {
    "synthetic": true,
    "network": {
      "id": "snap_01m45nmn6mfey8z9wvaf31nb9n",
      "dataset": "nvdb",
      "source_date": "2026-10-05",
      "built_at": "2026-10-05T09:17:11.764Z",
      "graph": "snap_01m45nmnryfey8z9x29xcd08tq"
    },
    "sources": [
      {
        "id": "synthetic",
        "name": "Kartpunkt synthetic test addresses",
        "licence": "CC0-1.0",
        "attribution": "Syntetiska testadresser från Kartpunkt, inte verkliga adresser.",
        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
        "updated": "2026-10-05"
      },
      {
        "id": "nvdb",
        "name": "Trafikverket, NVDB",
        "licence": "CC0-1.0",
        "attribution": "Vägdata från NVDB, Trafikverket, CC0 1.0",
        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
        "updated": "2026-10-05"
      }
    ]
  }
}
A test key's answer: the addresses are synthetic (provenance.synthetic: true), and road is NVDB's.

With distinct street and limit 3, the answer is the nearest address of each of the three nearest streets, and road is the road the coordinate is on. Store the first address whose street equals road.name when it is within 50 m. When road.fallback is true, no address is within 50 m: store the road (its name, else its number) with the kommun. Otherwise store the first address. llms.txt has the rule in full.

What to save with the trip

Store the address's id and label with the trip. Kartpunkt's answers may be stored with the trip they were looked up for, shared between your users and systems, and shown on any map, with the attribution.

The road and its speed limit

road names the road with its speed limit (speed_limit_kmh), its number, its road class, its road owner and its surface, from Trafikverket's NVDB. More in road context.

Drivers' positions

A vehicle's position is personal data about its driver. Kartpunkt never logs or stores the coordinates you send: about a call it keeps only the key, the operation, the status, the response time and counts.

Price

Test keys are free on every plan and answer from the synthetic dataset. Live calls need a paid plan and an account approved for live access. All prices are in Swedish kronor, excl. VAT.

PlanPrice, excl. VATIncludes
UtvecklareSEK 02,000 calculations a month; 1,000 test requests a day; Test addresses in the same format as live data; Jobs are included from Bas
BasSEK 490 a month5,000 calculations/month included; 25,000 live calls a month; 10,000 addresses a day; +50,000 calculations/month as an add-on
ProSEK 1,990 a month50,000 calculations/month included; 200,000 live calls a month; 50,000 addresses a day
Avtalby quoteVendors: priced per municipality; Operators: priced per vehicle; Network version and source in every answer; The API runs in the EU; Data processing agreement: draft on request

Create a test key on your account page (the account pages are in Swedish), read how to start, or see all plans.