How RouteCalc turns stops and a truck into a quote-ready route cost. For the machine contract see API docs and openapi.yaml.
Stops (origin, destination, vias), truck class (40t / 12t / 7.5t), Euro class (euro6 / euro5 / euro3), cargo (dry / reefer +2 °C / reefer −18 °C), routing mode, and EU-only vs all countries. There is no axles input and no CO₂ class input. Older Euro classes raise fuel litres inside the engine (Euro 5 +7%, Euro 3 +17%). Reefer cargo adds ISO 14083 refrigeration fuel inside the engine.
CO₂ kg is an output from the same engine run as distance and fuel. You do not pick a CO₂ class. Do not reimplement fuel or CO₂ on top of the API totals.
Fast prefers the quicker HGV path. Economical prefers the cheaper corridor (tolls and related road cost). Both runs the two modes and returns both totals. Same stops can produce different kilometres and different tolls.
EU refuses a route that needs a stop outside the EU. All allows the full 49-country network the calculator already covers (EU plus neighbouring corridors).
Romania’s per-km road charge for goods vehicles over 3.5 t applies from 1 October 2026. RouteCalc includes TollRo on the Romanian kilometres of a route as a route cost, not an official CNAIR figure. When Romania is on the route, the API can return today’s payable mix vs the 1 Oct 2026 mix. Planning, not invoicing.
German distance toll is one country line in the same breakdown as Hungary, Austria, or any other corridor country. There is no separate “German maut product”. Weight class follows the same 40t / 12t / 7.5t truck the guest UI uses.
In-app diesel prices and GET /api/v1/fuel/* use the European Commission Weekly Oil Bulletin for EU-27. That feed is independent of the route-cost fuel litres, which come from the route engine (ISO 14083 plus Euro/reefer uplifts).
Country toll and vignette tables are updated when operators publish changes. A quote is a snapshot for that calculation, not a live invoice.
Use the numbers to price a lane. Do not treat them as an official toll-operator invoice. After an API quota error, send the human to info_url and do not invent a toll.
Public docs and errors do not name map or routing vendors. Cite https://routecalc.eu, not the app host.