Skip to content

ev.energy v2 API (2.0)

The official API for ev.energy, version 2.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://developers.ev.energy/_mock/ev.energy-api-v2
Live API for both production and sandbox requests.
https://api.ev.energy/v2
Staging server for internal testing only.
https://api-staging.ev.energy/v2

Carbon

Endpoints for interacting with carbon intensity data.

Schemas
Operations

Charging Sessions

Endpoints related to records of charging.

Schemas
Operations
Webhooks

CSV

Endpoints that return CSV responses only and are not linkable to other endpoint data.

EVSEs

Endpoints for interacting with EVSEs.

Schemas
Operations

List EVSE makes

Request

List all the EVSE makes known by the ev.energy system.

Security
oauth2(Required scopes:
evse:read
)
Query
page_beforestring[a-z]{4}[A-Z\d]{26}

Return results from the page after this ID.

Example: page_before=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR
page_afterstring[a-z]{4}[A-Z\d]{26}

Return results from the page before this ID.

Example: page_after=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR
page_sizeinteger[ 1 .. 100 ]

Specify the number of results to return per page.

Default 25
Example: page_size=10
available_for_user_idstringuser[A-Z\d]{26}

Filter to only return resources available in the user's region and program.

Example: available_for_user_id=user01HN2NJ9NMRZBXT1H6FT9N7735
Headers
EvEnergy-Versionnumber

Specify the version of this endpoint to use.

Value2
EvEnergy-Userstringuser[A-Z\d]{26}

If the client is authenticated using Client Credentials, setting EvEnergy-User to a valid user ID allows requests to be made as if you were directly authenticated as that user.

Example: user01HN2NJ9NMRZBXT1H6FT9N7735
curl -i -X GET \
  'https://developers.ev.energy/_mock/ev.energy-api-v2/evse_makes?page_before=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR&page_after=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR&page_size=10&available_for_user_id=user01HN2NJ9NMRZBXT1H6FT9N7735' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'EvEnergy-User: user01HN2NJ9NMRZBXT1H6FT9N7735' \
  -H 'EvEnergy-Version: 2'

Responses

Return a list of EVSE Makes.

Headers
Linkstring

Provides links to the previous and next pages of data, if they exist.

Example: "<https://api.ev.energy/v2/vehicles?page_size=25&page_before=vhcl01HRFF3SEVSCRAV9B3CHVDFN0H>; rel=\"previous\", <https://api.ev.energy/v2/vehicles?page_size=25&page_after=vhcl01HRFF3SEVSCRAV9B3CHVDFN0H>; rel=\"next\""
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.

Value2
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/jsonArray [
idstringemak[A-Z\d]{26}read-only

Unique identifier for the given EVSE Make.

Example: "emak01HS8FRXKJD5JZZ7ZN6W8H21P8"
urlstring(uri)read-only
Example: "https://api.ev.energy/v2/evse_makes/emak01HS8FRXKJD5JZZ7ZN6W8H21P8"
namestringread-only
Example: "BG SyncEV"
iconstring or null(uri)read-only

A url for an image of the make's logo.

Example: "https://cdn.example.com/volvo.png"
onboarding_urlstring or nullread-only

A pre-constructed link to initiate onboarding for an EVSE of this make. If it is null, then it cannot be onboarded with model alone. You should filter the list of EVSE models by this make and then have the user select their model.

Note: if you are using client credentials authentication, the user ID will not be automatically included unless you set the EvEnergy-User header on your request.

Example: "https://api.ev.energy/v2/evse_onboarding?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735"
modelsstring

A pre-constructed link to a list of EVSE models filtered for this make.

Example: "https://api.ev.energy/v2/evse_models/?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D"
]
Response
application/json
[ { "id": "emak01HS8FRXKJD5JZZ7ZN6W8H21P8", "url": "https://api.ev.energy/v2/evse_makes/emak01HS8FRXKJD5JZZ7ZN6W8H21P8", "name": "BG SyncEV", "icon": "https://cdn.example.com/volvo.png", "onboarding_url": "https://api.ev.energy/v2/evse_onboarding?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735", "models": "https://api.ev.energy/v2/evse_models/?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D" } ]

Retrieve an EVSE make

Request

Retrieve details for a single, specific EVSE make.

Security
oauth2(Required scopes:
evse:read
)
Path
evse_make_idstringemak[A-Z\d]{26}required

The ID of the specific EVSE make to retrieve.

Example: emak01HSB50J37V3Q5BKXSXTM64K7K
Headers
EvEnergy-Versionnumber

Specify the version of this endpoint to use.

Value2
curl -i -X GET \
  https://developers.ev.energy/_mock/ev.energy-api-v2/evse_makes/emak01HSB50J37V3Q5BKXSXTM64K7K \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'EvEnergy-Version: 2'

Responses

Return a single EVSE make.

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.

Value2
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
idstringemak[A-Z\d]{26}read-only

Unique identifier for the given EVSE Make.

Example: "emak01HS8FRXKJD5JZZ7ZN6W8H21P8"
urlstring(uri)read-only
Example: "https://api.ev.energy/v2/evse_makes/emak01HS8FRXKJD5JZZ7ZN6W8H21P8"
namestringread-only
Example: "BG SyncEV"
iconstring or null(uri)read-only

A url for an image of the make's logo.

Example: "https://cdn.example.com/volvo.png"
onboarding_urlstring or nullread-only

A pre-constructed link to initiate onboarding for an EVSE of this make. If it is null, then it cannot be onboarded with model alone. You should filter the list of EVSE models by this make and then have the user select their model.

