Performs a route calculation dedicated to electric vehicles.
If the vehicle does not have enough autonomy, the service adds charging stations (step points) along the route.
The criteria by default is
FASTEST, the service optimizes the total duration (driving + charging time).
POST /bgis/service/2.0/evsmartrouting๐ Electric Vehicle : Kia e-Niro 64kWh
๐ Charging Station Provider: ecoMovement
๐ Geoserver Provider: osm
๐ค Request JSON
{
"geoserver": "osm",
"csps": ["ecoMovement"],
"vehicle": {
"initBatLvl": 100,
"key": "eb1e9464-8654-4c01-bedd-b2f95412a60d"
},
"routingMode": "MODE_VIAS",
"start": {
"lon": 2.35222,
"lat": 48.85661
},
"stop": {
"lon": 4.35171,
"lat": 50.85034
},
"condition": {
"chargePluggingTime": 300,
"geometry": true
},
"routingVehicleProfile": {
"transportMode": "CAR"
}
}โ What it does:
- Computes a route from Paris to Brussels
- Starts with 100% battery
- Adds a fixed 5-minute stop time at each charging station
- Uses the default vehicle profile for a car
- Minimal setup โ easy to test and expand later
| Header | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| Authorization | Bearer YOUR_TOKEN |
| Field | Type | Optional | Description |
|---|---|---|---|
geoserver | string | Yes | Geoserver name (e.g., "here") |
csps | string[] | Yes | Charging station provider names (e.g., "gireve") |
vehicle | object | No | Electric vehicle configuration |
start | object | No | Start coordinates |
stop | object | No | Destination coordinates |
condition | object | Yes | Trip and EV-related conditions |
csfs | string[] | Yes | Filters applied to charging stations |
vias | object[] | Yes | List of via points |
swidx | int | Yes | Switch index |
Example
{
"geoserver": "osm",
"csps": ["ecoMovement"],
"vehicle": {
"key": "06b5c02d-ba2e-4b14-8b2b-6d793aac0da0",
"initBatLvl": 80,
"payload": 100
},
"start": { "lon": 2.3522, "lat": 48.8566 },
"stop": { "lon": 5.0415, "lat": 47.3220 },
"condition": {
"minBatLvl": 10,
"minArrivalBatLvl": 15,
"temperature": 20,
"departureTime": "2025-07-04T08:00:00+01:00",
"encodedGeometry": true
},
"vias": [
{ "lon": 3.0, "lat": 48.0 }
],
"swidx": 0
}Describes the coordinates of a place, such as a start or stop point. See field details below.
| Field | Type | Optional | Description |
|---|---|---|---|
lat | double | No | Latitude |
lon | double | No | Longitude |
{ "lon": 5.0415, "lat": 47.3220 }Class representing a Vehicle. Fields details:
| Field | Type | Optional | Description |
|---|---|---|---|
key | string | No | Vehicle UUID key (from EV vehicle API) |
initBatLvl | float | Yes | Initial battery level (%) โ Default: 100 |
payload | int | Yes | Payload in kg โ Default: 75 kg |
"vehicle": {
"key": "06b5c02d-ba2e-4b14-8b2b-6d793aac0da0",
"initBatLvl": 75,
"payload": 80
}Defines the conditions of the EV smart routing trip, including routing options, energy constraints, environmental factors, and rendering settings.
| Field | Optional | Description |
|---|---|---|
allowMaxSpeedRecommendation | Yes | Allow to calculate the maximum speeds to reach destination or step-point. Since algorithm v3. Type: boolean. |
allowNaStatus | Yes | Allow use of pools with NA availability status. False by default. Type: boolean. |
alternative | Yes | Index of alternative route. 0 to disable. 0 by default. Type: byte. |
chargePluggingTime | Yes | Defines the fixed additional time in seconds for each charging stop. 300 by default. Type: int. |
chargeTimeSlots | Yes | List of step-point time slots. If forced charges are defined, they take priority. Type: list of [ChargeTimeSlotFront]. |
chargingStationDeprecatedConnector | Yes | Enable support for deprecated connector types. False by default. Type: boolean. |
co2emissions | Yes | Calculate COโ emissions savings for the journey. False by default. Type: boolean. |
connectorTypes | Yes | List of connector type IDs to filter charging stations. Type: list of Integer. |
currency | Yes | Currency for cost calculation (ISO 4217 Code). Type: String.Example: - 'EUR'- 'USD'- 'JPY' |
departureTime | Yes | Departure timestamp (Epoch ms or ISO 8601). Type: String. |
drivingStyle | Yes | Driving behavior model. Type: [DrivingStyleFront]. |
encodedGeometry | Yes | Enables encoded polyline output. False by default. Type: boolean. |
criterias | Yes | List of routing criteria. Available values : - AVOID_CROSSING_BORDER - AVOID_FERRIES - AVOID_MOTORWAYS - AVOID_TOLLS - TRAFFIC |
geometry | Yes | Enables polyline output. True by default. Type: boolean. |
ignoreAvailableStatus | Yes | Use any station regardless of availability. False by default. Type: boolean. |
maxAfterChargeBatLvl | Yes | Maximum battery level after charge (%). Type: float. |
minArrivalBatLvl | Yes | Minimum required battery at destination (%). Type: float. |
minBatLvl | Yes | Minimum battery level during the trip (%). Type: float. |
optimMode | Yes | Optimization mode Available values : - ECO_ENERGY- FASTEST (Default)- SHORTEST). |
restrictedEvse | Yes | Accept restricted charging stations. Type: boolean. |
routeDetails | Yes | Enable detailed route events (e.g., consumption). False by default. Type: boolean. |
routeDetailsExtKey | Yes | API key to unlock extended route details. Type: String. |
routeDetailsFreq | Yes | Frequency (s) of route events. Default 60s. Type: int. |
routesheet | Yes | Enables generation of a route sheet. Type: boolean. |
routesheetLanguage | Yes | Language for route sheet rendering. Type: String. |
routesheetMode | Yes | Output format : - TEXT (Default)- DETAILS- TEXT_DETAILS. |
routesheetVerboseLevel | Yes | Verbosity level : - LOW- MEDIUM- HIGH. |
temperature | Yes | Temperature in Celsius. Default: 20. Type: int. |
weather | Yes | Enable real-time weather data. Type: boolean. |
weatherProvider | Yes | Choose weather data provider. Type: String. |
Example
{
"departureTime": "2025-07-03T10:00:00+02:00",
"temperature": 25,
"minArrivalBatLvl": 15,
"minBatLvl": 10,
"encodedGeometry": true,
"chargePluggingTime": 300,
"optimMode": "FASTEST",
"currency": "EUR"
}The DrivingStyle object defines how the electric vehicle is driven, affecting the energy consumption during the route.
| Field | Optional | Description |
|---|---|---|
| mode | Defines the driving mode. Available values:
| |
| allowOverVehSpdLim | Yes | Allows to define a maximum speed above the vehicle's maximum speed defined in the vehicle's database. Type: boolean. |
| limitMaxSpeed | Yes | Vehicle's max speed in km/h used during routing. If null, default from vehicle database is used. Type: short. |
| maxAcc | Yes | Average vehicle's acceleration in m/sยฒ. Must be > 0. Example: 1.25. Type: double. |
| maxDec | Yes | Average vehicle's deceleration in m/sยฒ. Must be < 0. Example: -1.25. Type: double. |
| sps | Yes | Speed weight coefficient per road network level. Type: list of SpeedPonderation. |
{
"mode": "ECO",
"allowOverVehSpdLim": false,
"limitMaxSpeed": 110,
"maxAcc": 1.2,
"maxDec": -1.2,
"sps": [
{
"factor": 0.9,
"level": 2,
"pondType": "ALL",
"roadType": "MOTORWAY"
},
{
"factor": 1.1,
"level": 3,
"pondType": "ETA",
"roadType": "DEFAULT"
}
]
}๐ For detailed examples and usage, check out the tutorial
Used inside sps, represents the speed ponderation per road level.
| Field | Optional | Description |
|---|---|---|
factor | Ponderation factor for speed. (Default = 1) Example: 0.8 (reduce), 1.3 (increase). Type: float. | |
level | Road network level. Values: 0 (all), 1 (main), 2 (secondary), 3 (third), 4 (fourth). Type: int. | |
pondType | Yes | Ponderation type. Values: - ALL (default)- CAL- ETA.. |
roadType | Yes | Road type for ponderation. Values: - ALL- DEFAULT- FERRY- MOTORWAY- PEDESTRIAN- ROUNDABOUNT- SLIPROAD |
{
"factor": 0.85,
"level": 1,
"pondType": "CAL",
"roadType": "MOTORWAY"
}๐ For detailed examples and usage, check out the tutorial
Describes a coordinate used as a via (waypoint) in EV Smart Routing.
| Field | Type | Optional | Description |
|---|---|---|---|
lat | double | No | Latitude in decimal degrees (WGS84). |
lon | double | No | Longitude in decimal degrees (WGS84). |
chargeMaxDistance | int | Yes | Maximum distance in meters from a charge point to force a charge. Default is 0. |
ignoreVehicleProfile | boolean | Yes | Whether to ignore the vehicle profile for this via. |
maxSpeed | int | Yes | Max speed in km/h for the segment after this via. 0 means global speed is used. |
stopDuration | int | Yes | Stop duration in seconds at this via point. Default is 0. |
transportType | string | Yes | Type of transport. Options : - BICYCLE- CAR- DELIVERY_TRUCK- EMERGENCY- MOTORCYCLE- PEDESTRIAN- PUBLIC_BUS- TAXI- TRUCK. |
๐ก Example
{
"lat": 45.764043,
"lon": 4.835659,
"chargeMaxDistance": 3000,
"ignoreVehicleProfile": false,
"maxSpeed": 90,
"stopDuration": 600,
"transportType": "CAR"
}๐ For detailed examples and usage, check out the tutorial
๐ Back to API Index
You can test this API endpoint directly in our dedicated BeMap documentation environment.