EV Search API

Charge Point Operators

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 Charge Point Operators (CPO) endpoint enables clients to access a list of available CPOs in a given country or subdivision. This helps EV drivers choose their preferred Charge Point Operators while searching for EV charging stations.
The list of CPOs is sorted by ranking, with popular CPOs at the top.
CPOs can be queried for a specific set of countries/subdivisions 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/cpos?key={Your_API_Key}&[countrySet={countryCodesOrSubdivisions}]&[view={view}]

Request curl command example

get
Request curl command example
curl 'https://api.tomtom.com/maps/orbis/places/ev/cpos?key={Your_API_Key}&countrySet=USA,US-FL,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/subdivision 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/subdivisions. If omitted, worldwide data is returned, organized by country/subdivision.
Example: FR,NLD,US-FL,USA-TX

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",
"operators": [
{ "id": "EC2YV6HR", "name": "EcoCars", "paymentApplicationIds": ["QV9Tbvhb", "pEp9gSMe"] },
{ "id": "SE7DRIH3", "name": "Sollus Electronic Industry LTDA" },
{ "id": "POTQK6QF", "name": "Porsche" }
],
"countrySubdivisions": [
{
"countrySubdivisionCode": "FL",
"operators": [
{ "id": "EPELFOVD", "name": "EPE" },
{ "id": "EXEJX3XI", "name": "Enel X Way" },
{ "id": "NIITUN2N", "name": "Nissan" }
]
}
]
}
]
}
XML Response body example
<response>
<results>
<item>
<countryCode>FR</countryCode>
<operators>
<operator>
<id>TEONML2T</id>
<name>Tesla</name>
</operator>
<operator>
<id>PORHOK3V</id>
<name>Powerdot</name>
<paymentApplicationIds>
<paymentApplicationId>EDKFIOVZ</paymentApplicationId>
<paymentApplicationId>OEXM3ZBP</paymentApplicationId>
<paymentApplicationId>ENADGFAQ</paymentApplicationId>
<paymentApplicationId>SR6TVFLW</paymentApplicationId>
<paymentApplicationId>PL26DTVW</paymentApplicationId>
<paymentApplicationId>VAPOYF4C</paymentApplicationId>
</paymentApplicationIds>
</operator>
<operator>
<id>ELXYTO3Y</id>
<name>Electra</name>
<paymentApplicationIds>
<paymentApplicationId>OEXM3ZBP</paymentApplicationId>
<paymentApplicationId>ENADGFAQ</paymentApplicationId>
<paymentApplicationId>QEJLA5RN</paymentApplicationId>
<paymentApplicationId>SR6TVFLW</paymentApplicationId>
<paymentApplicationId>PL26DTVW</paymentApplicationId>
</paymentApplicationIds>
</operator>
</operators>
</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.

operators arrayList of available operator brand objects.
countrySubDivisions arrayArray of countrySubDivision objects.
operatorBrand object
FieldDescription
id stringUnique identifier of the brand.
name stringName of the brand.
paymentApplicationIds string (list)List of payment applications supported by this brand.
restrictedPaymentApplicationIds string (list)List of payment applications restricted to the current request and supported by this brand.
countrySubDivision object
FieldDescription
countrySubdivisionCode stringCountry subdivision code in ISO 3166-1 alpha-2.
operators arrayList of available operator brand objects.

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.