Skip to content

EVSEs

Endpoints for interacting with EVSEs.

Check EVSE model compatibility in a country

Request

Returns whether the given EVSEModel is supported in the supplied country, and whether the support is beta (early-access) or live. Used by the onboarding flow to tell the user upfront whether their hardware will work before any account-linking step.

Public endpoint — callable pre-account, no authentication required.

Country resolution follows this order: explicit country query parameter, then the Accept-Language header, then US.

When program_id is supplied, program membership is applied as an additional filter on top of the global compatibility check: the model must be in the program's supported_evse_models list AND pass the global region + EvseCompatibility check. Region is derived from the program's country, so the country query parameter and Accept-Language header are ignored in that case.

Error responses follow RFC 9457 Problem Details. Problem types emitted by this endpoint:

  • validation-failed-evse-compatibility-check — missing or invalid evse_model_id / country query parameter (400).
  • evse-model-not-found — evse_model_id does not resolve to an EVSEModel (404).
  • program-not-found — program_id does not resolve to a program (404).
Query
evse_model_idstringemod[A-Z\d]{26}required

EVSEModel.uid to check compatibility for.

countrystring, = 2 characters^[A-Za-z]{2}$

ISO-3166 alpha-2 country code. See description for fallback chain.

client_idstring

OAuth Application.client_id. Mirrors the pre-account onboarding endpoints: when supplied and the application has sandbox mode enabled, the endpoint returns a canned response without touching the database.

program_idstringprog[A-Z\d]{26}

Program uid. When supplied, the model must be in the program's supported_evse_models list AND pass the global region + EvseCompatibility check. Region is derived from the program's country; country and Accept-Language are ignored in that case. Omit for the core app's pre-account flow where the program is not yet known.

Headers
EvEnergy-Versionnumber

Specify the version of this endpoint to use.

Value:2
Accept-Languagestring

Indicates the natural language and locale that the client prefers.

curl -i -X GET \
  'https://developers.ev.energy/_mock/ev.energy-api-v2/evse_compatibility/check?evse_model_id=string&country=st&client_id=string&program_id=string' \
  -H 'Accept-Language: string' \
  -H 'EvEnergy-Version: 2'

Responses

Compatibility verdict for the supplied model and country.

Headers
EvEnergy-Versionnumber

Indicates the version of the API that generated this response. If EvEnergy-Version was not specified in the request, this will be your OAuth application's default version.

Value:2
X-RateLimit-Limitnumber

The maximum number of requests that can be made to this endpoint per hour. Defaults to 1000 but may vary per client.

Default:1000
X-RateLimit-Remainingnumber

The number of requests remaining until this client's rate limit is reached.

Default:999
RetryAfternumber

The number of seconds until this client's requests will not be rate limited.

Default:3600
Bodyapplication/json
compatiblebooleanrequired

True if the model is supported in the requested country.

betabooleanrequired

True if support is currently in early-access / beta. Always present in the response; false when compatible is false.

recommendation_rankinteger or null, [ 1 .. 10 ]required

Priority of the EVSE make on the new device-selection screen. Lower = higher priority (1 = top, 10 = lowest explicit value); null means no rank set and should be treated as lower priority than any explicit value. Always reflects the make's current value, independent of compatible.

Response
{ "compatible": true, "beta": true, "recommendation_rank": 1 }