EV Search Along the Route

Service version: 2
Last edit: 2025.06.03
TomTom Maps

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

Purpose

The EV Search Along the Route endpoint provides information about the EV POIs along a pre-calculated route. By providing optional request parameters, the API allows filtering of the response by connector type, availability status, etc. This feature is particularly useful for long-distance travel where the vehicle may need to be charged one or more times to complete the journey.

If the detour request parameter is set to true, the search response will include detour information (if calculable), which consists of:

  • Detour distance: The difference between the distances of the original route and the recalculated route going through the EV POI (as way-point).
  • Detour time: The additional time required to take the detour.
  • Detour offset: The distance between the start of the original route and the starting point of the detour to the POI.

Please note that with detour, the original route may be altered, and some of its points may be skipped. If the route that passes through the POI is faster than the original one, the detour distance/time value would be negative.

Request data

HTTPS method: POST

For ease of viewing and identification:

  • Constants and parameters enclosed in curly brackets { } must be replaced with their values.
  • Please see the following Request parameters section with the required and optional parameters tables for their values. The generic request format is as follows.

Request format

get
Request URL format
https://{baseURL}/search/{versionNumber}/alongRoute?key={Your_API_Key}[optional parameters]
get
Request body format
1Content-Type: application/json
2
3{
4 "route": {
5 "coordinates": [
6 [longitude1, latitude1],[longitude2, latitude2],...
7 ],
8 "type":"LineString"
9 },
10 "width": integer
11}

Request curl command example

post
Request curl command example
1curl --location "https://api.tomtom.com/search/2/alongRoute?key={Your_API_Key}&status=Available,Unknown&connector=IEC62196Type2Outlet&accessType=Public&restriction=evOnly&capability=ChargingProfileCapable&minPowerKW=22.2&maxPowerKW=150.0&limit=20&view=Unified" \
2--header 'Content-Type: application/json' \
3--data '{
4 "route": {
5 "coordinates": [
6 [4.90415,52.36759],[4.90393,52.36774],[4.90386,52.36775],
7 [4.90355,52.36793],[4.90350,52.36796],[4.90344,52.36799],
8 [4.90342,52.36799],[4.90336,52.36800],[4.90332,52.36800],
9 [4.90327,52.36800],[4.90310,52.36796],[4.90299,52.36793]
10 ],
11 "type":"LineString"
12 },
13 "width":1000
14}'

Request body

The endpoint requires a request body in application/json format which includes the route and width of the route, within which the search will be conducted.

Request bodyDescription
width integer

Search distance from the the route in meters. The default value is 500 meters.
Default: 500

route object

The route to search along.
Value: A valid GeoJSON LineString geometry.
Please refer to RFC 7946 for details.

route object
FieldDescription
type stringThe type of the GeoJSON object. Current supported value is LineString.
coordinates arrayArray of coordinates in the form of [longitude, latitude]

Request parameters

The following table describes the parameters that can be used in a request.

  • Required parameters must be used or the call will fail.
  • Parameters and values are case-sensitive.
  • Optional parameters may be used.
Required parametersDescription
baseURL string

Base URL for calling the API.
Values:

versionNumber string

The service version.
Value: The current value is 2.

key string

An API Key valid for the requested service.
Value: Your valid API Key.

Optional parametersDescription
detour boolean

This parameter enables the enrichment of search results with detour information.
Note: When querying with detour=true, the maximum number of results specified by limit, is capped at 20.
Default: false

limit integer

Maximum number of search results that will be returned.
Value: An integer value between 1 and 100.
Note: The maximum number of results returned when the detour parameter is set to true is limited to 20.
Default: 10

status string

The comma-separated status values of charging points to be filtered.
Enum:

  • Available
  • Reserved
  • Occupied
  • OutOfService
  • Unknown
connector string

A comma-separated list of connector types which could be used to restrict the result to specific connector types. See the list of Supported Connector Types.
Value: A comma-separated list of connector types (in any order).
Example: IEC62196Type2Outlet,IEC62196Type2CableAttached

accessType string

The comma-separated access types, which could be used to restrict the results to EV POIs with specific access types.
Enum:

  • Public
  • Authorized
  • Restricted
  • Private
  • Unknown
restriction string

The comma-separated restrictions, which could be used to restrict the results to EV POIs with specific restrictions.
Enum:

  • evOnly
  • plugged
  • disabled
  • customers
  • motorcycles
capability string

The comma-separated capabilities, which could be used to restrict the results to EV POIs with specific capabilities.
Enum:

  • ChargingProfileCapable
  • ChargingPreferencesCapable
  • ChipCardSupport
  • ContactlessCardSupport
  • CreditCardPayable
  • DebitCardPayable
  • PedTerminal
  • RemoteStartStopCapable
  • Reservable
  • RfidReader
  • StartSessionConnectorRequired
  • TokenGroupCapable
  • UnlockCapable
  • PlugAndCharge
