EV Charging Stations Availability

Request Access

Important note EV Charging Stations Availability is unavailable on a Freemium or Pay As You Grow (PAYG) basis. Click the Request Access button above to contact our Sales team.

The EV Charging Stations Availability service provides real-time information about electric vehicle charging points, including availability status, connector types, power levels, and charging network details.

Basic Usage

import { getPlacesWithEVAvailability } from '@tomtom-org/maps-sdk/services';
import { search } from '@tomtom-org/maps-sdk/services';
// First, search for EV charging stations
const chargingStations = await search({
query: 'EV charging',
position: [4.9041, 52.3676], // Amsterdam
categorySet: ['ELECTRIC_VEHICLE_STATION'],
limit: 10
});
// Fetch real-time availability data
const stationsWithAvailability = await getPlacesWithEVAvailability(chargingStations);

Individual Station Availability

Get availability for a specific charging station:

import { getPlaceWithEVAvailability } from '@tomtom-org/maps-sdk/services';
// Get a specific charging station (from search results)
const station = chargingStations.features[0];
// Get detailed availability information
const stationWithAvailability = await getPlaceWithEVAvailability(station);
// Access availability data
const availability = stationWithAvailability.properties.evChargingStationAvailability;
if (availability) {
console.log(`Total connectors: ${availability.totalConnectors}`);
console.log(`Available connectors: ${availability.availableConnectors}`);
// Check individual connector types
availability.connectorAvailability.forEach(connector => {
console.log(`${connector.connectorType}: ${connector.availableConnectors}/${connector.totalConnectors} available`);
});
}

Understanding Availability Data

The availability response includes comprehensive charging station information:

const stationWithAvailability = await getPlaceWithEVAvailability(station);
const evData = stationWithAvailability.properties.evChargingStationAvailability;
if (evData) {
// Overall availability
console.log(`Station Status: ${evData.availabilityStatus}`); // 'Available', 'Busy', 'OutOfService'
console.log(`Total Connectors: ${evData.totalConnectors}`);
console.log(`Available Connectors: ${evData.availableConnectors}`);
// Connector-specific availability
evData.connectorAvailability.forEach(connector => {
console.log(`Connector Type: ${connector.connectorType}`); // 'Type2', 'CCS', 'CHAdeMO', etc.
console.log(`Power Level: ${connector.powerKW} kW`);
console.log(`Available: ${connector.availableConnectors}/${connector.totalConnectors}`);
console.log(`Status: ${connector.status}`); // 'Available', 'Occupied', 'OutOfOrder'
});
// Charging park information
if (evData.chargingPark) {
console.log(`Charging Park: ${evData.chargingPark.name}`);
console.log(`Operator: ${evData.chargingPark.operator}`);
}
}

Integration with Map Display

Display charging stations with availability indicators on your map:

import { PlacesModule } from '@tomtom-org/maps-sdk/map';
// Search and get availability data
const stations = await search({
query: 'EV charging',
position: [4.9041, 52.3676],
categorySet: ['ELECTRIC_VEHICLE_STATION'],
limit: 20
});
const stationsWithAvailability = await getPlacesWithEVAvailability(stations);
// Display on map with custom styling based on availability
const placesModule = await PlacesModule.get(map, {
iconConfig: {
customIcons: [
{
category: 'ELECTRIC_VEHICLE_STATION',
iconFunction: (place) => {
const availability = place.properties.evChargingStationAvailability;
if (!availability) return 'ev-charging-default';
switch (availability.availabilityStatus) {
case 'Available':
return 'ev-charging-available'; // Green icon
case 'Busy':
return 'ev-charging-busy'; // Red icon
case 'OutOfService':
return 'ev-charging-offline'; // Gray icon
default:
return 'ev-charging-default';
}
}
}
]
}
});
placesModule.show(stationsWithAvailability);

Filtering by Connector Type

Filter stations by specific connector types:

const filterByConnectorType = (stationsWithAvailability, connectorTypes) => {
return {
...stationsWithAvailability,
features: stationsWithAvailability.features.filter(station => {
const availability = station.properties.evChargingStationAvailability;
if (!availability) return false;
return availability.connectorAvailability.some(connector =>
connectorTypes.includes(connector.connectorType) &&
connector.availableConnectors > 0
);
})
};
};
// Find stations with available Type2 or CCS connectors
const compatibleStations = filterByConnectorType(stationsWithAvailability, ['Type2', 'CCS']);