Charge Point Operators
Request accessPrivate Preview Notice
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
https://{baseURL}/maps/orbis/places/ev/cpos?key={Your_API_Key}&[countrySet={countryCodesOrSubdivisions}]&[view={view}]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 parameters | Description |
|---|---|
baseURL string | Base URL for calling the API.
|
key string | An API Key valid for the requested service. Value: Your valid API Key. |
| Optional parameters | Description |
|---|---|
countrySet string | Comma-separated list of country/subdivision codes. Supports both |
view string | Geopolitical View. The context used to resolve the handling of disputed territories.
|
Request headers
The following table describes HTTP request headers.
| Required headers | Description |
|---|---|
| TomTom-Api-Version | The version of the API being called.
Currently, only version 1 is supported.
Example: |
| Optional headers | Description |
|---|---|
| Tracking-ID | Specifies an identifier for the request.
Value: An |
| Accept | Specifies one of the following values as the response format of an API request:
|
| Accept-Encoding | Enables response compression. For details check RFC-9110
Value: |
| 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. |
Response data
Response body
{ "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" } ] } ] } ]}<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 | |
|---|---|
| Field | Description |
results array | Array of results item objects. |
| item object | |
|---|---|
| Field | Description |
countryCode string | Requested country code. If |
operators array | List of available operator brand objects. |
countrySubDivisions array | Array of countrySubDivision objects. |
| operatorBrand object | |
|---|---|
| Field | Description |
id string | Unique identifier of the brand. |
name string | Name 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 | |
|---|---|
| Field | Description |
countrySubdivisionCode string | Country subdivision code in ISO 3166-1 alpha-2. |
operators array | List of available operator brand objects. |
Response codes
| Code | Meaning & 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:
|
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 |
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.
| Header | Description |
|---|---|
| Access-Control-Allow-Origin | The EV Search service allows cross-origin resource sharing. |
| Content-Encoding | The EV Search service supports HTTP compression if requested by the client.
Value: |
| 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.
Value: |
| Content-Type | Indicates the format of the response as chosen by the client.
Format: |
| ETag | Entity-tag of the served resource. Can be used by the client in the |
| 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. |
Error response
The error response content type depends on the Accept header.
{ "message": "Missing parameter 'parameterName'", "detailedError": { "code": "MissingParameter", "message": "Missing required parameter 'parameterName'." }, "httpStatusCode": "400"}<ErrorEvResponse> <message>Missing parameter 'parameterName'</message> <detailedError> <code>MissingParameter</code> <message>Missing required parameter 'parameterName'.</message> </detailedError></ErrorEvResponse>Error response fields
| Primary fields | Description |
|---|---|
| A human-readable description of the error. |
| Detailed information about the error.
|
| detailedError object | |
| Field | Description |
| One of a server-defined set of error codes. |
| 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. |