minPowerKW double

An optional parameter that could be used to restrict the result to charging stations with connectors having a specific minimal value of power in kilowatts (closed interval - with that value).
Value: A double value representing the power rate in kilowatts.
Example: 22.2
This parameter might be used together with [maxPowerKW].

maxPowerKW double

An optional parameter that could be used to restrict the result to charging stations with connectors having a specific maximum value of power in kilowatts (closed interval - with that value).
Value: A double value representing the power rate in kilowatts.
Example: 43.2
This parameter might be used together with [minPowerKW].

vehicleType string

The comma-separated vehicle types, which could be used to restrict the results to charging stations where specific vehicle types can be charged.
Enum:

  • Car
  • Truck

This parameter might be used together with [vehicleCategory].
Value: The comma-separated list of vehicle types (in any order).
Example: Car,Truck

vehicleCategory string

The comma-separated vehicle categories, which could be used to restrict the results to charging stations where specific categories of vehicles can be charged.
Enum:

  • N1
  • N2
  • N3
  • N3+O4

This parameter might be used together with [vehicleType].
Value: The comma-separated list of vehicle categories (in any order).
Note: Parameter value is expected to be URL Encoded.
Example: N2,N3%2BO4

vehicleHeight double

An optional parameter that could be used to restrict the results to charging stations where vehicles of a height in meters can be charged.
Value: Positive double value representing vehicle height in meters.
Example: 2.6

vehicleWidth double

An optional parameter that could be used to restrict the results to charging stations where vehicles of a width in meters can be charged.
Value: Positive double value representing vehicle width in meters.
Example: 1.8

vehicleLength double

An optional parameter that could be used to restrict the results to charging stations where vehicles of a length in meters can be charged.
Value: Positive double value representing vehicle length in meters.
Example: 16.5

vehicleWeight integer

An optional parameter that could be used to restrict the results to charging stations where vehicles of a weight in kilograms can be charged.
Value: Positive double value representing vehicle weight in kilograms.
Example: 12500

vehicleBrand string

An optional parameter that could be used to restrict the results to charging stations where given vehicle brand is allowed to charge.
Value: Vehicle brand name.
Example: Tesla

view string

Geopolitical View. The context used to resolve the handling of disputed territories.
Enum: Unified, AR, IL, IN, MA, PK, RS, RU, TR, CN, TW
Default values:

  • Argentina, default view: AR, available views: Unified, IL, IN, MA, PK, RS, RU, TR, CN, TW

  • India, default view: IN, available views: -

  • Morocco, default view: MA, available views: Unified, AR, IL, IN, PK, RS, RU, TR, CN, TW

  • Pakistan, default view: PK, available views: Unified, AR, IL, IN, MA, RS, RU , TR, CN, TW

  • Serbia, default view: RS, available views: Unified, AR, IL, IN, MA, PK, RU, TR, CN, TW

  • Russia, default view: RU, available views: Unified, AR, IL, IN, MA, PK, RS, TR, CN, TW

  • Turkey, default view: TR, available views: Unified, AR, IL, IN, MA, PK, RS, RU, CN, TW

  • China, default view: CN, available views: Unified, AR, IL, IN, MA, PK, RS, RU, TR, TW

  • Taiwan, default view: TW, available views: Unified, AR, IL, IN, MA, PK, RS, RU, TR, CN

  • Others, default view: Unified, available views: AR, IL, IN, MA, PK, RS, RU, TR, CN, TW

nearby string

The comma-separated IDs of nearby Points of Interest (POIs) categories can be used to limit the results of charging stations. Nearby POIs are points of interest within walking distance of the charging stations that users can explore while charging their vehicles.
Enum:

  • 7315 - Restaurant
  • 9932 - Public Amenity
  • 9376 - Café/Pub
  • 7314 - Hotel/Motel
  • 9361 - Shop
  • 9362 - Park Recreation Area

Example: nearby=[7315,9362]

brand string

The comma separated brand values of EV POI to be filtered. The brand value can be either the brand name or the brand id.
Example: brand=TotalEnergies,ALZFFQCR,Allego

paymentBrand string

Enum:

  • "F2M Charge"
  • "Plugsurfing"
  • "Vattenfall InCharge - Incharge"
  • "Vandebron"
  • "Maserati Charge"
  • "FISKER FLEX"
  • "MyEasyCharge"
  • "Nissan Energy"
  • "Eneco"
  • "eSolutions Charging"
  • "EVBox Charge"
  • "Shell Recharge"
  • "FrCS"

Example: paymentBrand=Plugsurfing,MyEasyCharge