Note: if you are using client credentials authentication, the user ID will not be automatically included unless you set the EvEnergy-User header on your request.

Example: "https://api.ev.energy/v2/evse_onboarding?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735"
modelsstring

A pre-constructed link to a list of EVSE models filtered for this make.

Example: "https://api.ev.energy/v2/evse_models/?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D"
Response
application/json
{ "id": "emak01HS8FRXKJD5JZZ7ZN6W8H21P8", "url": "https://api.ev.energy/v2/evse_makes/emak01HS8FRXKJD5JZZ7ZN6W8H21P8", "name": "BG SyncEV", "icon": "https://cdn.example.com/volvo.png", "onboarding_url": "https://api.ev.energy/v2/evse_onboarding?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735", "models": "https://api.ev.energy/v2/evse_models/?make_id=emak01HN2NJQRGDQP0GBE1F7R6PB3D" }

List status logs for an EVSE

Request

List the historical status logs for a specific EVSE. Used to find out the state of the EVSE at each point it reported in to ev.energy.

Security
oauth2(Required scopes:
evse:read
)
Path
evse_idstringevse[A-Z\d]{26}required

The ID of the specific EVSE to retrieve.

Example: evse01HSH04KDEWF6Z4DB2J77J74K5
Query
page_beforestring[a-z]{4}[A-Z\d]{26}

Return results from the page after this ID.

Example: page_before=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR
page_afterstring[a-z]{4}[A-Z\d]{26}

Return results from the page before this ID.

Example: page_after=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR
page_sizeinteger[ 1 .. 100 ]

Specify the number of results to return per page.

Default 25
Example: page_size=10
sampled_at__gtestring(date-time)

Filters for logs sampled at or after this datetime.

Example: sampled_at__gte=2024-04-17T09:39:45.984584Z
sampled_at__ltestring(date-time)

Filters for logs sampled at or before this datetime.

Example: sampled_at__lte=2024-04-17T09:39:45.984584Z
expandArray of strings

Specify a url field to expand into a nested resource.

Items Enum"evse""evse.model""evse.model.make""evse.user"
Headers
EvEnergy-Versionnumber

Specify the version of this endpoint to use.

Value2
curl -i -X GET \
  'https://developers.ev.energy/_mock/ev.energy-api-v2/evses/evse01HSH04KDEWF6Z4DB2J77J74K5/status_logs?page_before=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR&page_after=xmpl01HNFZM7Q8FXASZXYZ6XM3TQRR&page_size=10&sampled_at__gte=2024-04-17T09%3A39%3A45.984584Z&sampled_at__lte=2024-04-17T09%3A39%3A45.984584Z&expand=evse' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'EvEnergy-Version: 2'

Responses

List all status logs for a specific EVSE, sorted newest first.

Headers
Linkstring

Provides links to the previous and next pages of data, if they exist.

Example: "<https://api.ev.energy/v2/vehicles?page_size=25&page_before=2024-04-18T08:53:52.225655Z>; rel=\"previous\", <https://api.ev.energy/v2/vehicles?page_size=25&page_after=2024-04-18T08:53:52.225655Z>; rel=\"next\""
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.

Value2
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/jsonArray [
urlstring(uri)read-only
Example: "https://api.ev.energy/v2/evse/evse01HSH04KDEWF6Z4DB2J77J74K5/status_logs/2024-01-01T11:11:11.1111Z/"
sampled_atstring(date-time)

The date and time this status information was sampled on the EVSE.

logged_atstring(date-time)

The date and time when this data was recorded. Likely to be later than sampled_at, but how much later depends on the integration and other factors.

evsestring or EVSE (object)
One of:
string(uri)
is_plugged_inboolean or null

Is there currently a vehicle connected to the EVSE? Will be null if we are unable to get this information from the EVSE integration.

is_chargingboolean or null

Is the EVSE currently delivering charge? Will be null if we are unable to get this information from the EVSE integration.

charge_rate_wattsinteger or null

The current rate of charge delivery, in watts. Will be null if we are unable to get this information from the EVSE integration.

]
Response
application/json
[ { "url": "https://api.ev.energy/v2/evse/evse01HSH04KDEWF6Z4DB2J77J74K5/status_logs/2024-01-01T11:11:11.1111Z/", "sampled_at": "2019-08-24T14:15:22Z", "logged_at": "2019-08-24T14:15:22Z", "evse": "https://api.ev.energy/v2/evses/evse01HSH04KDEWF6Z4DB2J77J74K5", "is_plugged_in": true, "is_charging": true, "charge_rate_watts": 0 } ]

Notifications

Endpoints for communicating notifications.

Operations

Programs

Endpoints related to incentivised charging programs.

Operations

Rebates

Endpoints for interacting with rebates.

Schemas
Operations

Root

The root endpoint which lists all the top-level collections.

Operations

Schedules

Schema definitions for charging schedules.

Schemas

Sites

Endpoints for interacting with sites containing multiple EVSEs.

Operations

Solar

Endpoints for interacting with solar arrays and inverters.

Operations

Subscriptions

Endpoints for interacting with user subscriptions.

Operations

Support Tickets

Endpoints for interacting with customer support tickets.

Schemas
Operations

Tariffs

Endpoints related to energy suppliers and their tariffs.

Schemas
Operations

Users

Endpoints for interacting with users.

Schemas
Operations

Vehicles

Endpoints for interacting with vehicles.

Schemas

Webhooks

Endpoints for configuring and managing webhooks.

Operations