Integration af TollCalc i dine egne applikationer

TollCalc kan integreres i din egen software eller AI-arbejdsgange på tre måder:

Metode Egnet til
REST-API Server-til-server-integration, egne backends
MCP (Model Context Protocol) AI-assistenter (Claude, Cursor, GPT m.fl.)
Python-pakke tollcalc Scripts, data science, Jupyter Notebooks

REST-API

Den fulde API-dokumentation (OpenAPI 3.0) finder du på:

tollcalc.eu/en/api.html

Hurtig start

curl -X POST https://app.tollcalc.eu/api/calculate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer DIN_API_TOKEN" \
  -d '{
    "origin": "Munich, Germany",
    "destination": "Vienna, Austria",
    "vehicle": {
      "weight": 40,
      "axles": 5,
      "emission_class": "euro6",
      "co2_class": "class_1"
    }
  }'

Parametre

Parameter Type Beskrivelse
origin string Startpunkt: adresse eller "lat;lon"
destination string Destination: adresse eller "lat;lon"
via string[] Valgfrie mellemstop (maks. 498)
vehicle.weight number Totalmasse i tons (fx 40)
vehicle.axles integer Antal aksler: 2, 3, 4 eller 5
vehicle.emission_class string Euro-norm: euro0–euro6
vehicle.co2_class string CO₂-klasse: class_1 (standarddiesel) til class_5 (nul-emission)
plannedTripStart string Valgfri ISO-8601-dato ("2026-09-01") eller RFC3339-dato/-tid ("2026-09-01T06:00:00Z"); vælger de vejafgiftsregler, der er gældende på det tidspunkt. Standard: nu

Grænser: Maks. 500 waypoints pr. anmodning (origin + via + destination). For tætte koordinatkæder (tættere end 1 punkt pr. 500 m) udtyndes automatisk på serveren, og ORS afviser ruter længere end 3.000 km – opdel længere ture i flere anmodninger.

Valgfri HTTP-header:

Header Beskrivelse
X-Subaccount Valgfri brugsattribuering, fx til en kundevirksomhed eller afdeling. Tælles pr. subkonto og vises i din brugsstatistik. Manglende/tom → Default; maks. 64 tegn; tilladt A-Z a-z 0-9 _ : -; ugyldig → HTTP 400

Autentifikation

API-tokens får du efter registrering på app.tollcalc.eu. Uden token er der 10 gratis forespørgsler pr. måned (pr. IP-adresse).

Hent forbrug og kvote

Når API'et er integreret, kan du hente dit forbrug og din kvote programmatisk – begge endepunkter er read-only, bruger ikke selv kvote og accepterer samme bearer-token:

Endepunkt Beskrivelse
GET /api/usage Dine gennemførte beregninger i måneden, fordelt på X-Subaccount
GET /api/quota Forbrug, månedsgrænse og resterende kvote

Valgfrit query-parameter: year og month (standard: aktuel måned).

# Forbrug pr. subkonto
curl https://app.tollcalc.eu/api/usage \
  -H "Authorization: Bearer DIN_API_TOKEN"
# {"year":2026,"month":9,"total":1000,
#  "sub_accounts":[{"key":"kunde_a","count":500},{"key":"Default","count":320}]}

# Restende kvote
curl https://app.tollcalc.eu/api/quota \
  -H "Authorization: Bearer DIN_API_TOKEN"
# {"year":2026,"month":9,"plan":"api","used":123,"limit":5000,"remaining":4877}

Uden X-Subaccount-header på en beregning tilskrives kaldet nøglen Default. Ved ubegrænsede abonnementer er limit og remaining null.


MCP – Integration i AI-assistenter

TollCalc understøtter Model Context Protocol (MCP) og kan integreres direkte i AI-værktøjer som Claude Desktop, Cursor eller andre MCP-kompatible assistenter.

Endpoint

POST https://app.tollcalc.eu/mcp

Tilgængelige værktøjer

Værktøj Beskrivelse
calculate_toll Vejafgiftsberegning for en lastbilrute
get_quota Forespørg om resterende kvote for den aktuelle session

Konfiguration i Claude Desktop

Tilføj følgende til din Claude Desktop-konfiguration (claude_desktop_config.json):

Mulighed A – OAuth (anbefalet): Angiv kun URL'en, ingen token nødvendig.