The comma separated payment brands, which could be used to limit the results of the charging stations. The value for payment brand can be either the name or the id of that brand.

Request headers

The following table describes the HTTP request headers.

Optional headersDescription
Tracking-ID

Specifies an identifier for the request.

  • It can be used to trace a call.
  • The value must match the regular expression '^[a-zA-Z0-9-]{1,100}$'.
  • An example of the format that matches this regular expression is UUID (e.g., 9ac68072-c7a4-11e8-a8d5-f2801f1b9fd1). For details check RFC 4122.

  • If specified, it is replicated in the Tracking-ID response header.
  • It is only meant to be used for support and does not involve tracking of you or your users in any form.

Value: An identifier for the request.

Accept

Specifies one of the following values as the response format of an API request:

  • application/json Default if the header is not provided.
  • application/xml
Accept-Language

Should be one of the TomTom supported IETF language tags, case insensitive. When data in the specified language is not available for a specific field or the language is not specified, the NGT (NeutralGroundTruth) of the POI will be used.

JMESPath

This header can be used to execute a JMESPath query on the API response. For more information refer to JMESPath examples.
Default value: If no header is provided, all response fields are included.
Note: The header value has to be URL encoded.
Example: results[*].{id:id,position:position} will only return the id and position fields of the results.

Sorting-Preset

This header is used to pass a sorting preset to the EV Search API.
Preset can be any of the following:

  • Major: Major POIs (criteria like size, speed and popularity -in the future- will be used together with the user preferences)

  • NearBy: NearBy POIs (only beeline distance will be considered together with the user preferences)

  • MajorNearby: Major and NearBy POIs (combination of the first two presets) re-ranked by beeline distance

  • Detour: Major POIs re-ranked based on detour information

If no sorting header is specified, a default sorting behavior up to the API's discretion is applied.

Response data

Response body

If the Accept header value is set to application/json, the response will be a JSON object with the following structure:

