# Charging time

`POST https://bemap.benomad.com/bgis/service/chargingTime/1.0`

Part of [Charging time and cost](https://benomad.com/dev/doc/bemap-api/electric-mobility/charging-time-cost.md).

> **Estimate charging time.** How long a vehicle needs to charge from one battery level to another, at a given charging power.

Computes an estimated charging time, based on energy vehicle feature (`vehicle` or `evf` parameters), connector power and charge need.

Provisioned per account: without it, BeMap answers `400 Access Denied`.

## Request body

JSON, `Content-Type: application/json`. Schema `ChargingTimeRequest`.

- `chargingPointPower` (number (double), required): Nominal power of connector of the charging station (in kW).
- `chargingCurrentType` (enum, required): Define the current type of charging point power.
  - `NA`: Not available (NA).
  - `AC`: Alternating current (AC), but the number of phases is not available.
  - `AC_SINGLE_PHASE`: Alternating current (AC), single phase.
  - `AC_THREE_PHASES`: Alternating current (AC), three phases.
  - `DC`: Direct current (DC).
- `geoserver` (string): Geoserver name.
- `swidx` (integer (int32), deprecated): Switch index.
- `vehicle` (string): Vehicle model (UUID key). Mandatory if `energyVehicleFeature` parameter is not set.
- `energyVehicleFeature` (RoutingEnergyVehicleFtr): Energy vehicle feature for energy consumption estimation. Optional if `vehicle` parameter is defined. Also accepted as `routingEnergyVehicleFeature`.
  - `scx` (number (double)): Product of vehicle's front area and aerodynamic coefficient (in m²).
  - `crr` (number (double)): Vehicle's tire rolling resistance coefficient (dimension-less, in interval ]0, 1[).
  - `engineEfficiency` (number (double)): Vehicle's efficiency coefficient between engine and gear (dimension-less, in interval ]0, 1[).
  - `batCapacity` (number (double)): Vehicle's capacity of the battery (in kWh, only if electric vehicle or hybrid re-chargeable, 0 otherwise).
  - `energyLoad` (number (double)): Vehicle's current energy load, state of charge (in kWh).
  - `dryWeight` (integer (int32)): Vehicle's weight without any consumables or passengers (in kg).
  - `payload` (integer (int32)): Vehicle's extra load (consumables or passengers weight for example) (in kg).
  - `auxConsumption` (integer (int32)): Vehicle's instantaneous auxiliary equipments consumption (in W).
  - `maxAccel` (number (double)): Maximum acceleration (superior to 0.1, in m/s², based on vehicle's acceleration capacity and expected driving behavior).
  - `maxDecel` (number (double)): Maximum deceleration (inferior to -0.1, in m/s², based on vehicle's braking capacity and expected driving behavior).
  - `extTemp` (number (float)): Outside temperature (in °C).
  - `maxChargePower` (number (double)): Maximum charge power AC single phase authorized by the vehicle (in kW).
  - `maxChargePowerAc3` (number (double)): Maximum charge power AC three phases authorized by the vehicle (in kW).
  - `maxChargePowerDc` (number (double)): Maximum charge power DC authorized by the vehicle (in kW).
  - `regenerativeBraking` (boolean): Defines if the vehicle supports regenerative braking (default = true).
- `options` (enum[]): Options of charging time service.
  - `OPTIMUM_BATTERY_CHARGE`: Calculate the optimum charge level (in %) of the vehicle battery at the given charge point; Above this level, the power delivered by the charge point decreases, and the charge takes more time.
- `temperature` (integer (int32)): Temperature in Celsius. Mandatory if `vehicle` parameter is used. Optional if `evf` parameter is used. By Default `20`.
- `remainingBatteryLevel` (number (double)): Remaining battery level in percent. Available value `0` to `100`. By default `0`. Mandatory if `vehicle` parameter is used. Optional if `evf` parameter is used.
- `connectorType` (string): Connector type ID, used to perform a power limitation based on those connector.
- `chargingBatteryLevel` (number (double)): Desired level of battery after charging (in percent, [1,100]), 100% for a full battery charge.

## Response

`200`, schema `ChargingTimeResponse`.

- `optimumBatteryChargeLevel` (number (double)): The optimal charge level (in %) of the vehicle at the given charge point; Above this level, the power delivered by the charge point decreases, and the charge takes more time.
- `chargingTime` (integer (int64)): The estimated charging time, based on energy vehicle profile (in seconds) or -1 in case of error (that is, if battery capacity = 0, or Connector power inferior or equals to 0, or Maximum charge power inferior or equals to 0).

## Errors

- `400`: Bad Request
- `302`: no credentials were sent. Do not follow the redirect.
- `401`: the account or the API key is wrong.

How to read each one: [Errors](https://benomad.com/dev/doc/bemap-api/getting-started/errors.md).

## Example

```bash
curl -X POST 'https://bemap.benomad.com/bgis/service/chargingTime/1.0' \
  -u 'YOUR_ACCOUNT:YOUR_API_KEY' \
  --fail-with-body \
  -H 'Content-Type: application/json' \
  -d '{
  "vehicle": "29b8cbcd-a75e-48db-a29f-c26745013d20",
  "chargingCurrentType": "DC",
  "chargingPointPower": 50,
  "remainingBatteryLevel": 20,
  "chargingBatteryLevel": 80,
  "temperature": 15
}'
```

Response captured from production:

```json
{
  "optimumBatteryChargeLevel": 0,
  "chargingTime": 2773
}
```

## Reference pages

- [Charging time](https://benomad.com/dev/doc/bemap-api/guides/services/chargingtime.md)
