EV Search API

e-Mobility Service Providers

Request access

Important note
This API is not available as part of our free evaluation or Pay As You Grow (PAYG) offering. Click the Request Access button above to contact our Sales team.

Private Preview Notice

Important notes:

  • This TomTom Orbis Maps API is restricted to private preview.
  • This API is powered by the TomTom Orbis Maps.
  • See the TomTom Orbis Maps documentation for more information.

Purpose

The e-Mobility Service Providers (eMSP) endpoint enables clients to access available eMSPs in a given country. This helps EV drivers choose their preferred e-Mobility Service Providers while searching for EV charging stations.
The list of eMSPs returned is sorted by coverage in the requested region, with higher coverage appearing at the top.
eMSPs can be queried for a specific set of countries using the countrySet filter parameter or worldwide by omitting the filter.

Request data

HTTPS method: GET

For ease of viewing and identification:

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

Request format

get
Request URL format
https://{baseURL}/maps/orbis/places/ev/emsps?key={Your_API_Key}&[countrySet={countryCodes}]&[view={view}]

Request curl command example

get
Request curl command example
curl 'https://api.tomtom.com/maps/orbis/places/ev/emsps?key={Your_API_Key}&countrySet=USA,DEU&view=Unified'

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:

key stringAn API Key valid for the requested service. Value: Your valid API Key.
Optional parametersDescription
countrySet string

Comma-separated list of country codes. Supports both alpha2/alpha3 formats for country codes defined by ISO 3166-1 alpha-2 and alpha-3.
Restricts results to the specified countries. If omitted, worldwide data is returned, organized by country.
Example: FR,NLD,USA

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

Request headers

The following table describes HTTP request headers.

Required headersDescription
TomTom-Api-Version

The version of the API being called. Currently, only version 1 is supported. Example: 1

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-Encoding

Enables response compression. For details check RFC-9110 Value: gzip

If-None-Match

Clients can provide an entity tag (ETag) that was returned as a header in a previous response. This allows clients to check the freshness of the data. If the data has not changed, the service responds with a 304 (Not Modified) status.
Value: An entity tag. Example: F13887B89265DBD6F8E38C3A96F21EF0

Response data

Response body

Json Response body example
{
"results": [
{
"countryCode": "USA",
"paymentApplications": [
{ "id": "H7Tm1ilM", "name": "ladenetz.de" },
{ "id": "NZEwQz8r", "name": "EnelX" },
{ "id": "FeC16qIv", "name": "NewMotion" },
{ "id": "h8cZq7KJ", "name": "FrCS", "restricted": true },
{ "id": "QV9Tbvhb", "name": "MyEasyCharge", "restricted": true },
{ "id": "pEp9gSMe", "name": "Eneco" },
{ "id": "6Hc4xCvV", "name": "Shell Recharge" }
]
}
]
}
XML Response body example
<response>
<results>
<item>
<countryCode>FR</countryCode>
<paymentApplications>
<paymentApplication>
<id>OEXM3ZBP</id>
<name>Octopus Electroverse</name>
</paymentApplication>
<paymentApplication>
<id>PL26DTVW</id>
<name>Plugsurfing</name>
</paymentApplication>
<paymentApplication>
<id>SR6TVFLW</id>
<name>Shell Recharge</name>
</paymentApplication>
<paymentApplication>
<id>ECK67WYK</id>
<name>EVBox Charge</name>
</paymentApplication>
<paymentApplication>
<id>ENADGFAQ</id>
<name>Eneco</name>
</paymentApplication>
<paymentApplication>
<id>VAPOYF4C</id>
<name>Vandebron</name>
</paymentApplication>
</paymentApplications>
</item>
</results>
</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
results arrayArray of results item objects.
item object
FieldDescription
countryCode string

Requested country code. If countrySet filter is absent, by default countryCode returned is in ISO 3166-1 alpha-2 format.

paymentApplications arrayList of available paymentApplication objects.
paymentApplication object
FieldDescription
id stringUnique identifier of the payment application.
name stringName of the payment application.
restricted booleanIndicates if payment application is restricted to the current request.

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
{}
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

ETag

Entity-tag of the served resource. Can be used by the client in the If-None-Match header field of subsequent requests in order to optimize the update procedure.
Value: Example: ” F13887B89265DBD6F8E38C3A96F21EF0

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
{
"message": "Missing parameter 'parameterName'",
"detailedError": {
"code": "MissingParameter",
"message": "Missing required parameter 'parameterName'."
},
"httpStatusCode": "400"
}
Error response example - XML
<ErrorEvResponse>
<message>Missing parameter 'parameterName'</message>
<detailedError>
<code>MissingParameter</code>
<message>Missing required parameter 'parameterName'.</message>
</detailedError>
</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.