Json response body example
1{
2 "summary": {
3 "numResults": 2,
4 "totalResults": 191
5 },
6 "results": [
7 {
8 "id": "939d44d0-cf00-42e9-b9f3-bf4d2de125b5",
9 "name": "TotalEnergies",
10 "position": {
11 "lat": 52.364941,
12 "lon": 4.8935986
13 },
14 "chargingStations": [
15 {
16 "id": "e0bead1c-6884-11ee-9f49-42010aa40fc0",
17 "chargingPoints": [
18 {
19 "capabilities": [
20 "CreditCardPayable",
21 "RemoteStartStopCapable",
22 "RfidReader"
23 ],
24 "connectors": [
25 {
26 "id": "1",
27 "currentA": 25,
28 "currentType": "AC3",
29 "ratedPowerKW": 17.0,
30 "type": "IEC62196Type2Outlet",
31 "voltageV": 230
32 }
33 ],
34 "evseId": "NL-GFX-ETNLP011512-1",
35 "physicalReference": "TNLP011512",
36 "status": "Available"
37 },
38 {
39 "capabilities": [
40 "CreditCardPayable",
41 "RemoteStartStopCapable",
42 "RfidReader"
43 ],
44 "connectors": [
45 {
46 "id": "2",
47 "currentA": 25,
48 "currentType": "AC3",
49 "ratedPowerKW": 17.0,
50 "type": "IEC62196Type2Outlet",
51 "voltageV": 230
52 }
53 ],
54 "evseId": "NL-GFX-ETNLP011512-2",
55 "physicalReference": "TNLP011512",
56 "status": "Occupied"
57 }
58 ]
59 }
60 ],
61 "address": {
62 "countryCode": "NL",
63 "countryCodeISO3": "NLD",
64 "country": "Netherlands",
65 "countrySubdivision": "North Holland",
66 "countrySubdivisionName": "North Holland",
67 "countrySubdivisionCode": "NH",
68 "freeformAddress": "Oudezijds Voorburgwal 99F, 1012 EM Amsterdam",
69 "localName": "Amsterdam",
70 "municipality": "Amsterdam",
71 "postalCode": "1012 EM",
72 "streetNumber": "99F",
73 "streetName": "Oudezijds Voorburgwal"
74 },
75 "openingHours": {
76 "mode": "nextSevenDays",
77 "timeRanges": [
78 {
79 "startTime": {
80 "date": "2024-05-02",
81 "hour": 0,
82 "minute": 0
83 },
84 "endTime": {
85 "date": "2024-05-09",
86 "hour": 0,
87 "minute": 0
88 }
89 }
90 ]
91 },
92 "timeZone": {
93 "ianaId": "Europe/Amsterdam"
94 },
95 "paymentOptions": [
96 {
97 "brands": [
98 {
99 "name": "Plugsurfing"
100 },
101 {
102 "name": "Eneco"
103 },
104 {
105 "name": "Vattenfall InCharge - Incharge"
106 },
107 {
108 "name": "EVBox Charge"
109 },
110 {
111 "name": "Shell Recharge"
112 },
113 {
114 "name": "Vandebron"
115 }
116 ]
117 }
118 ],
119 "nearbyPois": [7315,9932],
120 "accessType": "Public",
121 "vehicleConstraint": {
122 "types": ["Car", "Truck"],
123 "categories": ["N1", "N2"],
124 "length": 5.0,
125 "height": 2.75,
126 "width": 2.0,
127 "weight": 3500,
128 "brands": [
129 {
130 "name": "Tesla"
131 },
132 {
133 "name": "Rivian"
134 }
135 ]
136 }
137 },
138 {
139 "id": "c31bc9fb-8935-4df5-97c6-51acbaccc601",
140 "name": "EQUANS",
141 "position": {
142 "lat": 52.3653884,
143 "lon": 4.8922383
144 },
145 "chargingStations": [
146 {
147 "id": "67335c40-4e72-11e8-8f53-42010a840002",
148 "chargingPoints": [
149 {
150 "capabilities": [
151 "RemoteStartStopCapable",
152 "RfidReader"
153 ],
154 "connectors": [
155 {
156 "id": "1",
157 "currentA": 16,
158 "currentType": "AC3",
159 "ratedPowerKW": 11.0,
160 "type": "IEC62196Type2Outlet",
161 "voltageV": 230
162 }
163 ],
164 "evseId": "NL-GFX-EEVB-P1552388-1",
165 "physicalReference": "1552388",
166 "status": "Occupied"
167 },
168 {
169 "capabilities": [
170 "RemoteStartStopCapable",
171 "RfidReader"
172 ],
173 "connectors": [
174 {
175 "id": "2",
176 "currentA": 16,
177 "currentType": "AC3",
178 "ratedPowerKW": 11.0,
179 "type": "IEC62196Type2Outlet",
180 "voltageV": 230
181 }
182 ],
183 "evseId": "NL-GFX-EEVB-P1552388-2",
184 "physicalReference": "1552388",
185 "status": "OutOfService"
186 }
187 ]
188 }
189 ],
190 "address": {
191 "countryCode": "NL",
192 "countryCodeISO3": "NLD",
193 "country": "Netherlands",
194 "countrySubdivision": "North Holland",
195 "countrySubdivisionName": "North Holland",
196 "countrySubdivisionCode": "NH",
197 "freeformAddress": "Herengracht 505, 1017 BV Amsterdam",
198 "localName": "Amsterdam",
199 "municipality": "Amsterdam",
200 "postalCode": "1017 BV",
201 "streetNumber": "505",
202 "streetName": "Herengracht"
203 },
204 "openingHours": {
205 "mode": "nextSevenDays",
206 "timeRanges": [
207 {
208 "startTime": {
209 "date": "2024-05-02",
210 "hour": 0,
211 "minute": 0
212 },
213 "endTime": {
214 "date": "2024-05-09",
215 "hour": 0,
216 "minute": 0
217 }
218 }
219 ]
220 },
221 "timeZone": {
222 "ianaId": "Europe/Amsterdam"
223 },
224 "paymentOptions": [
225 {
226 "brands": [
227 {
228 "name": "Plugsurfing"
229 },
230 {
231 "name": "Vattenfall InCharge - Incharge"
232 },
233 {
234 "name": "EVBox Charge"
235 },
236 {
237 "name": "Shell Recharge"
238 },
239 {
240 "name": "Vandebron"
241 }
242 ]
243 }
244 ],
245 "nearbyPois": [7315,9932],
246 "accessType": "Public",
247 "vehicleConstraint": {
248 "types": ["Car", "Truck"],
249 "categories": ["N1", "N2", "N3", "N3+O4"],
250 "length": 15.0,
251 "height": 2.75,
252 "width": 2.0,
253 "weight": 13500,
254 "brands": [
255 {
256 "name": "Tesla"
257 },
258 {
259 "name": "Rivian"
260 }
261 ]
262 }
263 }
264 ]
265}

If the Accept header value is set to application/xml, the response will be an XML object with the following structure:

XML response body example
1<response>
2 <summary>
3 <numResults>2</numResults>
4 <totalResults>191</totalResults>
5 </summary>
6 <results>
7 <item>
8 <id>939d44d0-cf00-42e9-b9f3-bf4d2de125b5</id>
9 <name>TotalEnergies</name>
10 <position>
11 <lat>52.364941</lat>
12 <lon>4.8935986</lon>
13 </position>
14 <address>
15 <countryCode>NL</countryCode>
16 <countryCodeISO3>NLD</countryCodeISO3>
17 <country>Netherlands</country>
18 <countrySubdivision>North Holland</countrySubdivision>
19 <countrySubdivisionName>North Holland</countrySubdivisionName>
20 <countrySubdivisionCode>NH</countrySubdivisionCode>
21 <freeformAddress>Oudezijds Voorburgwal 99F, 1012 EM Amsterdam</freeformAddress>
22 <localName>Amsterdam</localName>
23 <municipality>Amsterdam</municipality>
24 <postalCode>1012 EM</postalCode>
25 <streetNumber>99F</streetNumber>
26 <streetName>Oudezijds Voorburgwal</streetName>
27 </address>
28 <openingHours>
29 <mode>nextSevenDays</mode>
30 <timeRanges>
31 <timeRange>
32 <startTime>
33 <date>2024-05-02</date>
34 <hour>0</hour>
35 <minute>0</minute>
36 </startTime>
37 <endTime>
38 <date>2024-05-09</date>
39 <hour>0</hour>
40 <minute>0</minute>
41 </endTime>
42 </timeRange>
43 </timeRanges>
44 </openingHours>
45 <timeZone>
46 <ianaId>Europe/Amsterdam</ianaId>
47 </timeZone>
48 <accessType>Public</accessType>
49 <chargingStations>
50 <chargingStation>
51 <id>e0bead1c-6884-11ee-9f49-42010aa40fc0</id>
52 <chargingPoints>
53 <chargingPoint>
54 <evseId>NL-GFX-ETNLP011512-1</evseId>
55 <physicalReference>TNLP011512</physicalReference>
56 <status>Available</status>
57 <capabilities>
58 <capability>CreditCardPayable</capability>
59 <capability>RemoteStartStopCapable</capability>
60 <capability>RfidReader</capability>
61 </capabilities>
62 <connectors>
63 <connector>
64 <id>1</id>
65 <currentA>25</currentA>
66 <currentType>AC3</currentType>
67 <ratedPowerKW>17.0</ratedPowerKW>
68 <type>IEC62196Type2Outlet</type>
69 <voltageV>230</voltageV>
70 </connector>
71 </connectors>
72 </chargingPoint>
73 <chargingPoint>
74 <evseId>NL-GFX-ETNLP011512-2</evseId>
75 <physicalReference>TNLP011512</physicalReference>
76 <status>Occupied</status>
77 <capabilities>
78 <capability>CreditCardPayable</capability>
79 <capability>RemoteStartStopCapable</capability>
80 <capability>RfidReader</capability>
81 </capabilities>
82 <connectors>
83 <connector>
84 <id>2</id>
85 <currentA>25</currentA>
86 <currentType>AC3</currentType>
87 <ratedPowerKW>17.0</ratedPowerKW>
88 <type>IEC62196Type2Outlet</type>
89 <voltageV>230</voltageV>
90 </connector>
91 </connectors>
92 </chargingPoint>
93 </chargingPoints>
94 </chargingStation>
95 </chargingStations>
96 <paymentOptions>
97 <paymentOption>
98 <brands>
99 <brand>
100 <name>Plugsurfing</name>
101 </brand>
102 <brand>
103 <name>Eneco</name>
104 </brand>
105 <brand>
106 <name>Vattenfall InCharge - Incharge</name>
107 </brand>
108 <brand>
109 <name>EVBox Charge</name>
110 </brand>
111 <brand>
112 <name>Shell Recharge</name>
113 </brand>
114 <brand>
115 <name>Vandebron</name>
116 </brand>
117 </brands>
118 </paymentOption>
119 </paymentOptions>
120 <nearbyPois>
121 <nearbyPoi>
122 <categoryId>7315</categoryId>
123 </nearbyPoi>
124 <nearbyPoi>
125 <categoryId>9932</categoryId>
126 </nearbyPoi>
127 </nearbyPois>
128 <vehicleConstraint>
129 <types>
130 <type>Car</type>
131 <type>Truck</type>
132 </types>
133 <categories>
134 <category>N1</category>
135 <category>N2</category>
136 </categories>
137 <height>2.75</height>
138 <width>2.5</width>
139 <length>5.0</length>
140 <weight>3500</weight>
141 <brands>
142 <brand>
143 <name>Tesla</name>
144 </brand>
145 <brand>
146 <name>Rivian</name>
147 </brand>
148 </brands>
149 </vehicleConstraint>
150 </item>
151 <item>
152 <id>c31bc9fb-8935-4df5-97c6-51acbaccc601</id>
153 <name>EQUANS</name>
154 <position>
155 <lat>52.3653884</lat>
156 <lon>4.8922383</lon>
157 </position>
158 <address>
159 <countryCode>NL</countryCode>
160 <countryCodeISO3>NLD</countryCodeISO3>
161 <country>Netherlands</country>
162 <countrySubdivision>North Holland</countrySubdivision>
163 <countrySubdivisionName>North Holland</countrySubdivisionName>
164 <countrySubdivisionCode>NH</countrySubdivisionCode>
165 <freeformAddress>Herengracht 505, 1017 BV Amsterdam</freeformAddress>
166 <localName>Amsterdam</localName>
167 <municipality>Amsterdam</municipality>
168 <postalCode>1017 BV</postalCode>
169 <streetNumber>505</streetNumber>
170 <streetName>Herengracht</streetName>
171 </address>
172 <openingHours>
173 <mode>nextSevenDays</mode>
174 <timeRanges>
175 <timeRange>
176 <startTime>
177 <date>2024-05-02</date>
178 <hour>0</hour>
179 <minute>0</minute>
180 </startTime>
181 <endTime>
182 <date>2024-05-09</date>
183 <hour>0</hour>
184 <minute>0</minute>
185 </endTime>
186 </timeRange>
187 </timeRanges>
188 </openingHours>
189 <timeZone>
190 <ianaId>Europe/Amsterdam</ianaId>
191 </timeZone>
192 <accessType>Public</accessType>
193 <chargingStations>
194 <chargingStation>
195 <id>67335c40-4e72-11e8-8f53-42010a840002</id>
196 <chargingPoints>
197 <chargingPoint>
198 <evseId>NL-GFX-EEVB-P1552388-1</evseId>
199 <physicalReference>1552388</physicalReference>
200 <status>Occupied</status>
201 <capabilities>
202 <capability>RemoteStartStopCapable</capability>
203 <capability>RfidReader</capability>
204 </capabilities>
205 <connectors>
206 <connector>
207 <id>1</id>
208 <currentA>16</currentA>
209 <currentType>AC3</currentType>
210 <ratedPowerKW>11.0</ratedPowerKW>
211 <type>IEC62196Type2Outlet</type>
212 <voltageV>230</voltageV>
213 </connector>
214 </connectors>
215 </chargingPoint>
216 <chargingPoint>
217 <evseId>NL-GFX-EEVB-P1552388-2</evseId>
218 <physicalReference>1552388</physicalReference>
219 <status>OutOfService</status>
220 <capabilities>
221 <capability>RemoteStartStopCapable</capability>
222 <capability>RfidReader</capability>
223 </capabilities>
224 <connectors>
225 <connector>
226 <id>2</id>
227 <currentA>16</currentA>
228 <currentType>AC3</currentType>
229 <ratedPowerKW>11.0</ratedPowerKW>
230 <type>IEC62196Type2Outlet</type>
231 <voltageV>230</voltageV>
232 </connector>
233 </connectors>
234 </chargingPoint>
235 </chargingPoints>
236 </chargingStation>
237 </chargingStations>
238 <paymentOptions>
239 <paymentOption>
240 <brands>
241 <brand>
242 <name>Plugsurfing</name>
243 </brand>
244 <brand>
245 <name>Vattenfall InCharge - Incharge</name>
246 </brand>
247 <brand>
248 <name>EVBox Charge</name>
249 </brand>
250 <brand>
251 <name>Shell Recharge</name>
252 </brand>
253 <brand>
254 <name>Vandebron</name>
255 </brand>
256 </brands>
257 </paymentOption>
258 </paymentOptions>
259 <nearbyPois>
260 <nearbyPoi>
261 <categoryId>7315</categoryId>
262 </nearbyPoi>
263 <nearbyPoi>
264 <categoryId>9932</categoryId>
265 </nearbyPoi>
266 </nearbyPois>
267 <vehicleConstraint>
268 <types>
269 <type>Car</type>
270 <type>Truck</type>
271 </types>
272 <categories>
273 <category>N1</category>
274 <category>N2</category>
275 <category>N3</category>
276 <category>N3+O4</category>
277 </categories>
278 <height>2.75</height>
279 <width>2.5</width>
280 <length>15.0</length>
281 <weight>13500</weight>
282 <brands>
283 <brand>
284 <name>Tesla</name>
285 </brand>
286 <brand>
287 <name>Rivian</name>
288 </brand>
289 </brands>
290 </vehicleConstraint>
291 </item>
292 </results>
293</response>