{
  "mcpServers": {
    "tollcalc": {
      "url": "https://app.tollcalc.eu/mcp"
    }
  }
}

Mulighed B – API-nøgle (til automatisering): Gem token manuelt, fx til server-til-server-integrationer.

{
  "mcpServers": {
    "tollcalc": {
      "url": "https://app.tollcalc.eu/mcp",
      "headers": {
        "Authorization": "Bearer DIN_API_TOKEN"
      }
    }
  }
}

Uden konfiguration er der 10 gratis forespørgsler pr. MCP-session (= pr. samtale) til rådighed – ingen konto nødvendig. Efter 10 forespørgsler åbner Claude Desktop automatisk et browserlogin (OAuth 2.0). Efter login gælder det købte kvote. API-tokens til mulighed B får du på app.tollcalc.eu.

Eksempelopkald via MCP

Efter opsætningen kan du spørge assistenten direkte:

"Hvad koster vejafgiften for en 40-tonner fra München til Wien?"

Assistenten kalder værktøjet calculate_toll og returnerer et struktureret svar.

Detaljeniveauer

Værktøjet calculate_toll understøtter tre detaljeniveauer via parameteren detail:

Værdi Indhold
compact (standard) Samlet afgift, afgifts-km, afgiftsfrie km, fordeling pr. land
detailed Som compact, plus omkostninger pr. segment (uden geometri)
full Som detailed, plus koordinater og debug-informationer

Svarfelter

Alle detaljeniveauer indeholder følgende felter:

Felt Type Beskrivelse
origin string Opløst navn på startsted
destination string Opløst navn på destinationssted
total_toll_eur number Samlet vejafgift i euro
total_distance_km number Samlet strækning i km
toll_km number Afgiftspligtige km
toll_free_km number Afgiftsfrie km
countries array Fordeling pr. land (country, country_name, total_km, toll_km, toll_eur)
info_url string Link til beregningen i TollCalc-webappen – inkl. planlagt rute på kortet, til deling med kolleger eller åbning i browseren

Med detail=detailed indeholder countries desuden segments (segmenter med road, type, km, toll_eur). Med detail=full kommer koordinater, source_url, matched_geofence og geometri til.

Server Card

MCP-beskrivelsen (Server Card) kan hentes på:

GET https://app.tollcalc.eu/.well-known/mcp-server

Python-pakke tollcalc

Python-pakken tollcalc omslutter REST-API'et og muliggør brug fra Python-scripts eller Jupyter Notebooks.

Installation

pip install tollcalc

Brug

from tollcalc import calculate_toll, get_usage, get_quota

result = calculate_toll(
    origin="Munich, Germany",
    destination="Vienna, Austria",
    weight=40,
    axles=5,
    emission_class="euro6",
    co2_class="class_1",
    token="DIN_API_TOKEN",
)

print(f"Samlet vejafgift: {result['total_toll_eur']:.2f} EUR")
print(f"Strækning:        {result['total_distance_km']:.1f} km")

for country in result["countries"]:
    print(f"  {country['country_name']}: {country['toll_eur']:.2f} EUR ({country['toll_km']:.0f} afgifts-km)")

Forbrug og kvote fra Python

from tollcalc import get_usage, get_quota

usage = get_usage(token="DIN_API_TOKEN")
print(usage["total"], "Calls")
for s in usage["sub_accounts"]:
    print(f"  {s['key']}: {s['count']}")

quota = get_quota(token="DIN_API_TOKEN")
print(f"{quota['used']} / {quota['limit']} – tilbage: {quota['remaining']}")

Koordinater som input

result = calculate_toll(
    origin="48.1374;11.5755",    # München (lat;lon)
    destination="48.2082;16.3738",  # Wien
    weight=40,
    axles=5,
)

Pakkedokumentation

Fuld dokumentation og flere eksempler finder du på PyPI: pypi.org/project/tollcalc


Priser og kvoter

Tarif Forespørgsler/måned Pris
Free (uden token) 10 pr. MCP-session (= pr. samtale) gratis
Starter op til 500 fra 9 €/måned
Professional op til 5.000 fra 49 €/måned
Enterprise ubegrænset efter aftale

Alle tariffer og aktuelle priser: tollcalc.eu/de/#pricing

For spørgsmål om integration kontakt support@tollcalc.eu.