Response fields

The following table describes all the fields that can appear in a response. Fields are listed by the response section they belong to and in the order that they appear in the response.

Primary fields
FieldDescription
summary objectSummary information about the search that was performed.
results arrayArray of result objects.
summary object
FieldDescription
numResults integer

Number of results in the response.

totalResults integer

Total number of results found.

results array
FieldDescription
id stringEV POI Id.
name stringName of the POI.
position objectPosition of the EV POI.
chargingStations arrayArray of chargingStation objects.
address objectStructured address for the result.
phone stringPhone number of the POI.
openingHours objectOpening hours for the POI.
timeZone objectTime zone for the POI.
brands arrayArray of brand objects.
Brands available at the POI.
paymentOptions arrayArray of paymentOption objects.
nearbyPois array

Array of nearbyPoi.
Nearby POIs are points of interest within walking distance of the charging stations that users can explore while charging their vehicles.

accessType string

Access type of the EV POI station.
Enum:

  • Public: No restriction, POI is open for public use.

  • Authorized: Restriction applies, often requires a permit or registration, i.e., EmployeesOnly.

  • Restricted: Restricted POIs are public locations with the intention to be used by a certain member of the public, i.e., ResidentsOnly.

  • Private: Private POIs are locations that are not open to the public.

vehicleConstraint objectVehicle constraint of the EV POI.
position
FieldDescription
lat doubleLatitude of the result.
lon doubleLongitude of the result.
chargingStation
FieldDescription
id stringCharging station Id.
chargingPoints objectArray of chargingPoint objects.
chargingPoints
FieldDescription
capabilities string (list)

List of capabilities.
Enum:

  • ChargingProfileCapable: The charging point supports charging profiles.
  • ChargingPreferencesCapable: The charging point supports charging preferences.
  • ChipCardSupport: The charging point has a payment terminal that supports chip cards.
  • ContactlessCardSupport: The charging point has a payment terminal that supports contactless cards.
  • CreditCardPayable: The charging point has a payment terminal that supports credit cards.
  • DebitCardPayable: The charging point has a payment terminal that supports debit cards.
  • PedTerminal: The charging point has a payment terminal with a pin-code entry device.
  • RemoteStartStopCapable: The charging point supports remote start and stop functionality.
  • Reservable: The charging point can be reserved.
  • RfidReader: Charging at this point can be authorized with an RFID token.
  • StartSessionConnectorRequired: When a StartSession is sent to the charging point, the MSP must add the optional connector id field in the StartSession object.

  • TokenGroupCapable: The charging point supports token groups. Two or more tokens work as one so that a session can be started with one token and stopped with another (handy when a card and key-fob are given to the EV-driver).

  • UnlockCapable: The connectors of the charging point have a mechanical lock that the eMSP can request to be unlocked.

  • PlugAndCharge: The charging point is compliant with ISO-15118 Plug and Charge functionality.
connectors arrayArray of connector objects.
id stringCharging point Id.
evseId string

The EVSE ID is a unique alphanumeric code assigned to each individual charging point (or connector) within a station or network. It's essential for identifying specific chargers in public or roaming charging systems, enabling apps and providers to locate, authenticate, and bill for sessions accurately.

physicalReference string

Physical identification of the charging station printed on the station and visible to the driver. One of the parameters that can be used for booking or charging purposes to locate the physical station. No standard format is available.

restrictions string (list)

List of parking restrictions.
Enum:

  • evOnly: Reserved parking spot for electric vehicles.
  • plugged: Parking is only allowed while plugged in (charging).
  • disabled: Reserved parking spot for disabled people with a valid ID.
  • customers: Parking spot for customers/guests only, for example in case of a hotel or shop.
  • motorcycles: Parking spot only suitable for (electric) motorcycles or scooters.
status string

Dynamic availability status of charging point.
Enum:

  • Available
  • Reserved
  • Occupied
  • OutOfService
  • Unknown
connector
FieldDescription
id stringId of the connector.
currentA integerAmperage in amperes[A].
currentType string

The current type of the connector.
Enum:

  • AC1
  • AC3
  • DC
ratedPowerKW doubleRated charging power in kilowatts[KW].
type string

The connector type which is one of the supported types.

voltageV integerVoltage in volts[V].
address object
FieldDescription
countryCode stringThe two-letter code of the country.
countryCodeISO3 stringISO alpha-3 country code.
country stringThe country name.
countrySubdivision string

State or Province. For regions like USA, CAN, & GB, this will be the province code, and for the rest the subdivision name.

countrySecondary Subdivision stringCountry.
countryTertiary Subdivision stringNamed area.
countrySubdivisionName stringState or Province name.
countrySubdivisionCode stringState or Province code. Only for regions like USA, CAN, GB.
countrySubdivisionName string

The full name of the first level of a country's administrative hierarchy.

  • This field appears only in case countrySubdivision is presented in an abbreviated form.
  • Supported only for USA, Canada, and Great Britain.
freeformAddress stringAn address line formatted according to the formatting rules of the result's country of origin.
localName string

An address component which represents the name of a geographic area or locality that groups a number of addressable objects for addressing purposes, without being an administrative unit.

municipality stringCity / Town.
municipality Subdivision stringSub / Super City.
postalCode stringPostal code / Zip code.
extendedPostalCode stringExtended postal code (availability dependent on region).
streetNumber stringThe building number on the street.
streetName stringThe street name.
openingHours object
FieldDescription
mode string

Requested mode for opening hours.
Value: nextSevenDays

timeRanges arrayList of time ranges for the next 7 days. Array of timeRange.
timeRanges array
FieldDescription
startTime objectStart of the timeRange in the form of dateHourMinute.
endTime objectEnd of the timeRange in the form of dateHourMinute.
dateHourMinute object
FieldDescription
date string

The date in the calendar year in the local time zone.

hour integerPossible values: 0 - 23
minute integerPossible values: 0 - 59
timeZone
FieldDescription
ianaId stringID from the IANA Time Zone Database.
brand
FieldDescription
id stringBrand Id.
name stringBrand name.
paymentOption
FieldDescription
'method' string

Payment method.
Enum:

  • subscription
brands arrayArray of payment option brand objects.
payment option brand
FieldDescription
id stringUnique identifier of the payment option.
name stringName of the payment option.
restricted booleanIndicates if payment option is restricted to the current request.
nearbyPoi
FieldDescription
categoryId integer

Category Id of the nearby POI.
Enum:

  • 7315 - Restaurant
  • 9932 - Public Amenity
  • 9376 - Café/Pub
  • 7314 - Hotel/Motel
  • 9361 - Shop
  • 9362 - Park Recreation Area
vehicleConstraint
FieldDescription
types string (list)

Vehicle types constraint of the result.
Enum:

  • Car
  • Truck
categories string (list)

Vehicle categories constraint of the result.
Enum:

  • N1
  • N2
  • N3
  • N3+O4
length doubleVehicle length —in meters— constraint of the result.
height doubleVehicle height —in meters— constraint of the result.
width doubleVehicle width —in meters— constraint of the result.
weight integerVehicle weight —in kg— constraint of the result.
brands objectArray of vehicleBrand objects.
vehicle brand
FieldDescription
name stringVehicle brand name.

Response codes

CodeMeaning & possible causes
200

OK: If any matching charging station was found, the body of the response will contain the data. Otherwise, an empty response will be returned:

Empty response example - JSON
1{
2 "summary": {
3 "numResults": 0,
4 "totalResults": 0
5}}
400

Bad request: One or more parameters were incorrectly specified or are out of range.

403

Forbidden: Possible causes include:

  • Forbidden
  • Not authorized
  • Account inactive
  • Account over queries per second limit
  • Rate limit exceeded
404

Not Found: The requested resource could not be found, the HTTP request method or path is incorrect.

405

Method Not Allowed : The client used an HTTP method other than GET.

406

Media Type Not Acceptable

414

The requested URI is too long

429

Too Many Requests: The API Key is over QPS (Queries per second).

5xx

Server Error: The service was unable to process your request. Contact support to resolve the issue.

Response headers

The following table lists HTTP response headers.

HeaderDescription
Access-Control-Allow-Origin

The EV Search service allows cross-origin resource sharing. Value: * This asterisk signifies access to the TomTom API using the Access-Control-Allow-Origin (ACAO) header in its response, indicating which origin sites are allowed.

Content-Encoding

The EV Search service supports HTTP compression if requested by the client. Value: gzip

Cache-Control

The Cache-Control general-header field is used to specify directives that must be obeyed by all caching mechanisms along the request/response chain.

  • Supported by HTTP/1.1 clients.
  • May not be supported by HTTP/1.0 clients.

Value: no-cache

Content-Type

Indicates the format of the response as chosen by the client. Format: type/subtype; charset=utf-8 Value: type/subtype: application/json

Tracking-ID

An identifier for the request. If the Tracking-ID header was specified, it is replicated in the response. Otherwise, it is generated automatically by the service. It is only meant to be used for support and does not involve tracking of you or your users in any form. Value: An identifier for the request.

Error response

The error response content type depends on the Accept header.

Error response example - JSON
1{
2 "message": "Missing parameter 'parameterName'",
3 "detailedError": {
4 "code": "MissingParameter",
5 "message": "Missing required parameter 'parameterName'."
6 },
7 "httpStatusCode": "400"
8}
Error response example - XML
1<ErrorEvResponse>
2 <message>Missing parameter 'parameterName'</message>
3 <detailedError>
4 <code>MissingParameter</code>
5 <message>Missing required parameter 'parameterName'.</message>
6 </detailedError>
7</ErrorEvResponse>

Error response fields

Primary fieldsDescription

message string

A human-readable description of the error.

detailedError object

Detailed information about the error. detailedError object

detailedError object
FieldDescription

code string

One of a server-defined set of error codes.

message string

A human-readable description of the error code. It is intended as an aid to developers and is not suitable for exposure to end users.